Logstash est un outil de collect et de parsing de logs.
Le fichier de configuration des pipelines est constitué de trois sections :
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.