Я должен отправить сообщение на graylog2 сервер через эхо, чтобы протестировать, если % {@type} для средства является corrent, но после того как я делаю эхо, это находится в поддержке 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 - режим отладки ничего не показывает. Это даже не видит, что сообщение входит.
Править:
Вход Graylog2 является установкой для TCP GELF и показывает активные соединения, и это повышает, когда я пытаюсь отозваться эхом, но ничто не достигает, сервер что касается сообщения идет.
Кажется, что TCP-вход GELF нуждается в нулевом знаке в конце каждого сообщения 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.
.Когда я пытался проверить, что экземпляр 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
Может не удалось найти парсер для заголовка: [123, 34]
в журналах Logstash