自定义Filebeat日志收集规则主要通过修改配置文件filebeat.yml实现,以下是关键配置项及示例:
指定日志路径
在filebeat.inputs中通过paths定义需采集的日志文件路径,支持通配符(如/var/log/*.log)。
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
过滤日志内容
include_lines和exclude_lines配置。include_lines: ['^ERROR', '^WARN']
exclude_lines: ['^DEBUG']
multiline配置合并多行日志(如Java堆栈跟踪)。multiline:
pattern: '^\['
negate: true
match: after
添加自定义字段
使用fields或add_fields处理器向日志事件添加元数据。
processors:
- add_fields:
fields:
environment: production
app_id: myapp
日志解析与处理
decode_json_fields处理器提取JSON字段。processors:
- decode_json_fields:
fields: ["message"]
target: ""
dissect处理器按正则表达式解析非JSON日志。processors:
- dissect:
tokenizer: '%{timestamp} %{loglevel} %{message}'
field: "message"
输出配置
指定日志发送目标(如Elasticsearch、Logstash),并设置索引名称等参数。
output.elasticsearch:
hosts: ["localhost:9200"]
index: "custom-logs-%{+yyyy.MM.dd}"
高级配置
setup.template配置索引分片、压缩等参数。ignore_older、close_older等参数控制文件保留和关闭策略。生效步骤:
修改配置后,重启Filebeat服务使规则生效,并通过日志或监控命令验证配置正确性。
参考来源: