在%{QS:message}内寻找关键字

pcproff

我上下搜索,想知道或者这是否是Grok中可能的选择。所以我的日志文件被过滤就好了。除外,%{QS:message}是包含我的错误,警告,发布,获取等的内容。我希望能够对Kibana中的内容进行查询,但不要选择它们。我能做些什么使这些关键字从logstash变为kibana吗?

马库斯

如果您逐步进行分析,那可能是最简单的。将以下内容添加到您的输出节stdout中{ codec => rubydebug }

处理日志消息时,它会详细说明由logstash在处理日志消息期间创建的所有字段及其值。只要您在Elasticsearch输出中未指定任何内容,这些字段就会存储在elasticsearch中(以及未分析的.raw对应内容)。如果看起来还可以,那么您可以交互地使用其休息界面(使用curl)或通过安装elasticsearch kopf插件(或类似的东西)查看弹性存储中实际存储的内容,从而对事物的elastisearch进行查看。

编辑:关于您的最后评论。

假设您的日志数据如下所示:“ POST:从shoppingcart.php提交的表单”

您可以使用带有正则表达式的if语句来简单地检查您的消息是否包含给定的字符序列(例如POST),然后使用mutate过滤器向事件中添加字段或标记,如下所示:

if [logmessage] =~ /POST/ {
    mutate { add_tag => ["POST"] }
    # or you could also do something like:
    mutate { add_field => ["method","POST"]}
}

除了if语句,您还可以使用grok过滤器进一步解析消息,如下所示:

grok {
      match => ["logmessage", "(?<method>POST)"]
      tag_on_failure => []
}

根据日志条目的结构和要提取其内容的复杂性,最好使用方法a。或b。如果您的日志结构合理,则只需构建一个grok过滤器即可处理所有变体。假设您的所有行都像这样:

方法|返回码| messageText

你可以做一个简单的grok过滤器

%{DATA:method} |%{DATA:returnCode} | {GREEDYDATA:messageText}

它会处理您的所有行,并将您的日志解析到字段中,以进行kibana分析。

但是,如果您的日志非常无组织,并且您只想查找少量关键字,则还可以使用if regexp风味...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章