Filebeat的Modules模块
一、简介
Filebeat采集日志文件除了可以自定义配置Input采集器、Processor处理器、输出目的地等,还提供大量的模板配置Modules来快速地配置采集通用格式的日志文件。例如Nginx标准格式的日志文件。
Filebeat的Module简化了常见日志格式
的收集、解析和可视化。
一个典型的Module(例如,对于Nginx日志的Module)由一个或多个Fileset组成(对于Nginx,则是access
和error
日志文件)。Fileset包含以下内容:
- Filebeat输入配置:其中包含查找日志文件的默认路径,而这些默认路径取决于操作系统。Filebeat配置还负责在需要时将多行事件拼接在一起。
- Elasticsearch Ingest节点Pipeline定义:用于解析日志行。
- 字段定义:用于为每个字段配置Elasticsearch的正确类型。它们还包含每个字段的简短描述。
- Kibana表盘样本:可以用来可视化日志文件。
Filebeat支持的Modules
Filebeat模块需要Elasticsearch 5.2或更高版本。
二、Module配置
1. 加载Modules
在/etc/filebeat/filebeat.yml
中配置加载Modules
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: true
reload.period: 10s
指定特殊的filebeat全局配置文件来配置加载Modules
filebeat -c /etc/filebeat/filebeat-kong.yaml modules enable nginx
2. 查看所有Module
filebeat modules list
3. 启用Module
Filebeat的Modules配置文件通常在/etc/filebeat/modules.d
下
Filebeat提供了几种启用模块的不同方法:
命令行启用module
filebeat modules enable module名
在配置文件
/etc/filebeat/filebeat.yml
中启用Modulesfilebeat.modules: - module: nginx - module: mysql - module: system
在运行时使用Modules
filebeat --modules nginx,mysql,system
4. 配置Module变量参数
Filebeat的Modules配置文件通常在/etc/filebeat/modules.d
下。当module不启用时,自带的Module配置文件是以.disabled
后缀的。启用后,会自动去掉.disabled
后缀,此时可以修改module的默认变量参数
在运行时配置Module变量参数
filebeat -e --modules 模块名 -M "nginx.access.var.paths=[/var/log/nginx/access.log*]"
在Modules的配置文件中配置变量参数
以Nginx模块的配置文件为例
/etc/filebeat/modules.d/nginx.yml
- module: nginx # 设置Nginx访问日志fileset access: input: close_eof: true enabled: true # 日志文件路径。如果为空,默认根据操作系统版本自行选择日志文件路径. var.paths: [ "/var/log/nginx/access.log", "/var/log/nginx/admin_access.log" ] # 设置Nginx错误日志fileset error: enabled: true # 日志文件路径。如果为空,默认根据操作系统版本自行选择日志文件路径. var.paths: ["/var/log/nginx/error.log"]
注意:例如想要给Nginx模块的fileset添加一个参数close_eof: true
,可使用以下参数
配置文件
- module: nginx access: input: close_eof: true
命令行
filebeat -e --modules nginx -M "*.*.input.close_eof=true" # 或者 filebeat -e --modules nginx -M "nginx.*.input.close_eof=true" # 或者 filebeat -e --modules nginx -M "nginx.access.input.close_eof=true"