Primeros pasos con logstash

Instalación o Configuración

Instrucciones detalladas sobre cómo configurar o instalar logstash.

Un ejemplo básico y completo de Syslog

Yendo a sus raíces, Logstash tiene la capacidad de analizar y almacenar datos de syslog. Este ejemplo muestra una configuración básica que lo lleva a eso.

input {
  file {
    path => [
      "/var/log/syslog",
      "/var/log/auth.log"
    ]
    type => "syslog"
  }
}

filter {
  if [type] == "syslog" {
    # Uses built-in Grok patterns to parse this standard format
    grok {
      match => {
        "message" => "%{SYSLOGBASE}%{SPACE}%{GREEDYDATA:SYSLOGMESSAGE}"
      }
    }
    # Sets the timestamp of the event to the timestamp of recorded in the log-data
    # By default, logstash sets the timestamp to the time it was ingested.
    date {
      match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

output {
  # Outputs processed events to an elasticsearch instance local to the box.
  elasticsearch {
    hosts => [
      "localhost"
    ]
  }
}

Salida a ElasticSearch: múltiples índices y asignaciones

A veces, necesita generar más de un índice en ElasticSearch, o tener una asignación personalizada que desea aplicar a los nuevos índices a medida que se implementan.

Hay dos formas de aplicar una asignación personalizada. Una forma es cargar una plantilla de ElasticSearch. Consulte la documentación de ElasticSearch para eso. La otra forma es especificar un mapeo en la propia salida de elasticsearch {}. Eso es lo que se muestra aquí.

output {
  if [type] == 'metrics' {
    # The 'metrics' index rotates weekly.
    # The 'metrics-mapping.json' file defines the custom mappings.
    elasticsearch {
      hosts              => [ 'localhost' ]
      index              => "metrics-%{xxxx.ww}"
      manage_template    => true
      template           => "/etc/logstash/metrics-mapping.json"
      template_overwrite => true
    }
  }
}

Esto generará eventos metrics en índices metrics- en ElasticSearch, que rotará semanalmente usando la semana ISO. La plantilla utilizada para los nuevos índices se define como parte de esta configuración. Definir una plantilla tiene la ventaja de forzar los tipos de campos a un tipo uniforme. Esto es útil en configuraciones más grandes donde varios tipos pueden intentar definir un campo como un tipo de datos ligeramente diferente.

Este método es útil en entornos de ensayo y control de calidad, ya que las plantillas de ElasticSearch están definidas por el código de LogStash y no es necesario configurarlas por separado como parte de la configuración del clúster de ElasticSearch.