如何使用grok模式在日志消息中找到带特定单词的引号字符串



我有一条来自服务器的日志消息,格式如下:

{"host":"a.b.com","source_type":"ABCD"}

到目前为止,我有这种grok模式,但它接受任何双引号的单词。

A%{QUOTEDSTRING}:%{PROG}

我怎样才能改变";引用字符串"只检查";主持人";?"主机";不是一直在消息的开头,它也可以在消息的中间找到。

谢谢你的帮助。

由于问题指定了">主机";可以在日志中的任何位置,您可以使用以下内容:

{("%{GREEDYDATA:data_before}",)?("host":"%{DATA:host_value}")?(,"%{GREEDYDATA:data_after}")?}

说明:

  1. data_befor在找到主机类型条目之前存储可选数据。您可以根据需要进行更多的分离
  2. 主机:存储主机值
  3. data_after在找到主机类型条目后存储可选数据。你可以根据需要进行更多的水化处理

示例:

  1. {"host":"a.b.com","source_type":"ABCD"}

输出:

{
"data_before": [
[
null
]
],
"host_value": [
[
"a.b.com"
]
],
"data_after": [
[
"source_type":"ABCD"
]
]
}
  1. {"host":"a.b.com"}

输出:

{
"data_before": [
[
null
]
],
"host_value": [
[
"a.b.com"
]
],
"data_after": [
[
null
]
]
}
  1. {"source_type":"ABCD","host":"a.b.com","data_type":"ABCD"}

输出:

{
"data_before": [
[
"source_type":"ABCD"
]
],
"host_value": [
[
"a.b.com"
]
],
"data_after": [
[
"data_type":"ABCD"
]
]
}

提示:使用以下资源来调整和测试您的日志记录模式:

  • Grok调试器
  • Grok模式完整列表

相关内容

  • 没有找到相关文章

最新更新