我希望在我的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表达式有什么问题,以及正确的表达方式是什么,所以我得到了所有可能的错误类型?
答案 0 :(得分:0)
这个食谱:
"ERROR.*Program exited with error.*:.*:.*:\s+(?<reason>.+)"
将产生:
use of closed network connection (Client.Timeout exceeded while awaiting headers)
我没有足够的样本数据来确定这是否会成功。例如,我指望正好3个冒号,让我进入有趣的部分。此外,我不知道你是否关心其他事情,如主持人名称,事实上它是一个帖子等等。但根据你的1号样本,这个答案应该可以解决问题。