Мне нужно отправить сообщение на сервер 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 и показывает активные соединения, и он поднимается, когда я пытаюсь повторить, но ничего не достигает сервера, как для сообщения идет.
-u
параметр в nc.Ответы:
Кажется, что ввод GELF TCP требует нулевого символа в конце каждого сообщения Gelf.
Итак, вы должны отправить:
Этот ответ был найден в дискуссии по вопросам Graylog .
источник
-u
параметр дляnc
использования UDPКогда я пытался проверить, правильно ли экземпляр Logstash прослушивал входные данные GELF, я нашел этот поток.
Вот команда, которая будет работать для Logstash + Gelf через UDP:
Заметить, что :
echo
, не нужно-e
Could not find parser for header: [123, 34]
в логах Logstashисточник