【问题标题】:Grok pattern working fine in grok debugger but the same pattern is not working when running with logstashGrok 模式在 grok 调试器中工作正常,但在使用 logstash 运行时相同的模式不起作用
【发布时间】:2021-02-12 17:22:43
【问题描述】:
**Input File:**

123.123.12.123 - - [09/Jan/2021:00:00:41 -0500] "GET /abcde/common/abcde.jsp HTTP/1.1" 401 1944 1

Grok 调试器中的输出 { "路径": "GET /abcde/common/abcde.jsp HTTP/1.1", “响应代码”:“401”, “KnowCode”:“1944”, “退出代码”:“1”, “用户信息”: ”-”, "主机名": "123.123.12.123", “日期”:“09/Jan/2021:00:00:41 -0500” }

logstash 中的 GROK 过滤器

grok {
    match => {"message" => " %{IP:HostName}\s\-\s%{USERNAME:UserInfo}\s\[%{GREEDYDATA:Date}\]\s\"%{GREEDYDATA:Path}\"\s%{BASE10NUM:ResponseCode}\s%{BASE10NUM:KnowCode}\s%{BASE10NUM:ExitCode}"}
}
    

而当在 Kibana 屏幕的 logstash 过滤器中处理相同的 grok 模式时,它会给我这样的结果 ::

      "@version" => "1",
    "@timestamp" => 2021-02-12T16:38:28.141Z,
          "type" => "access_logs",
          "path" => "C:/Temp/BOHLogs/CatalinaAccess/localhost_access_log.2021-01-09.txt",
          "tags" => [
        [0] "_grokparsefailure"
    ],
          "host" => "AB-1SM433",
       "message" => "123.123.12.123 - - [09/Jan/2021:00:00:41 -0500] \"GET /abcde/common/abcde.jsp HTTP/1.1\" 401 1944 1"

【问题讨论】:

  • 在 logstash 文件中使用时相同的 grok pettern,它不会生成 JSON 格式的结果。

标签: logstash elastic-stack logstash-grok logstash-configuration


【解决方案1】:

您的模式开头有一个空格需要删除。

grok {
    match => {"message" => " %{IP:HostName}\s\-\s%{USERNAME:UserInfo}\s\[%{GREEDYDATA:Date}\]\s\"%{GREEDYDATA:Path}\"\s%{BASE10NUM:ResponseCode}\s%{BASE10NUM:KnowCode}\s%{BASE10NUM:ExitCode}"}
                            ^ Delete this
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多