写在前面
在服务器上安装 Filebeat 采集业务日志时,发现启动后没有采到任何内容,排除掉不是 Filebeat 的配置错误后,发现其实是一个权限导致的问题
—update 2020.10.24—
经过一段时间的应用,Filebeat 直接用业务系统所属的用户部署、或者用 root 用户部署更简单一些,可以免除一些权限的问题
处理问题
业务系统部署在用户 biz 下,业务日志在 biz 的 home 路径中,这里假设为 /home/biz/logs/*.log
而 Filebeat 使用的是另一个用户 filebeat,安装路径为 /home/filebeat/filebeat/
在 /home 目录下 ll
查看时,发现用户 biz 的文件夹所属用户组为 biz,访问权限为 700,也就是说其他普通用户、用户组都没有权限,这里想解决问题,简单粗暴的做法可以直接把权限更改成 777,但会有一定的安全风险,所以打算从用户组的方式入手
以下步骤均以 root 用户进行操作
0. 新建用户组
groupadd biz_beats
1. 将用户添加到用户组
usermod -G biz_beats biz
usermod -G biz_beats filebeat
—update 2022.11.29—
命令最好使用 usermod -Ga
,多一个 -a
表示追加,这样不会导致完全变掉原先用户所属的组,比如 sudo
2. 修改 biz 用户 home 目录所属用户组
chown biz.biz_beats /home/biz/ -R
3. 修改 biz 用户 home 目录所属用户组权限
chmod 770 /home/biz/
注意:用户组权限至少为 750,filebeat 采集日志至少需要 rx