【问题标题】:String all characters in grok将grok中的所有字符字符串化
【发布时间】:2015-12-05 16:48:21
【问题描述】:

如何解析以下日志行中的字段 jsession?

2015-11-02 11:28:02,838 [TF701_0101] [124] [10.126.132.10] [JWFhW36DfTCZYpGgzF3QlDwN8j2cDznrKSBvz8hQw0lkTdknr67Y!1315365112!-629296615; path=/]

这是我目前的过滤器

filter {
    grok {
        match => { "message" => "%{TIMESTAMP_ISO8601:tiempo} \[%{WORD:instancia}\] \[%{NUMBER:numerico}\] \[%{IP:cliente}\] \[%{WORD:jsession}\]"}
    }
    date {
        match => [ "tiempo" , "YYYY-MM-dd HH:mm:ss,SSS"]
    }
}

【问题讨论】:

  • 您能提供更多信息吗?你用这段代码得到什么?什么不工作?

标签: parsing logstash grok


【解决方案1】:

你的 grok 模式几乎是好的。如果您将GREEDYDATA 用于您的jsession 字段而不是WORD,您将获得所需的内容:

filter {
    grok {
        match => { "message" => "%{TIMESTAMP_ISO8601:tiempo} \[%{WORD:instancia}\] \[%{NUMBER:numerico}\] \[%{IP:cliente}\] \[%{GREEDYDATA:jsession}\]"}
    }
    date {
        match => [ "tiempo" , "YYYY-MM-dd HH:mm:ss,SSS"]
    }
}

使用示例日志行运行此过滤器将产生以下输出:

{
       "message" => "2015-11-02 11:28:02,838 [TF701_0101] [124] [10.126.132.10] [JWFhW36DfTCZYpGgzF3QlDwN8j2cDznrKSBvz8hQw0lkTdknr67Y!1315365112!-629296615; path=/]",
      "@version" => "1",
    "@timestamp" => "2015-11-02T10:28:02.838Z",
          "host" => "iMac.local",
        "tiempo" => "2015-11-02 11:28:02,838",
     "instancia" => "TF701_0101",
      "numerico" => "124",
       "cliente" => "10.126.132.10",
      "jsession" => "JWFhW36DfTCZYpGgzF3QlDwN8j2cDznrKSBvz8hQw0lkTdknr67Y!1315365112!-629296615; path=/"
}

【讨论】:

    猜你喜欢
    • 2016-04-13
    • 1970-01-01
    • 2012-01-07
    • 2018-08-03
    • 2022-09-27
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多