logstash apache2 ne pas être converti en json

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.