首页 文章

用于pgpool日志的Logstash grok模式

提问于
浏览
0

我在查找所有日志的正确grok模式时遇到问题,以便通过logstash解析所有日志 .

我的日志示例:

1)2016-04-13 19:55:40:pid 21950:日志:pool_send_and_wait:来自后端的错误或通知消息:: DB node id:4 backend pid:65156 statement:“UPDATE certname ......” . ..(日志的其余部分无关紧要)

2)2016-04-13 19:55:40:pid 17555:致命:未能从后端阅读

我的grok模式(部分工作):

grok {match => {“message”=>“%{GREEDYDATA:logdate}:pid%{NUMBER:pid}:%{LOGLEVEL:loglevel}:%{GREEDYDATA:logmessage}”}}

正如你所看到的那些是我关心的事情:1)日志的日期2)PID 3)loglevel 4)消息本身

除了上面的模式,我还尝试使用\ A%{TIMESTAMP_ISO8601:timestamp}模式指定日期(就像grok调试器建议的那样) .

我的假设是第一个日志是我的有问题的日志,因为它在其中有两次“log”,虽然在第二次它没有出现在冒号之后(不像我的grok模式)所以我没有想法为什么它解析操作失败了 .

实际上,我的日志中没有包含单词“log”两次成功解析 - 我的模式部分工作 .

谢谢 :)

1 回答

  • 0

    制作grok模式的技巧是从左边开始,让第一个工作,然后慢慢向右移动直到你完成 .

    这样做,当你添加%时,你会看到它停止工作 . 为什么?因为“LOG”对LOGLEVEL无效 . 它期待像DEBUG之类的东西 . 使用类似%的东西,它可以正常工作 .

相关问题