【问题标题】:Logstash filtering using grok to filter the log with []Logstash 过滤使用 grok 过滤带有 [] 的日志
【发布时间】:2019-09-09 23:05:54
【问题描述】:

我在弹性 serach 中捕获了以下日志,我们通过 kibana gui 查看。 现在我们需要将日志分解为日期时间戳、日志级别、对象名称、描述等,以便在仪表板中显示它们。

{"message":" Mon Dec 15 2014 05:55:11 [test][crypto][info] mpgw(Test): tid(135196353)[request][10.259.268.129]: certificate validation succeeded for '/C=US/O=Company/OU=Web Servers/CN=abcqa-client.company.com' against 'CompanyCA_ValCred' \r","@version":"1","@timestamp":"2014-12-15T10:55:19.168Z","host":"testserver","path":"/opt/store/device_logging/QA1_filter2.log.20141215055512"}

我正在使用 grok 调试器 (https://grokdebug.herokuapp.com/) 在更新 logstash conf 文件之前进行测试。我对 []、: 和 () 有疑问。没有这些,我可以得到如下输出。

输入: 2014 年 12 月 15 日星期一 05:55:11 测试加密 INFO mpgwTest tid135196353 请求 10.255.215.129 证书验证成功 '/C=US/O=Company/OU=Web Servers/CN=abcqa-client.ompany.com' against 'CompanyCA_ValCred'

图案: %{WORD:day} %{MONTH:month} %{MONTHDAY:monthday} %{YEAR:year} %{TIME:time} (?:%{WORD:DOMAIN}) (?:%{WORD:Objecttype}) (?:%{LOGLEVEL:level}) (?:%{WORD:DPObject}) (?:%{WORD:tid}) (?:%{WORD:flowtype}) (?:%{IP:ClientIP}) (?:%{GREEDYDATA:Description})
我得到了正确的输出。

我怎样才能省略[],:,().

【问题讨论】:

    标签: filter logstash filtering using logstash-grok


    【解决方案1】:

    您可以通过在特殊正则表达式字符前面放置反斜杠 ('\') 来转义它们。

    例如,你的模式的第一部分可以写成:

    %{WORD:day} %{MONTH:month} %{MONTHDAY:monthday} %{YEAR:year} %{TIME:time} \[(?:%{WORD:DOMAIN})\]\[(?:%{WORD:Objecttype})\]\[(?:%{LOGLEVEL:level})\]
    

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      相关资源
      最近更新 更多