在使用Filebeat替代Logstash的时候遇到需要从log中摘取数据的case,比如解析access log,最开始的方案是使用Filebeat module功能,把所有load都转移到Elasticsearch的Ingest Node上面。
之后遇到的case是文件路径中带有IP信息,需要把ip摘取出来之后通过DNS域名解析服务器转变成域名。如果依然使用module方式在Ingest node上面抓取的话没法后续做DNS转换的操作,遂考虑在Filebeat上面使用Dissect+DNS Reverse的方案。
Dissect:
Dissect是一款轻量级的匹配过滤器,相比于Grok,不做过多的正则匹配。如若数据格式相对固定并且有明显的分割边界,使用Dissect会比Grok消耗更少的资源。
如果一个文件的格式很规律,固定的字段,而且对解析的数据没有格式要求,可以采用dissect模式
只需要配置filebeat.yml即可:
详细内容参见: