Logstash

Logstash est un outil de collect et de parsing de logs.

Les pipelines

Le fichier de configuration des pipelines est constitué de trois sections :

  • input : gestion des logs entrant
  • filter : filtrage et transformation des logs
  • output : envoie des logs pour le stockage

Exemple de fichier de configuration :

input {
  syslog {
    port => 8514
  }

  kafka {
    type => "event"
    topics => ["logstash"]
    group_id => "logstash"
    bootstrap_servers => "192.168.1.7:9092,192.168.1.5:9092,192.168.1.10:9092"
  }
}

filter {
  grok {
    match => ["message", "%{TIMESTAMP_ISO8601} %{SYSLOGHOST} %{SYSLOGPROG}: %{GREEDYDATA:message}"]
    overwrite => ["message"]
  }
}

output {
  elasticsearch {
    hosts => ["192.168.1.7:9200", "192.168.1.5:9200", "192.168.1.10:9200"]
    flush_size => 80000
    template_overwrite => true
    template => "/usr/share/logstash/config/elasticsearch-logstash-template.json"
  }
}

Le filtre grok permet de parser les logs. Le langage permet de définire des patterns. Des patterns sont déjà définis et peuvent se trouver sur le dépôt git. Un site web permet de tester les patterns : grokconstructor.appspot.com.