pgpool日志的{Logstash grok模式

时间:2016-04-13 17:40:32

标签: logging elasticsearch logstash logstash-grok grok

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

我的日志示例:

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

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

我的格鲁克模式(部分工作):

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 :(得分:0)

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

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