filebeat配置文件
filebeat配置文件
https://www.elastic.co/guide/en/beats/filebeat/current/configuring-howto-filebeat.html
Filebeat
有两大部分,inputs
和 harvesters
,inputs
负责找文件(类似 find
命令)和管理 harvesters
,一个 harvester
则和一个文件一一对应,一行行读然后发送给 output
(类似tail -f
)。
ignore_older
路径下的历史文件可能很多,比如配置了按天分割,显然旧文件我们一般是不需要的。
通过 ignore_older
参数解决,意思是多久前的旧文件不扫描。
比如设置为 1h,表示文件时间在 1h 之前的日志都不会被 input 模块搜集,直到有新日志产生。
scan_frequency
扫描频率如何控制,通配设置复杂的话频繁扫文件也是很大的开销。
通过 scan_frequency
参数控制,表示多久扫描一次是否有新文件产生。
比如设置 10s(默认),一个新文件产生 10s 后会被发现,或者一个旧文件(上面 ignore_older
)新产生了一行日志 10s 才发现这个文件。
1 | filebeat.inputs: |
clean_* 配置簇
The clean_*
options are used to clean up the state entries in the registry file.
Filebeat 内部记录了很多文件状态,保存在 data/registry/filebeat/data.json。如果不清理的话这个文件会越来越大,影响效率。
1 | { |
clean_inactive
多久清理一次注册信息。默认值是0(不开启clean_*相关功能)
清理的文件信息需要保证这个文件已经不活跃了,所以这个值需要大于 ignore_older
+ scan_frequency
。
不然的话清理后这个文件又被发现,则会重头开始读取,这样就重了。
clean_removed
文件被删除后是否清理注册信息,默认开启。
需要和 close_removed
值保持一致
简单总结几个时间配置:
clean_inactive > ignore_older + scan_frequency > close_inactive
推荐配置:
1 | tail_files: false |
资源限制
在日志非常多机器负载高的时候加重机器负担,建议生产环境上需要对 Filebeat 资源进行限制:
max_procs
最多使用多少核,默认会全部使用,按机器情况限制为1-4核,不太会影响推送效率。
配置自动加载
1 | filebeat.config.inputs: |
具体的 input 配置文件放在 configs 文件夹下,例如:
1 | - type: log |