在 CentOS 上配置 Filebeat 权限,通常涉及 文件读取权限、系统用户权限、systemd 权限 等方面。下面按常见场景说明。
在 CentOS 上通过 RPM 安装 Filebeat 后:
filebeatfilebeat查看用户:
id filebeat
假设你要采集:
/var/log/app/app.log
确保:
示例:
chown root:filebeat /var/log/app/app.log
chmod 640 /var/log/app/app.log
chmod 755 /var/log/app
说明:
640= 属主可读写,属组可读
filebeat 在 filebeat 组中即可读取
例如 nginx 日志:
/var/log/nginx/access.log
通常已是:
root:adm
640
解决方式(任选其一):
usermod -aG adm filebeat
重启 filebeat:
systemctl restart filebeat
chmod 644 /var/log/nginx/access.log
如果你只是测试或内网环境:
编辑:
/etc/systemd/system/filebeat.service
或修改:
/usr/lib/systemd/system/filebeat.service
找到:
User=filebeat
Group=filebeat
改为:
User=root
Group=root
然后:
systemctl daemon-reload
systemctl restart filebeat
⚠️ 生产环境不建议
getenforce
如果是 Enforcing,Filebeat 可能读不了日志。
ausearch -m avc -ts recent
setenforce 0
给日志目录打标签:
semanage fcontext -a -t var_log_t '/var/log/app(/.*)?'
restorecon -Rv /var/log/app
或允许 filebeat 读取:
setsebool -P filebeat_can_read_logs on
不要手动乱改:
/var/lib/filebeat
/etc/filebeat
/var/log/filebeat
应保持:
filebeat:filebeat
修复命令:
chown -R filebeat:filebeat /var/lib/filebeat /etc/filebeat /var/log/filebeat
# 测试配置
filebeat test config
# 测试输出
filebeat test output
# 查看日志
journalctl -u filebeat -f
如果你能具体说:
我可以直接给你精确权限配置方案。