Splunk rex查询不会返回所需的结果

时间:2016-03-16 22:48:30

标签: splunk

我希望在我的spunk中搜索错误类型。典型的错误日志如下所示:

  

ERROR 2016/03/16 22:13:55程序退出时出现错误呼叫服务:发布http://hostname/v1.21/resource/create?name=/60b80cf9-ebc4-11e5-a9cb-3c4a92db9491-2:阅读unix @ - > /var/run/program.sock:使用封闭式网络连接(客户端) 。等待标题时超出.Timeout

请注意,常见部分是“程序退出并出错”。我希望捕获错误消息的这个常见部分之后的部分。我尝试了几个rex表达式。两者返回不同的结果。重要的是,既没有捕获我上面显示的错误类型。我给的是一个在这里工作得更好的那个。

* | rex "Program exited with error\s+(?<reason>.+)" |  top reason

它匹配的日志示例 - 无法获取程序状态,获取http://192.168.0.2:2774/program/v1/status:net / http:超时等待响应标头

但是,它与表格的日志不匹配 -

initial ZK connection failed, stat /var/program/f47aae5c-ea42-11e5-8975-fc15b40f4cc4/srcheck/started: no such file or directory

Calling service: Post http://hostname/v1.21/resource/create?name=/60b80cf9-ebc4-11e5-a9cb-3c4a92db9491-2: read unix @->/var/run/program.sock: use of closed network connection (Client.Timeout exceeded while awaiting headers)

有人可以帮我理解我的rex表达式有什么问题,以及正确的表达方式是什么,所以我得到了所有可能的错误类型?

1 个答案:

答案 0 :(得分:0)

这个食谱:

"ERROR.*Program exited with error.*:.*:.*:\s+(?<reason>.+)" 

将产生:

use of closed network connection (Client.Timeout exceeded while awaiting headers)

我没有足够的样本数据来确定这是否会成功。例如,我指望正好3个冒号,让我进入有趣的部分。此外,我不知道你是否关心其他事情,如主持人名称,事实上它是一个帖子等等。但根据你的1号样本,这个答案应该可以解决问题。