mYz*_*Yzk 22 netcat echo graylog
我需要通过 echo 向 graylog2 服务器发送一条消息,以测试工具的 %{@type} 是否正确,但是一旦我执行了 GELF 支持中的 echo,就不会到达我的 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
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?graylog --debug 模式不显示任何内容。它甚至没有看到消息进来。
编辑:
Graylog2 输入是为 GELF TCP 设置的,并显示活动连接,当我尝试回显时它会升高,但没有消息到达服务器。
小智 33
似乎 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
Run Code Online (Sandbox Code Playgroud)
这个答案是在关于 Graylog 的问题的讨论中找到的。
jle*_*our 10
当我试图验证 Logstash 实例是否正确侦听 GELF 输入时,我找到了这个线程。
这是一个适用于 Logstash + Gelf over 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
Run Code Online (Sandbox Code Playgroud)
请注意:
echo就足够了,不需要-eCould not find parser for header: [123, 34]在 Logstash 日志中| 归档时间: |
|
| 查看次数: |
33659 次 |
| 最近记录: |