Muszę wysłać wiadomość do serwera graylog2 za pośrednictwem echa, aby sprawdzić, czy% {@ type} dla obiektu jest aktywny, ale kiedy to zrobię, echo obsługi GELF nie dotrze do mojego serwera graylog2. Jeśli zrestartuje graylog2, wówczas wiadomości o rozpoczęciu docierają do serwera graylog2.
Przykład komunikatu echa:
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
Co ja robię źle? Tryb graylog --debug niczego nie pokazuje. Nawet nie widzi wiadomości.
Edytować:
Wejście Graylog2 jest skonfigurowane dla GELF TCP i pokazuje aktywne połączenia i podnosi się, gdy próbuję echo, ale nic nie dociera do serwera, jak w przypadku wiadomości.
-u
parametr do nc.Odpowiedzi:
Wygląda na to, że wejście GELF TCP wymaga znaku zerowego na końcu każdej wiadomości Gelf.
Więc powinieneś wysłać:
Ta odpowiedź została znaleziona w dyskusji na temat problemów Graylog .
źródło
-u
parametr, abync
użyć UDPGdy próbowałem sprawdzić, czy instancja Logstash poprawnie nasłuchuje danych wejściowych GELF, znalazłam ten wątek.
Oto polecenie, które będzie działać dla Logstash + Gelf przez UDP:
Zauważ, że :
echo
, bez potrzeby-e
Could not find parser for header: [123, 34]
w dziennikach Logstashźródło