2016-03-16 82 views
0

我期待来搜索我的胆量错误类型。一个典型的错误日志是这样的:Splunk的雷克斯查询不会返回期望的结果

ERROR 2016年3月16日22时十三分55秒程序错误呼叫服务退出:邮政http://hostname/v1.21/resource/create?name=/60b80cf9-ebc4-11e5-a9cb-3c4a92db9491-2:阅读UNIX @ - >/var/run中/ program.sock:使用的封闭网络连接(Client.Timeout在等待标题时被超过)

请注意,公共部分是“Program exited with error”。我正在寻找捕获错误消息的这一常见部分的部分。我尝试了几个rex表达式。两者都返回不同结果。重要的是,既没有捕获我上面显示的错误类型。我给了在这里工作得更好的那个。

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

它matched- 无法获取程序状态的日志的一个例子,获取http://192.168.0.2:2774/program/v1/status:网/ 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表达式有什么问题,以及正确的是什么,所以我得到所有可能的错误类型?

+0

那么你想要的输出是什么? 上述正则表达式应该产生: ERROR 2016年3月16日22时十三分55秒通话服务:POST HTTP://hostname/v1.21/resource/create名=/60b80cf9-ebc4-11e5-a9cb-3c4a92db9491-? 2:读取unix @ - >/var/run/program.sock:使用封闭的网络连接(在等待标题时超出Client.Timeout) –

回答

0

这个配方:

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

将产生:

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

我没有足够的样本数据来知道这是否会撑起与否。例如,我正准确地指向3个冒号,让我感兴趣的部分。此外,我不知道你是否关心其他东西,如主机名,但事实上,这是一个帖子,等等。但基于您的1个样本,这个答案应该做的伎俩。