Enviar mensagem de eco para graylog2 via porta GELF TCP 12201

18

Eu preciso enviar uma mensagem para o servidor graylog2 via echo para testar se o% {@ type} para o recurso é correto, mas assim que eu faço o echo, o suporte GELF não chega ao meu servidor graylog2. Se ele reiniciar o graylog2, as mensagens sobre ele começarão a chegar ao servidor graylog2.

Exemplo da mensagem 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

O que estou fazendo de errado? O modo graylog --debug não mostra nada. Ele nem vê a mensagem entrar.

Editar:

A entrada Graylog2 é configurada para GELF TCP e mostra conexões ativas e aumenta quando tento ecoar, mas nada alcança o servidor quanto à mensagem.

    
por mYzk 28.04.2014 / 13:58

2 respostas

28

Parece que a entrada GELF TCP precisa de um caractere nulo no final de cada mensagem Gelf.

Então você deve 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"}
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"}%pre%' | nc -w 1 my.graylog.server 12201
' | nc -w 1 my.graylog.server 12201

Esta resposta foi encontrada em uma discussão sobre os problemas do Graylog .

    
por 06.08.2014 / 15:04
6

Como eu estava tentando verificar se uma instância do Logstash estava escutando corretamente entradas de GELF, encontrei este tópico.

Aqui está um comando que funcionará para o Logstash + Gelf sobre o 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

Observe que:

  • um simples echo é suficiente, não há necessidade de -e
  • a mensagem é gziped, caso contrário, você receberá este erro: Could not find parser for header: [123, 34] nos logs do Logstash
  • o netcat está enviando pelo UDP
por 12.10.2016 / 09:12