在 CentOS 上调试 Filebeat,一般从「看日志、提级别、命令行测试、配置校验」几个方面入手。下面给你一套实用调试流程。
systemctl status filebeat
journalctl -u filebeat -f
或(老版本):
tail -f /var/log/filebeat/filebeat
filebeat -e -d "*" -c /etc/filebeat/filebeat.yml
说明:
-e:输出到 stderr(终端)-d "*":开启所有 debug-d "publish,registrar,input"
⚠️ 一定要先停掉 systemd 的 filebeat:
systemctl stop filebeat
编辑:
vim /etc/filebeat/filebeat.yml
logging:
level: debug
to_files: true
files:
path: /var/log/filebeat
name: filebeat
keepfiles: 7
重启:
systemctl restart filebeat
filebeat test config
filebeat test output
filebeat -e -d "input,harvester" -c /etc/filebeat/filebeat.yml
重点看:
Starting harvesterFile is inactiveNo files foundFilebeat 记录读取位置:
/var/lib/filebeat/registry/filebeat/log.json
如果“不采集旧日志”:
systemctl stop filebeat
rm -rf /var/lib/filebeat/registry
systemctl start filebeat
output.console:
pretty: true
运行:
filebeat -e -c /etc/filebeat/filebeat.yml
filebeat test output
如果日志读不到:
getenforce
临时关闭:
setenforce 0
或添加策略:
semanage fcontext -a -t var_log_t "/your/log/path(/.*)?"
restorecon -Rv /your/log/path
systemctl stop filebeat
filebeat -e -d "input,harvester,publish" -c /etc/filebeat/filebeat.yml
| 目的 | 命令 |
|---|---|
| 看状态 | systemctl status filebeat |
| 看日志 | journalctl -u filebeat -f |
| Debug | filebeat -e -d "*" |
| 校验配置 | filebeat test config |
| 测试输出 | filebeat test output |
| 清 registry | rm -rf /var/lib/filebeat/registry |
如果你愿意,可以把:
filebeat.yml发出来,我可以帮你精准定位问题。