繁体   English   中英

使用HTTP POST请求作为输入的Logstash的Grok模式

[英]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_typehttp_message

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM