一、准备工作:安装Filebeat
在自定义配置前,需确保CentOS系统已安装Filebeat。若未安装,可通过以下命令使用YUM包管理器安装:
sudo yum install filebeat
二、定位并编辑主配置文件
Filebeat的主配置文件默认位于/etc/filebeat/filebeat.yml
。使用文本编辑器(如vi
或nano
)打开该文件:
sudo vi /etc/filebeat/filebeat.yml
三、自定义核心配置项
filebeat.inputs
部分定义了Filebeat需要监控的日志文件或目录。通过修改此部分,可指定日志路径、类型及附加字段。常见示例如下:
.log
文件:filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/myapp/*.log
- /var/log/syslog
fields:
app: myapp
environment: production
注:
enabled: true
表示启用该输入;fields
用于添加自定义字段(如应用名称、环境),便于后续索引区分。
output
部分指定Filebeat发送日志的目标(如Elasticsearch、Logstash)。以下是常见输出配置:
output.elasticsearch:
hosts: ["localhost:9200"] # Elasticsearch地址(多节点用逗号分隔)
index: "filebeat-%{+yyyy.MM.dd}" # 索引名称格式(按天分割)
output.logstash:
hosts: ["localhost:5044"]
注:若Elasticsearch需要认证,需添加
username
和password
字段(如username: "elastic"
)。
processors
部分用于处理日志数据(如过滤、添加字段、删除敏感信息)。常见处理器示例如下:
processors:
- add_fields:
target: "" # 添加到根对象
fields:
processed: true
processors:
- remove_fields:
fields: ["message"]
ignore_missing: true
when:
contains:
message: "DEBUG" # 删除包含"DEBUG"的日志行
注:处理器按顺序执行,可根据需求组合多个处理器(如先过滤再添加字段)。
setup.template.settings
部分用于定义Elasticsearch索引模板的设置(如分片数量、压缩方式),提升索引性能:
setup.template.settings:
index.number_of_shards: 3 # 分片数量(根据数据量调整)
index.codec: best_compression # 使用最佳压缩算法
index.refresh_interval: 30s # 索引刷新间隔(降低刷新频率可提高写入性能)
四、保存并重启Filebeat
编辑完成后,按Esc
键退出编辑器,输入:wq
保存并退出。然后重启Filebeat服务以应用配置:
sudo systemctl restart filebeat
五、验证配置有效性
sudo filebeat test config
若输出filebeat configuration test passed
,则表示配置正确。sudo systemctl status filebeat
若状态显示active (running)
,则服务已启动。sudo tail -f /var/log/filebeat/filebeat
六、高级自定义:创建自定义模块(可选)
若需复用特定日志的处理配置(如Nginx、MySQL日志),可创建自定义模块:
sudo mkdir -p /etc/filebeat/modules.d/custom_module
custom_module.yml
):filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
fields:
module: nginx
service: web_server
processors:
- add_fields:
targets: ["message"]
fields:
log_type: access
output.elasticsearch:
hosts: ["localhost:9200"]
index: "custom_nginx-%{+yyyy.MM.dd}"
filebeat.yml
,添加模块配置:filebeat.modules:
- module: custom_module
enabled: true
sudo systemctl restart filebeat
通过以上步骤,可完成CentOS中Filebeat的自定义配置,满足不同场景的日志收集需求。