如何解决从 Kibana 仪表板中的 LogStash 消息字段中提取
我已经配置了一个 LogStash EC2 服务器来将一些日志推送到 AWS ElasticSearch 域中。该过程运行正常,并且日志在 Kibana 中可见。但是,我需要在名为“消息”的字段中提取数据,并在 Kibana 仪表板的单独列中显示这些提取的数据。我遵循了一些教程并尝试使用 grok 工具修改 logstash 配置。
每条记录大约有 35 个字段,字段 'message' 是一个复杂的字段,由 10 个单独的值组成。我需要的是为每条记录提取这 10 个值中的每一个,并将它们显示为单独的字段。
以下是消息的示例字段。
2021-04-05 13:32:03.746+0000 | INFO | BRAINWAVE_API | DEV | | | 22460 | [scheduling-1] | c.h.w.a.bwService | Fetching results for orgI : 81ge0-de12ff-59jla0 orgN : Cactus Corp
以下是我当前在 logstash.conf 文件中的 grok 配置。请注意,我试图首先提取消息字段中第一个子字段的值,因此只有一个参数:
filter {
grok {
match => { "message" => "%{NUMBER:yearField}" }
}
}
它返回一个名为“yearField”的额外字段,但它只包含“2021”,我认为它只能捕获“message”字段中第一个子字段的第一部分 2021 -04-05 13:32:03.746+0000。
这个 grok 配置有什么问题?
解决方法
这是将匹配日志模式的 grok 模式:
%{TIMESTAMP_ISO8601:timestamp} \| %{LOGLEVEL:loglevel} \| %{WORD:Api} \| %{WORD:user} \| %{SPACE:} \| %{SPACE} \| %{POSINT:bytes} \| \[%{DATA:thread}\] \| %{DATA:service} \| %{GREEDYDATA:message}
我已经使用 Grok Debugger 来测试模式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。