logstash - 在 Logstash 或 filebeat 中解析日志并将其转换为 JSON 以拉取 Elasticsearch
问题描述
我正在使用 filbeat 将日志发送到 logstash,然后将它们存储在 elasticsearch 中。
我的日志文件包含如下字符串:
MESSAGE: { "url": "http://IP:PORT/index.html" , "msg": "aaa" }
MESSAGE: { "url": "http://IP:PORT/index_2.html" , "msg": "bbb" }
我想将 JSON 对象存储在 Elasticsearch 中。我正在努力使用一些正则表达式来解析数据,然后将它们转换为 JSON 以发送到 Elasticsearch 的索引。有什么帮助吗?我应该把逻辑去掉“MESSAGE:”吗?
解决方案
您需要拆分您的消息,一部分用 just MESSAGE:
,您可以忽略,另一部分用json
,然后您将其发送到json
过滤器。
尝试以下操作:
filter {
grok {
match => { "message" => "MESSAGE:%{SPACE}%{GREEDYDATA:json_message}"
}
json {
source => "json_message"
}
}
这将获取您的原始消息并应用grok
过滤器以仅在名为 的字段中获取 json 部分json_message
,然后json
过滤器将解析此字段url
并msg
为每个事件创建字段和。
推荐阅读
- highcharts - Stockchart - 属性 {cropThreshold: } 不起作用
- php - 为 joomla 组件开发功能
- javascript - Javascript/Jquery中的Key-Value Pair Json转换与类转换
- react-native - react-native 中的倒数计时器
- powershell - 发送邮件消息 - IF 条件下的附件和子项不起作用
- python - 为什么这会无限循环?新手在这里
- c# - C# datagrid 在添加时不更新 itemsource
- python - Python 自动转换为文本
- scrapy - 如何将 allowed_domains 与相对路径一起使用?
- garbage-collection - 如何完成 lisp:struct 包含指针?