L'envoi de format json journal de kibana à l'aide de filebeat, logstash et elasticsearch?
J'ai journaux comme ceci:
{"logId":"57aaf6c8d32fb","clientIp":"127.0.0.1","time":"03:11:29 pm","uniqueSubId":"57aaf6c98963b","channelName":"JSPC","apiVersion":"v1","modulName":null,"actionName":"apiRequest","typeOfError":"","statusCode":"","message":"In Auth","exception":"In Auth","logType":"Info"}
{"logId":"57aaf6c8d32fb","clientIp":"127.0.0.1","time":"03:11:29 pm","uniqueSubId":"57aaf6c987206","channelName":"JSPC","apiVersion":"v2","modulName":null,"actionName":"performV2","typeOfError":"","statusCode":"","message":"in inbox api v2 5","exception":"in inbox api v2 5","logType":"Info"}
Je veux les pousser à kibana
. Je suis à l'aide de filebeat pour envoyer des données à logstash, en utilisant la configuration suivante:
filebeat.yml
### Logstash as output
logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
# Number of workers per Logstash host.
#worker: 1
Maintenant à l'aide de configuration suivantes, je veux changer de type de codec:
input {
beats {
port => 5000
tags => "beats"
codec => "json_lines"
#ssl => true
#ssl_certificate => "/opt/filebeats/logs.example.com.crt"
#ssl_key => "/opt/filebeats/logs.example.com.key"
}
syslog {
type => "syslog"
port => "5514"
}
}
Mais, la encore je obtenir les journaux dans le format de chaîne de caractères:
"message":
"{\"logId\":\"57aaf6c96224b\",\"clientIp\":\"127.0.0.1\",\"le temps\":\"03:11:29
pm\",\"channelName\":\"JSPC\",\"apiVersion\":null,\"modulName\":null,\"actionName\":\"404\",\"typeOfError\":\"EXCEPTION\",\"statusCode\":0,\"message\":\"404
page rencontrés
http:\/\/localjs.com\/uploads\/NonScreenedImages\/profilePic120\/16\/29\/15997002iicee52ad041fed55e952d4e4e163d5972ii4c41f8845105429abbd11cc184d0e330.jpeg\",\"logType\":\"Error\"}",
Merci de m'aider à résoudre ce problème.
OriginalL'auteur learner | 2016-08-10
Vous devez vous connecter pour publier un commentaire.
Pour parser JSON lignes de log dans Logstash qui ont été envoyés à partir de Filebeat vous devez utiliser un json filtre au lieu d'un codec. C'est parce que Filebeat envoie ses données en JSON et le contenu de votre ligne de journal sont contenues dans le
message
champ.Logstash config:
Filebeat config:
Dans le Filebeat de config, j'ai ajouté un "json" tag pour cet événement, afin que le json filtre peut être conditionnelle appliquée aux données.
Filebeat 5.0 est capable de parser le JSON sans l'utilisation de Logstash, mais il est encore une version alpha pour le moment. Ce billet de blog intitulé Structuré de journalisation avec Filebeat montre comment parser du JSON avec Filebeat 5.0.
input { beats { port => 5044 } } filter { if [tags][json] { json { source => "message" } } } output { elasticsearch { hosts => "localhost:9200" manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } }
, pas votre configuration. Merci pour l'aide.Salut @A J, stackoverflow.com/questions/53045258/... c'est ma question. J'ai aussi eu le même problème. Mon fielebat est au-dessus de 5.0 et je ne peux pas trouver une résolution. J'ai essayé de vous la solution aussi
OriginalL'auteur A J
De FileBeat 5.x Vous pouvez le faire sans l'aide de Logstash.
Filebeat config:
Filebeat est plus léger, puis Logstash.
Aussi, même si vous devez insérer à elasticsearch la version 2.x vous pouvez utiliser cette fonctionnalité de FileBeat 5.x
Exemple réel peut être trouvé ici
vous perdre la capacité de contrôler l'accès à l'élastique de manière centralisée. Si vous avez beaucoup de filebeat nœuds qui ont tous le auth clés pour l'élastique, puis vous élastique auth changements, vous devez mettre à jour tous les vs un logstash
OriginalL'auteur Netanel Malka
J'ai écumé internet pour exactement le même problème que vous rencontrez et essayé diverses suggestions, y compris ceux au-dessus. Cependant, aucun aidé donc je l'ai fait à l'ancienne. Je suis allé sur elasticsearch documentation sur filebeat de configuration
et tout ce qui était nécessaire (pas besoin de filtres de config dans logstash)
Filebeat config:
copies imbriquée json clés de haut niveau dans le document de sortie.
Mon filebeat version 5.2.2.
OriginalL'auteur gaukhar