Filter Logstash过滤使用grok以[]过滤日志

Filter Logstash过滤使用grok以[]过滤日志,filter,logstash,filtering,using,logstash-grok,Filter,Logstash,Filtering,Using,Logstash Grok,我在elastic serach中捕获了以下日志,我们通过kibana gui查看这些日志。 现在,我们需要将日志分解为日期时间戳、日志级别、对象名称、描述等,以便在仪表板中显示它们 {“message”:“Mon-Dec 15 2014 05:55:11[test][crypto][info]mpgw(test):tid(135196353)[request][10.259.268.129]:针对“CompanyCA\u ValCred”成功验证了“/C=US/O=Company/OU=Web

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

{“message”:“Mon-Dec 15 2014 05:55:11[test][crypto][info]mpgw(test):tid(135196353)[request][10.259.268.129]:针对“CompanyCA\u ValCred”成功验证了“/C=US/O=Company/OU=Web Servers/CN=abcqa client.Company.com”
\r“,“@version”:“1”,“@timestamp”:“2014-12-15T10:55:19.168Z”,“主机”:“testserver”,“路径”:“/opt/store/device_logging/QA1_filter2.log.20141215512”}

我正在使用grok debugger()在更新logstash conf文件之前进行测试。我对[]、:、和()有问题。没有这些,我可以得到如下输出

输入: 2014年12月15日星期一05:55:11测试加密信息mpgwTest tid135196353请求10.255.215.129针对“CompanyCA_ValCred”成功验证了
“/C=US/O=Company/OU=Web服务器/CN=abcqa client.ompany.com”

模式:
%{WORD:day}%{MONTH:MONTHDAY}%{YEAR:YEAR}%{TIME:TIME}((?:{WORD:DOMAIN})(?:{WORD:Objecttype})(?:{LOGLEVEL:level})(?:{WORD:DPObject})(?:{WORD:tid})(?:{WORD WORD flowtype})(?:{IP:ClientIP})(?:{greedData:Description}br}>
我得到了正确的输出


如何省略
[],:,()。

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

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

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