elasticsearch 使用HTTP POST请求作为输入的日志存储的Grok模式,elasticsearch,logstash,grok,logstash-grok,elasticsearch,Logstash,Grok,Logstash Grok" /> elasticsearch 使用HTTP POST请求作为输入的日志存储的Grok模式,elasticsearch,logstash,grok,logstash-grok,elasticsearch,Logstash,Grok,Logstash Grok" />

elasticsearch 使用HTTP POST请求作为输入的日志存储的Grok模式

elasticsearch 使用HTTP POST请求作为输入的日志存储的Grok模式,elasticsearch,logstash,grok,logstash-grok,elasticsearch,Logstash,Grok,Logstash Grok,我使用Logstash来处理我的日志并将它们存储到Elastic Search。 我正在使用http作为日志存储的输入插件 我的http post请求是: $http.post(url, {type: 'reference error', message: 'y is not defined'}); 我想在弹性搜索中将类型和消息键存储为不同的字段 目前,所有post数据都存储为单个字段,如: “消息”:“{\”类型\“:\”引用错误\“,\”消息\“:\”y不是 已定义\“}” 我认为这可以通

我使用Logstash来处理我的日志并将它们存储到Elastic Search。 我正在使用http作为日志存储的输入插件

我的http post请求是:

$http.post(url, {type: 'reference error', message: 'y is not defined'});
我想在弹性搜索中将类型和消息键存储为不同的字段

目前,所有post数据都存储为单个字段,如:

“消息”:“{\”类型\“:\”引用错误\“,\”消息\“:\”y不是 已定义\“}”

我认为这可以通过grok过滤器来实现,但我还没有找到一种方法来实现

非常感谢您的帮助。 谢谢

编辑: 正如Alain提到的,这是使用json编解码器的最佳方式,可以直接在http输入插件中设置。如果由于某种原因无法实现,您可以使用grok过滤器

如果我理解正确,您的传入事件如下所示:

{"type": "reference error", "message": "y is not defined"}
{"type": %{QUOTEDSTRING:http_type}, "message": %{QUOTEDSTRING:http_message}}
然后对应的grok模式将如下所示:

{"type": "reference error", "message": "y is not defined"}
{"type": %{QUOTEDSTRING:http_type}, "message": %{QUOTEDSTRING:http_message}}
在日志存储配置中:

grok {
    match => [ "message", "{\"type\": %{QUOTEDSTRING:http_type}, \"message\": %{QUOTEDSTRING:http_message}}" ]
}
然后结果将有两个字段
http\u type
http\u message

编辑: 正如Alain提到的,这是使用json编解码器的最佳方式,可以直接在http输入插件中设置。如果由于某种原因无法实现,您可以使用grok过滤器

如果我理解正确,您的传入事件如下所示:

{"type": "reference error", "message": "y is not defined"}
{"type": %{QUOTEDSTRING:http_type}, "message": %{QUOTEDSTRING:http_message}}
然后对应的grok模式将如下所示:

{"type": "reference error", "message": "y is not defined"}
{"type": %{QUOTEDSTRING:http_type}, "message": %{QUOTEDSTRING:http_message}}
在日志存储配置中:

grok {
    match => [ "message", "{\"type\": %{QUOTEDSTRING:http_type}, \"message\": %{QUOTEDSTRING:http_message}}" ]
}

然后,结果将有两个字段
http\u type
http\u message
,如果您使用,信息将自动拆分为字段。

如果您使用,信息将自动拆分为字段。

谢谢@Alain,我使用了JSON编解码器,它运行起来很有魅力。谢谢@Alain,我使用了JSON编解码器,它运行起来很有魅力。