Invia un messaggio echo a graylog2 tramite la porta GELF TCP 12201


20

Devo inviare un messaggio al server graylog2 tramite echo per verificare se% {@ type} per la funzione è corretta, ma una volta che faccio l'eco che è nel supporto GELF non arriva al mio server graylog2. Se riavvia graylog2, i messaggi che lo avviano arrivano al server graylog2.

Esempio del messaggio di eco:

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

Che cosa sto facendo di sbagliato? La modalità graylog --debug non mostra nulla. Non vede nemmeno il messaggio entrare.

Modificare:

L'input di Graylog2 è impostato per GELF TCP e mostra connessioni attive e aumenta quando provo a fare eco, ma nulla arriva al server come per il messaggio.


1
Questo comando funziona per me. L'unica differenza è che uso la porta UDP su graylog. Pertanto aggiungo il -uparametro a nc.
amra,

Risposte:


29

Sembra che l'input GELF TCP abbia bisogno di un carattere null alla fine di ogni messaggio Gelf.

Quindi dovresti inviare:

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

Questa risposta è stata trovata in una discussione sui problemi di Graylog .


12
Aggiungi il -uparametro per ncutilizzare UDP
rsilva4

7

Mentre stavo cercando di verificare che un'istanza di Logstash stesse ascoltando correttamente gli input GELF, ho trovato questo thread.

Ecco un comando che funzionerà per Logstash + Gelf over 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

Notare che :

  • un semplice echoè abbastanza, non è necessario-e
  • il messaggio è gziped, altrimenti verrà visualizzato questo errore: Could not find parser for header: [123, 34]nei log di Logstash
  • netcat sta inviando tramite UDP
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.