elasticsearch 使用HTTP POST请求作为输入的日志存储的Grok模式
我使用Logstash来处理我的日志并将它们存储到Elastic Search。 我正在使用http作为日志存储的输入插件 我的http post请求是: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不是 已定义\“}” 我认为这可以通
$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编解码器,它运行起来很有魅力。