Saya perlu mengirim pesan ke graylog2 server melalui echo untuk menguji apakah% {@ type} untuk fasilitas sudah benar, tetapi begitu saya melakukan itu echo yang ada dalam dukungan GELF tidak tiba di server graylog2 saya. Jika restart graylog2 maka pesan tentang hal itu mulai tiba ke server graylog2.
Contoh pesan gema:
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
Apa yang saya lakukan salah? Mode graylog --debug tidak menunjukkan apa pun. Bahkan tidak melihat pesan masuk.
Edit:
Input Graylog2 adalah setup untuk GELF TCP dan menunjukkan koneksi aktif dan memunculkan ketika saya mencoba untuk echo, tetapi tidak ada yang mencapai server seperti untuk pesan yang masuk.
-u
parameter ke nc.Jawaban:
Tampaknya input GELF TCP membutuhkan karakter nol di akhir setiap pesan Gelf.
Jadi, Anda harus mengirim:
Jawaban ini ditemukan dalam diskusi tentang masalah Graylog .
sumber
-u
parameter untuknc
menggunakan UDPKetika saya mencoba memverifikasi bahwa instance Logstash mendengarkan dengan benar untuk input GELF, saya telah menemukan utas ini.
Berikut adalah perintah yang akan bekerja untuk Logstash + Gelf over UDP:
Perhatikan itu :
echo
sudah cukup, tidak perlu-e
Could not find parser for header: [123, 34]
di Logstash logssumber