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.

mYzk
quelle
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 .

user236376
quelle
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
jlecour
quelle