利用 Filebeat 收集日志
Filebeat 是用于转发和集中日志数据的轻量级传送程序。作为服务器上的代理安装,Filebeat监视您指定 的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或Logstash进行索引。
Logstash 也可以直接收集日志,但需要安装JDK并且会占用至少500M 以上的内存
生产一般使用filebeat代替logstash, 基于go开发,部署方便,重要的是只需要10M多内存,比较节约资源.
filebeat 支持从日志文件,Syslog,Redis,Docker,TCP,UDP,标准输入等读取数据,对数据做简单处理,再输 出至Elasticsearch,logstash,Redis,Kafka等
Filebeat的工作方式如下:
-
启动Filebeat时,它将启动一个或多个输入源,这些输入将在为日志数据指定的位置中查找。
-
对于Filebeat所找到的每个日志,Filebeat都会启动收集器harvester进程。
-
每个收集器harvester都读取一个日志以获取新内容,并将新日志数据发送到libbeat
-
libbeat会汇总事件并将汇总的数据发送到为Filebeat配置的输出。
Filebeat 官方说明

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html
https://www.elastic.co/guide/en/beats/filebeat/current/configuring-howto-filebeat.html
输入和输入官方说明
https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html
https://www.elastic.co/guide/en/beats/filebeat/current/configuring-output.html
注意: Filebeat 支持多个输入,但不支持同时有多个输出,如果多输出,会报错如下
Exiting: error unpacking config data: more than one namespace configured
accessing 'output' (source:'/etc/filebeat/stdout_file.yml')
安装 Filebeat 和配置说明
下载链接
安装 Filebeat
#新版下载
[root@elk-web1 ~]#wget
https://mirrors.tuna.tsinghua.edu.cn/elasticstack/8.x/apt/pool/main/f/filebeat/filebeat-8.6.1-amd64.deb
#旧版下载
[root@elk-web1 ~]#wget
https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/apt/pool/main/f/filebeat/filebeat-7.6.2-amd64.deb
#安装
[root@elk-web1 ~]#dpkg -i filebeat-7.6.2-amd64.deb
#默认没有启动
[root@elk-web1 ~]#systemctl enable --now filebeat
#filebeat以root身份启动
[root@elk-web1 ~]#systemctl start filebeatps aux|grep filebeat
#先停止服务,方便后续调试
[root@elk-web1 ~]#systemctl stop filebeat
Filebeat 配置
配置文件官方说明
https://www.elastic.co/guide/en/beats/filebeat/current/configuring-howto-filebeat.html
https://www.elastic.co/guide/en/beats/filebeat/8.3/configuration-general-options.html
Filebeat的 默认配置文件是/etc/filebeat/filebeat.yml,遵循YAML语法。常见配置包括如下
-
Filebeat
-
Output
-
Shipper
-
Logging(可选)
-
Run Options(可选)
filebeat.yml的格式说明
input_type: log
#指定输入类型
paths
#支持基本的正则,所有golang glob都支持,支持/var/log/*/*.log
encoding
#plain, latin1, utf-8, utf-16be-bom, utf-16be, utf-16le, big5, gb18030, gbk, hz-gb-2312,euc-kr, euc-jp, iso-2022-jp, shift-jis, a