解析Logstash或filebeat中的日志并将其转换为JSON以拉取Elasticsearch

问题描述 投票:0回答:1

我使用filbeat将日志发送到logstash,然后将它们存储在elasticsearch中。

我的日志文件包含以下字符串:

MESSAGE: { "url": "http://IP:PORT/index.html" , "msg": "aaa" }
MESSAGE: { "url": "http://IP:PORT/index_2.html" , "msg": "bbb" }

我想在Elasticsearch中存储JSON对象。我正在努力使用一些正则表达式来解析数据,然后在JSON中转换它们以发送到Elasticsearch的索引。有帮助吗?我应该把逻辑去掉掉“MESSAGE:”吗?

logstash elastic-stack filebeat
1个回答
0
投票

你需要分割你的信息,一部分只有MESSAGE:,你可以忽略,另一部分用json,你将发送到json过滤器。

请尝试以下方法:

filter {
    grok {
        match => { "message" => "MESSAGE:%{SPACE}%{GREEDYDATA:json_message}"
    }
    json {
        source => "json_message"
    } 
}

这将获得您的原始消息并应用grok过滤器仅在名为json_message的字段中获取json部分,然后json过滤器将解析此字段并为每个事件创建字段urlmsg

© www.soinside.com 2019 - 2024. All rights reserved.