【问题标题】:please help me with the GROK pattern for below log message请帮助我了解以下日志消息的 GROK 模式
【发布时间】:2021-02-19 18:33:07
【问题描述】:

以下是发送至Kibana 的日志消息,但我们需要对以下任何一种隔离添加过滤器,因为每个隔离都代表一些独特的标准。

请帮我解决这个问题的GROK 模式。在下面的格式中,实际消息是在rest 关键字之后

{"@timestamp":"2021-02-19T10:27:42.275+00:00","severity":"INFO","service":"capp","pid":"19592","线程":"SmsListenerContainer-9","class":"c.o.c.backend.impl.SmsServiceImpl","re​​st":"[SmsListener] [sendSMS] [63289e8d-13c9-4622-b1a1-548346dd9427] [synemail] [ABSENT] [synfi] [0:0:0:0:0:0:0:1] [N/A] [N/A] [结束方法]"}

【问题讨论】:

    标签: elasticsearch logstash kibana


    【解决方案1】:

    对于这种用例,您有this online tool,它提供了一种快速测试/验证表达式的方法。

    这个表达式必须匹配我们的数据行:

    ^\[%{TIMESTAMP_ISO8601:timestamp}\] \[%{LOGLEVEL:loglevel}\s*\] \[%{DATA:thread}?\] \[%{DATA:class}?\] \[%{DATA:action}?\] \[%{DATA:id}?\] \[%{DATA:field1}?\] \[%{DATA:field2}?\] \[%{DATA:field3}?\]
    

    所以在文件配置上下文中,这看起来像这样:

      filter{
        grok {
            match => { 
              "message" => "^\[%{TIMESTAMP_ISO8601:timestamp}\] \[%{LOGLEVEL:loglevel}\s*\] \[%{DATA:thread}?\] \[%{DATA:class}?\] \[%{DATA:action}?\] \[%{DATA:id}?\] \[%{DATA:field1}?\] \[%{DATA:field2}?\] \[%{DATA:field3}?\]" 
              }
        }
      }
    

    【讨论】:

    • 感谢您的快速回复!
    • 我已按照您的建议修改了模式,但它也无法正常工作,并且在 logstash 控制台_grokparsefailure 上看到此错误
    • filter{ grok { match => { "message" => "^[%{TIMESTAMP_ISO8601:timestamp}] [%{LOGLEVEL:loglevel}\s*] [%{DATA:thread}? ] [%{JAVACLASS:class}?] [%{WORD:method}?] [%{DATA:id}?] [%{DATA:field1}?] [%{DATA:field2}?] [%{DATA :field3}?]$" } } }
    • 什么不起作用?某些模式不能与数据匹配?
    • _grokparsefailure 显示在标签部分,当我尝试在 kibana 中查看数据时,它仍然显示旧格式
    猜你喜欢
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多