我在弹性 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 文件之前进行测试。我对 []、: 和 () 有疑问。没有这些,我可以获得如下输出。
输入:Mon Dec 15 2014 05:55:11 test crypto INFO mpgwTest tid135196353 request 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})
我得到了正确的输出。
我怎么能省略[],:,().
?