Un exemple simple de logstash ne fonctionne pas pour moi. Je veux lire mon access.log apache et le vider. J’utilise le fichier de configuration suivant
input { file { path => "/var/log/apache2/access.log" start_position => beginning } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}"} } } output { stdout {} }
et je ne peux pas obtenir la sortie de json de logstash comme indiqué ici.
root @ rick-VirtualBox: / opt / logstash # ./bin/logstash -f /home/rick/log_conf/first-pipeline.conf Démarrage de Logstash terminé 2015-08-10T18: 58: 07.660Z rick-VirtualBox 192.168.56.1 – – [10 / août 2015: 12: 46: 21 -0400] “GET / HTTP / 1.1” 200 427 “-” “Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit / 600.6.3 (KHTML, comme Gecko) Version / 8.0.6 Safari / 600.6.3 ”
Lorsque j’utilise le grokdebugger sur la ligne ci-dessus, il s’agit d’un modèle COMBINEDAPACHELOG, ce que je pense être ce que je demande.
LogStash n’est-il pas supposé créer json?
En fait, json n’est pas le codec par défaut. Selon le document, le codec de sortie par défaut de Logstash pour la sortie standard est la ligne .
Essayer:
output { stdout { codec => json } }
Vous pouvez également envisager d’utiliser codec => rubydebug
qui produit également une sortie très propre.