下面按常见排查顺序给你一套在 Debian 上调试 Filebeat 的实用方法,从“先看日志”到“抓数据”。
systemctl status filebeat
没运行就启动:
systemctl start filebeat
开机自启:
systemctl enable filebeat
Debian 默认日志在:
/var/log/filebeat/filebeat
实时查看:
journalctl -u filebeat -f
或
tail -f /var/log/filebeat/filebeat
常见错误:
No outputs are definedconnection refusedpermission denied(文件读不了)filebeat test config
只输出 Config OK 才行。
filebeat test output
例如 Elasticsearch 会显示:
filebeat -e -d "*" -c /etc/filebeat/filebeat.yml
说明:
-e:日志输出到终端-d "*":打开所有调试Ctrl+C 停止适合排查为什么没数据
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
常见错误:
enabled: false测试文件是否可读:
sudo -u filebeat cat /var/log/nginx/access.log
Filebeat 记录采集位置:
/var/lib/filebeat/registry
如果“文件改了但不采集”或“重复采集”:
systemctl stop filebeat
rm -rf /var/lib/filebeat/registry
systemctl start filebeat
⚠️ 会重新从头采集
GET filebeat-*/_search
{
"size": 1,
"sort": [{ "@timestamp": "desc" }]
}
看 Logstash 日志:
/var/log/logstash/logstash-plain.log
logging.level: debug
logging.to_files: true
logging.files:
path: /var/log/filebeat
name: filebeat
| 问题 | 原因 |
|---|---|
| 没数据 | paths 错 / enabled false |
| 权限拒绝 | 文件属主不对 |
| ES 收不到 | output 配错 |
| 重复日志 | registry 损坏 |
| CPU 高 | scan_frequency 太小 |
如果你愿意,可以把:
filebeat.yml发出来,我可以直接帮你定位问题。