【问题标题】:grok - how do you find a quoted stringgrok - 你如何找到带引号的字符串
【发布时间】:2014-02-15 00:21:36
【问题描述】:

我正在尝试从 nginx 日志文件中获取输出并将其发送到 logstash。

10.1.10.20 - bob [14/Feb/2014:18:57:05 +0000] “POST /main/foo.git/git-upload-pack HTTP/1.1” 200 3653189 “-” “git/1.8.3.4 (Apple Git–47)” 

Grock 能够很好地找到前 3 个单词

10.1.10.20 - bob [14/Feb/2014:18:57:05 +0000]

%{IPV4:user_ip} - %{USERNAME:user_name} \[%{HTTPDATE:time_local}\]

Grok 能够很好地找到第三个和第四个单词

[14/Feb/2014:18:57:05 +0000] “POST /main/foo.git/git-upload-pack HTTP/1.1”

\[%{HTTPDATE:time_local}\] %{QUOTEDSTRING:request}

但是,当我将它们结合起来并尝试找到所有 4 个时,grok 说没有结果(使用 http://grokdebug.herokuapp.com/ 进行测试)

10.1.10.20 - bob [14/Feb/2014:18:57:05 +0000] “POST /main/foo.git/git-upload-pack HTTP/1.1” 

%{IPV4:user_ip} - %{USERNAME:user_name} \[%{HTTPDATE:time_local}\]  %{QUOTEDSTRING:request}
#not found

有人知道如何获取上面例子中引用的字符串吗?

我是 grok 的新手,所以也许我没有正确处理这个问题。

更新

有趣的是,如果我使用以下日志行,然后手动输入网址,它确实可以工作

 bob 14/Feb/2014:18:57:05 +0000 "herp"
 #Once herp works, replace herp, with POST
 bob 14/Feb/2014:18:57:05 +0000 "POST"
 #Once POST works, keep expounding until the whole thing is in place
 autobuild 14/Feb/2014:18:57:05 +0000 "POST /main/builder.git/git-upload-pack HTTP/1.1"

【问题讨论】:

  • 嗨,您是否设法以正确的类型格式(例如字段 time_local 识别为日期)将数据发送到 elasticsearch ?

标签: regex logstash grok


【解决方案1】:

"POST /main/builder.git/git-upload-pack HTTP/1.1" 在模式中

"%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}"

【讨论】:

    【解决方案2】:

    发布到堆栈溢出的过程确定了问题。

    如果你仔细看,双引号的解析方式不同

    "POST 
    

    “POST
    

    手动输入双引号可以解决问题

    【讨论】:

      【解决方案3】:

      您也可以将此表达式用于日志更改的情况:

      "%{WORD:verb}(?:| %{URIPATHPARAM:request})(?:| HTTP/%{NUMBER:httpversion})"
      

      匹配:

      "POST /main/builder.git/git-upload-pack HTTP/1.1"
      

      "POST /main/builder.git/git-upload-pack"
      

      "POST"
      

      试试看.. ;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-07
        • 1970-01-01
        • 2022-11-21
        • 2023-01-13
        相关资源
        最近更新 更多