在《本地搭建ELK系统》中,在本地搭建了一个非常简单的ELK系统。其中logstash从本地日志文件中读取信息并交给elasticsearch。
然而直接把原始未加工的日志交给elasticsearch没有什么意义。
logstash还有一个重要的工作就是解析日志。把解析出来的关键字与日志本身共同交给elasticsearch,elasticsearch才能很好地建立日志索引。
logstash支持多种解析器,grok是其中一种。
使用grok filter需要在logstash的配置文件中加上这样的内容:
filter {
grok {
match => { "message" => "grok_pattern" }
}
}
这段代码中除了grok_pattern
以外都是logstash的关键字。grok_pattern
部分需要使用者填充自己的解析方式。
grok_pattern
由零个或多个%{SYNTAX:SEMANTIC}
组成,其中SYNTAX是表达式的名字,是由grok提供的,例如数字表达式的名字是NUMBER,IP地址表达式的名字是IP。SEMANTIC表示解析出来的这个字符的名字,由自己定义,例如IP字段的名字可以是client。
对于下面这条日志:</