Debian 上自定义 Filebeat 配置的实操指南
一 准备与定位配置文件
- 安装 Filebeat(如尚未安装):执行 sudo apt update && sudo apt install filebeat。
- 主配置文件路径:/etc/filebeat/filebeat.yml。
- 修改前先备份:sudo cp /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.bak。
- 常用服务管理:启动/开机自启 sudo systemctl start|enable filebeat;查看状态 sudo systemctl status filebeat;实时日志 sudo journalctl -u filebeat -f。
二 编辑主配置文件
- 使用编辑器打开:sudo nano /etc/filebeat/filebeat.yml。
- 典型自定义项:
- 输入 inputs(示例收集系统日志):
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
- /var/log/syslog
ignore_older: 72h
- 输出 output(二选一或并存,示例为 Elasticsearch 直连):
output.elasticsearch:
hosts: [“localhost:9200”]
index: “filebeat-%{[agent.version]}-%{+yyyy.MM.dd}”
- 字段与标签(便于检索与分组):
fields:
environment: “production”
application: “myapp”
tags: [“web”, “debian”]
- 处理器 processors(示例添加静态字段):
processors:
- add_fields:
fields:
custom_field: “some_value”
- 日志级别(排错时临时提升):
logging.level: info
三 使用模块与多行日志
- 启用模块(以 system 模块为例):sudo filebeat modules enable system;需要初始化索引模板/仪表盘时可执行 sudo filebeat setup(首次接入或变更索引模板时使用)。
- 多行日志(如 Java 堆栈):
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/myapp/*.log
multiline.pattern: ‘^[’
multiline.negate: true
multiline.match: after
multiline.max_lines: 500
multiline.timeout: 5s
四 校验与生效
- 语法与配置校验:执行 sudo filebeat test config -c /etc/filebeat/filebeat.yml;如需同时校验输出连通性,可执行 sudo filebeat test output。
- 使配置生效:重启服务 sudo systemctl restart filebeat;查看运行状态与日志 sudo systemctl status filebeat、sudo journalctl -u filebeat -f。
- 目标端验证:确认 Elasticsearch/Logstash 已收到数据(索引是否存在、文档计数是否增长),或在 Kibana 中查看对应索引与仪表盘。
五 常见场景示例
- 收集 Redis 日志:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/redis/redis-server.log
- /var/log/redis/redis-error.log
output.elasticsearch:
hosts: [“localhost:9200”]
index: “redis-logs-%{+yyyy.MM.dd}”
- 排错时可临时设置 logging.level: debug。