我正在寻找在我的 spunk 中搜索错误类型。典型的错误日志如下所示:
错误2016/03/16 22:13:55 程序退出,出现错误 呼叫服务: 发布 http://hostname/v1.21/resource/create?name=/60b80cf9-ebc4-11e5-a9cb-3c4a92db9491-2:读取 unix @->/var/run/program.sock:使用封闭的网络连接(等待标头时超出客户端超时)
请注意,公共部分是"程序退出并出错"。我希望捕获错误消息的此常见部分后面的部分。我尝试了几个雷克斯表情。两者都返回了不同的结果。重要的是,两者都没有捕获我上面显示的错误类型。我在这里给出的是一个效果更好的。
* | rex "Program exited with errors+(?<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 表达式有什么问题以及正确的表达式是什么,以便我获得所有可能的错误类型吗?
这个食谱:
"ERROR.*Program exited with error.*:.*:.*:s+(?<reason>.+)"
将产生:
use of closed network connection (Client.Timeout exceeded while awaiting headers)
我没有足够的样本数据来知道这是否成立。 例如,我指望正好 3 个冒号,让我进入有趣的部分。 我也不知道你是否关心其他事情,比如主机名、它是一个帖子的事实等。 但是根据你的样本 1,这个答案应该可以解决问题。