efk简介
elasticsearch+filbeat+kibana的三个系统的简称,elasticsearch负责数据的存储,搜索;filbeat负责采集各节点的数据,kibana负责界面化的呈现。
filbeat配置
日志收集过程中会涉及到各种复杂的场景,其中最常见的用法就是多服务器,多节点的日志收集;以下为最简单的的实例:
单节点上会收集到同一个索引标识符中,如果是多节点使用同样的配置,那这时候efk怎么区分来源呢?最重要是通过index的匹配判定log.file.path判定本地的具体路径,fields.source判定数据来自哪个服务器;通过这两个关键字符,就可以合并多服务器多日志。当然这只是最简单的合并使用,还要根据具体项目需求加上通过通配符合并文件中的内容。
- type: log
enabled: yes
paths:
- /DATA/web/8081/logs/error.log
- /DATA/web/8082/logs/error.log
tags: ["IP-web-error"]
fields:
source: IP-web-error
- type: log
enabled: yes
paths:
- /DATA/web/8081/logs/catalina.out
- /DATA/web/8082/logs/catalina.out
tags: ["IP-web-catalina"]
fields:
source: IP-web-catalina
output.elasticsearch:
hosts: ["X.X.X.X:9200","X.X.X.X:9200","X.X.X.X:9200"]
indices:
- index: "web-catalina-%{+yyyy.MM.dd}"
when.contains:
fields.source: "IP-web-catalina"
- index: "web-error-%{+yyyy.MM.dd}"
when.contains:
fields.source: "IP-web-error"