Enviar mensaje de eco a graylog2 a través del puerto GELF TCP 12201

20

Necesito enviar un mensaje al servidor graylog2 a través de echo para probar si el% {@ type} para la instalación es actual, pero una vez que hago el eco que está en el soporte GELF no llega a mi servidor graylog2. Si reinicia graylog2, los mensajes sobre su inicio llegan al servidor graylog2.

Ejemplo del mensaje de 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

¿Qué estoy haciendo mal? El modo graylog --debug no muestra nada. Ni siquiera ve entrar el mensaje.

Editar:

La entrada de Graylog2 está configurada para GELF TCP y muestra conexiones activas y se eleva cuando intento hacer eco, pero nada llega al servidor en cuanto al mensaje.

mYzk
fuente
1
Este comando me funciona. La única diferencia es que uso el puerto UDP en Graylog. Por lo tanto, agrego -uparámetro a nc.
amra

Respuestas:

29

Parece que la entrada TCP GELF necesita un carácter nulo al final de cada mensaje Gelf.

Entonces deberías enviar:

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

Esta respuesta se encontró en una discusión sobre los problemas de Graylog .

usuario236376
fuente
12
Agregar -uparámetro para ncusar UDP
rsilva4
7

Mientras intentaba verificar que una instancia de Logstash escuchaba correctamente las entradas GELF, encontré este hilo.

Aquí hay un comando que funcionará para Logstash + Gelf sobre 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

Darse cuenta de :

  • un simple echoes suficiente, no hay necesidad de-e
  • el mensaje es gziped, de lo contrario obtendrá este error: Could not find parser for header: [123, 34]en Logstash logs
  • netcat está enviando a través de UDP
jlecour
fuente