1. filebeat介绍
Filebeat是用于转发和集中日志数据的轻量级传送工具。Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash进行索引。
Filebeat的工作方式如下:启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到为Filebeat配置的输出。
工作流程下:
2. Docker部署filebeat
拉取filebeat镜像:
sudo docker pull elastic/filebeat:7.6.0
新建filebeat.yml文件,便于映射
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
tags: ["filebeat-test"]
tail_files: true #每次最后一行
multiline.pattern: '^\[' #分割符
multiline.negate: true
multiline.match: after #最后合并
- type: log
paths:
- "/var/log/apache2/*"
fields:
apache: true
fields_under_root: true
setup.kibana.host: "192.168.231.132:5601"
setup.kibana.username: 'elastic'
setup.kibana.password: 'xujingkun'
output.elasticsearch:
hosts: '${ELASTICSEARCH_HOSTS:192.168.231.132:9200}'
username: '${ELASTICSEARCH_USERNAME:elastic}'
password: '${ELASTICSEARCH_PASSWORD:xujingkun}'
输入命令,构建容器
docker run --name filebeat01 -d --network=mynetwork --ip 172.18.0.6 -v $PWD/var/log/:/var/log/ -v $PWD/data/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml elastic/filebeat:7.6.0
容器构建成功后,可以在/var/log/目录下,创建日志文件**.log,写入内容
保存文件后,刷新kibana,可以看到日志已经被采集上来
3. FAQ&遇到的问题