Отправить эхо-сообщение в graylog2 через порт GELF TCP 12201


20

Мне нужно отправить сообщение на сервер graylog2 через echo, чтобы проверить, является ли% {@ type} для объекта корректным, но как только я сделаю, эхо, которое при поддержке GELF, не поступает на мой сервер graylog2. Если он перезапускает graylog2, то сообщения о его запуске поступают на сервер graylog2.

Пример эхо-сообщения:

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

Что я делаю неправильно? Режим graylog --debug ничего не показывает. Он даже не видит входящее сообщение.

Редактировать:

Вход Graylog2 настроен для GELF TCP и показывает активные соединения, и он поднимается, когда я пытаюсь повторить, но ничего не достигает сервера, как для сообщения идет.


1
Эта команда работает для меня. Разница лишь в том, что я использую порт UDP на GrayLog. Поэтому я добавляю -uпараметр в nc.
amra

Ответы:


29

Кажется, что ввод GELF TCP требует нулевого символа в конце каждого сообщения Gelf.

Итак, вы должны отправить:

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

Этот ответ был найден в дискуссии по вопросам Graylog .


12
Добавить -uпараметр для ncиспользования UDP
rsilva4

7

Когда я пытался проверить, правильно ли экземпляр Logstash прослушивал входные данные GELF, я нашел этот поток.

Вот команда, которая будет работать для Logstash + Gelf через 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

Заметить, что :

  • достаточно просто echo, не нужно-e
  • сообщение распаковано, иначе вы получите эту ошибку: Could not find parser for header: [123, 34]в логах Logstash
  • Netcat отправляет через UDP
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.