[英]Grok pattern for Logstash using HTTP POST request as input
我正在使用Logstash处理我的日志并将其存储到Elastic Search。 我正在使用http作为Logstash的输入插件。
我的http发布请求是:
$http.post(url, {type: 'reference error', message: 'y is not defined'});
我想将类型和消息密钥存储为Elastic Search中的不同字段。
当前,所有帖子数据都存储为单个字段,例如:
“ message”:“ {\\” type \\“:\\” ReferenceError \\“,\\” message \\“:\\” y未定义\\“}”
我认为可以使用grok过滤器来完成此操作,但我一直无法找到一种方法来执行此操作。
非常感谢您的帮助。 谢谢。
如果您使用json编解码器 ,则应自动将信息拆分为多个字段。
编辑:正如Alain所说,这是使用json编解码器的最佳方法,可以直接在您的http输入插件中设置。 如果由于某种原因无法实现,则可以使用grok过滤器。
如果我对您的理解正确,则传入事件如下所示:
{"type": "reference error", "message": "y is not defined"}
然后相应的grok模式将如下所示:
{"type": %{QUOTEDSTRING:http_type}, "message": %{QUOTEDSTRING:http_message}}
在您的logstash配置中:
grok {
match => [ "message", "{\"type\": %{QUOTEDSTRING:http_type}, \"message\": %{QUOTEDSTRING:http_message}}" ]
}
然后结果将具有两个字段http_type
和http_message
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.