grok解析syslog异常_grokparsefailure
logstash的异常信息并不像elastichsearch那样可以打印出详细的java堆栈错误,方便出错后排查问题。
在使用logstash中遇到_grokparsefailure,实在是太难调试,只能一点点去试、去分析。
之前在解析一个标准的syslog日志竟然也出错。用的官方的标准的pattern。
下面这行日志grok解析失败了:
从官方模版中的正则可以看出对于HOSTNAME的解析不支持"_";。
SYSLOGHOST %{IPORHOST}
IPORHOST (?:%{HOSTNAME}|%{IP})
HOSTNAME \b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:\.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(\.?|\b)
找到问题,解决就容易了,要么改主机名要么不用官方的pattern。
ps_office改为ps-office,一切ok了。