Envoyer un message d'écho à graylog2 via le port GELF TCP 12201


20

Je dois envoyer un message au serveur graylog2 via echo pour tester si le% {@ type} pour la fonction est correct, mais une fois que je fais l'écho, cela dans le support GELF n'arrive pas sur mon serveur graylog2. S'il redémarre graylog2, les messages à son sujet arrivent sur le serveur graylog2.

Exemple de message d'écho:

echo '{"version": "1.1","host":"example.org","short_message":"A short message that helps you identify what is going on","full_message":"Backtrace here\n\nmore stuff","level":1,"_user_id":9001,"_some_info":"foo","_some_env_var":"bar"}' | nc -w 1 my.graylog.server 12201

Qu'est-ce que je fais mal? Le mode graylog --debug n'affiche rien. Il ne voit même pas le message entrer.

Éditer:

L'entrée Graylog2 est configurée pour GELF TCP et affiche les connexions actives et elle augmente lorsque j'essaie de faire écho, mais rien n'atteint le serveur comme pour le message.


1
Cette commande fonctionne pour moi. La seule différence est que j'utilise le port UDP sur graylog. Par conséquent, j'ajoute un -uparamètre à nc.
amra

Réponses:


29

Il semble que l'entrée TCP GELF ait besoin d'un caractère nul à la fin de chaque message Gelf.

Vous devez donc envoyer:

echo -e '{"version": "1.1","host":"example.org","short_message":"Short message","full_message":"Backtrace here\n\nmore stuff","level":1,"_user_id":9001,"_some_info":"foo","_some_env_var":"bar"}\0' | nc -w 1 my.graylog.server 12201

Cette réponse a été trouvée dans une discussion sur les problèmes de Graylog .


12
Ajouter un -uparamètre pour ncutiliser UDP
rsilva4

7

Alors que j'essayais de vérifier qu'une instance Logstash écoutait correctement les entrées GELF, j'ai trouvé ce fil.

Voici une commande qui fonctionnera pour Logstash + Gelf sur UDP:

echo '{"version": "1.1","host":"example.org","short_message":"A short message that helps you identify what is going on","full_message":"Backtrace here\n\nmore stuff","level":1,"_user_id":9001,"_some_info":"foo","_some_env_var":"bar"}' | gzip | nc -u -w 1 127.0.0.1 12201

Remarquerez que :

  • un simple echosuffit, pas besoin de-e
  • le message est compressé, sinon vous obtiendrez cette erreur: Could not find parser for header: [123, 34]dans les journaux Logstash
  • netcat envoie sur UDP
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.