自定义Filebeat日志处理流程可通过以下方式实现:
修改配置文件
在/etc/filebeat/filebeat.yml中,通过processors字段添加处理器(如decode_json_fields解析JSON、add_fields添加自定义字段),或通过input配置自定义日志路径、格式等。
filebeat.inputs:
- type: log
paths: ["/var/log/custom/*.log"]
processors:
- decode_json_fields:
fields: ["message"]
target: ""
- add_fields:
fields: {custom_field: "value"}
使用模块化配置
启用Filebeat内置模块(如nginx、system),通过模块预设的处理器处理特定日志格式,避免重复开发。
filebeat.modules:
- module: nginx
access:
enabled: true
var.paths: ["/var/log/nginx/access.log"]
自定义输入插件(高级)
若需处理特殊数据源,可编写Go语言插件,实现input接口,注册自定义输入类型(如HTTP、TCP等),并在配置中引用。
/usr/share/filebeat/plugin/目录。filebeat.yml中通过type指定自定义插件类型。集成外部处理器
通过output配置将日志发送至Logstash,利用Logstash的丰富处理器(如grok、mutate)进行复杂解析,再存入Elasticsearch。
output.logstash:
hosts: ["localhost:5044"]
注意:修改配置后需重启Filebeat服务生效,可通过sudo systemctl restart filebeat操作。建议优先使用内置模块或处理器,减少自定义开发复杂度,特殊场景再考虑插件开发。