2015-10-15 61 views
0

我使用logstash将日志收集到elasticsearch中。我通过这个链接上测试他们创造了一些日志神交过滤器:

http://grokconstructor.appspot.com/do/match#result

我有$字符的问题。坏事是你无法知道日志里面是否有$字符。

一个例子日志:

[8/11/15 10:34:47:047 EEST] 0000003b MbuRmmAdapter I DCSV1032I: DCS Stack DefaultCoreGroup at Member TEST\G 

成功地工作,该日志过滤器:

\[%{DATESTAMP:datestamp}\s(?<tzone>.*)\]\s(?<threadid>[\w]{8})\s%{WORD:logshortname}\s+(?<eventtype>[\w]{1})\s(?<msg>.*) 

但是,如果我们把一个$像MbuRmm $适配器MbuRmmAdapter字内,调试器会说$之后的部分与过滤器不匹配。

我该怎么办?

回答

1

使用时只需将数据模式,而不是字纹为您logshortname领域,它应该只是罚款:

\[%{DATESTAMP:datestamp}\s(?<tzone>.*)\]\s(?<threadid>[\w]{8})\s%{DATA:logshortname}\s+(?<eventtype>[\w]{1})\s(?<msg>.*) 

您可以检查出所有的预定义的神交模式的定义在这里: https://github.com/elastic/logstash/tree/v1.4.2/patterns