Senden Sie eine Echo-Nachricht an graylog2 über den GELF TCP 12201-Port


20

Ich muss eine Nachricht per Echo an den Graylog2-Server senden, um zu testen, ob% {@ type} for facility übereinstimmt, aber sobald ich das Echo tue, das in der GELF-Unterstützung enthalten ist, gelangt es nicht zu meinem Graylog2-Server. Wenn graylog2 neu gestartet wird, gehen die entsprechenden Meldungen beim graylog2-Server ein.

Beispiel für die Echo-Nachricht:

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

Was mache ich falsch? Der Graylog-Debug-Modus zeigt nichts an. Es sieht nicht einmal die Nachricht eingehen.

Bearbeiten:

Der Graylog2-Eingang ist für GELF TCP eingerichtet und zeigt aktive Verbindungen an. Er wird ausgelöst, wenn ich versuche, ein Echo auszulösen, aber nichts erreicht den Server, was die Nachricht betrifft.


1
Dieser Befehl funktioniert bei mir. Der einzige Unterschied ist, dass ich den UDP-Port für Graylog verwende. Deshalb füge ich -uParameter zu nc hinzu.
Amra

Antworten:


29

Anscheinend benötigt die GELF-TCP-Eingabe am Ende jeder Gelf-Nachricht ein Nullzeichen.

Also solltest du senden:

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

Diese Antwort wurde in einer Diskussion über Graylogs Probleme gefunden .


12
In -uParameter ncUDP verwenden
rsilva4

7

Als ich versuchte zu überprüfen, ob eine Logstash-Instanz korrekt auf GELF-Eingaben wartete, habe ich diesen Thread gefunden.

Hier ist ein Befehl, der für Logstash + Gelf über UDP funktioniert:

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

Beachte das :

  • Ein einfaches echoist genug, keine Notwendigkeit für-e
  • Die Nachricht wird gziped, andernfalls wird der folgende Fehler Could not find parser for header: [123, 34]angezeigt : in Logstash-Protokollen
  • Netcat sendet über UDP
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.