如何配置Filebeat的日志输出
导读:配置 Filebeat 的日志输出 一 概念与位置 Filebeat 的日志输出分为两类: 事件输出(outputs):把采集到的日志事件发送到外部系统,如 Elasticsearch、Logstash、Kafka、Redis、Cons...
配置 Filebeat 的日志输出
一 概念与位置
- Filebeat 的日志输出分为两类:
- 事件输出(outputs):把采集到的日志事件发送到外部系统,如 Elasticsearch、Logstash、Kafka、Redis、Console 等。
- 自身运行日志(logging):记录 Filebeat 内部的运行状态与调试信息,可输出到 文件、stderr、syslog、Windows Event Log。
- 配置文件通常为 filebeat.yml,常见路径为 /etc/filebeat/filebeat.yml(Linux 发行版)。修改后可用
filebeat test config -c /path/filebeat.yml校验语法,再用服务管理命令重启生效。
二 配置事件输出到 Elasticsearch 或 Logstash
- 输出到 Elasticsearch(示例含索引命名与认证占位):
output.elasticsearch:
hosts: ["http://es-host:9200"]
index: "filebeat-%{
[agent.version]}
-%{
+yyyy.MM.dd}
"
# 如启用安全认证,按需添加:
# username: "elastic"
# password: "your_password"
# ssl.enabled: true
# ssl.verification_mode: certificate
# ssl.certificate_authorities: ["/path/ca.crt"]
- 输出到 Logstash(示例含可选 TLS):
output.logstash:
hosts: ["logstash-host:5044"]
# ssl.enabled: true
# ssl.certificate_authorities: ["/path/ca.crt"]
# ssl.certificate: "/path/client.crt"
# ssl.key: "/path/client.key"
- 其他可选输出(简要示例):
# 控制台打印(便于本地调试)
output.console:
pretty: true
# Kafka
# output.kafka:
# hosts: ["kafka1:9092","kafka2:9092"]
# topic: "filebeat"
# codec.json: true
# Redis
# output.redis:
# hosts: ["redis-host:6379"]
# key: "filebeat"
# password: "your_password"
# db: 0
- 提示:生产环境通常将 Filebeat 先输出到 Logstash 做处理与增强,再写入 Elasticsearch。
三 配置 Filebeat 自身运行日志(logging)
- 常用参数与默认值(级别、目标、轮转):
- logging.level:日志级别,支持 error / warning / info / debug(默认 info)。
- logging.to_files / to_stderr / to_syslog / to_eventlog:输出目的地开关(默认文件输出;未显式配置时,日志写入 /var/log/filebeat)。
- logging.files:文件日志轮转参数,包含 path(默认日志目录)、name(默认 filebeat)、rotateeverybytes(默认 10MB)、keepfiles(默认 7)、permissions(默认 0600)、interval(基于时间的轮转,如 1h/1d)、rotateonstartup(启动时是否轮转)。
- logging.json:设为 true 以 JSON 格式写入日志,便于结构化检索。
- logging.metrics.enabled / period:是否定期输出内部指标及周期(默认 true / 30s)。
- logging.selectors:按组件过滤调试日志(如 [“publish”];使用 [“*”] 开启全部)。
- 示例(文件轮转 + 控制台 + JSON 格式):
logging.level: info
logging.to_files: true
logging.to_stderr: true
logging.json: true
logging.files:
path: /var/log/filebeat
name: filebeat
rotateeverybytes: 10485760 # 10MB
keepfiles: 7
permissions: 0600
interval: 1h
rotateonstartup: true
logging.metrics.enabled: true
logging.metrics.period: 30s
# 仅调试发布链路
# logging.selectors: ["publish"]
- 命令行临时覆盖选择器:启动时使用 -d “publish” 开启指定组件的调试日志。
四 验证与常见问题
- 语法校验与服务管理:
- 校验:
filebeat test config -c /etc/filebeat/filebeat.yml - 查看服务状态:
sudo systemctl status filebeat - 实时查看自身日志:
sudo journalctl -u filebeat -f
- 校验:
- 常见要点:
- 若 logging.level 设为 error 且当前无错误,指定目录可能没有日志文件;这是正常现象。
- 文件轮转参数 keepfiles 的有效范围通常为 2–1024。
- 在 systemd 环境下,Filebeat 自身日志常由 journald 管理;如需落盘到文件,请确保 logging.to_files: true 并检查目录权限(常见路径 /var/log/filebeat)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何配置Filebeat的日志输出
本文地址: https://pptw.com/jishu/757796.html
