权限被拒绝zabbix

权限被拒绝zabbix

我试图从 httpd 监控日志但出现此错误:

[root@localhost httpd]# tail -f /var/log/zabbix/zabbix_agentd.log
  2446:20210304:102535.671 agent #0 started [main process]
  2451:20210304:102535.683 agent #5 started [active checks #1]
  2447:20210304:102535.688 agent #1 started [collector]
  2448:20210304:102535.688 agent #2 started [listener #1]
  2449:20210304:102535.692 agent #3 started [listener #2]
  2450:20210304:102535.693 agent #4 started [listener #3]
  2451:20210304:102837.516 active check "log[/var/log/httpd/error_log]" is not supported: Cannot obtain information for file "/var/log/httpd/error_log": [13] Permission denied

我如何获得许可

答案1

错误消息表明 zabbix 用户无法读取提到的文件“/var/log/httpd/error_log”。

请注意,仅使所有人都可读该文件是没有帮助的 - 您需要为用户“zabbix”提供一种遍历文件所在目录结构的方法 - 即目录的权限需要像这样调整:

chmod o+rx /var
chmod o+rx /var/log
chmod o+rx /var/log/httpd

这为“其​​他人”提供了读取+执行文件所在的目录结构的机会。

为了测试您是否具有读取文件的正确权限,您可以执行以下操作:

~# whoami
root
~# sudo -u zabbix /bin/bash
/root$ whoami
zabbix
/root$ cat /var/log/nginx/some-error.log
cat: /var/log/nginx/some-error.log: Permission denied

上面的例子表明权限不正确。

答案2

如果文件系统支持,您可以使用 ACL ,而不是使用chmod o+rx授予过宽权限的 ACL。例如,解决以下错误:

active check "vfs.fs.size[/home/git-data/repositories/+gitaly/PackObjectsCache,pused]" is not supported: Cannot obtain filesystem information: [13] Permission denied

在类似 Debian 的操作系统上你可以:

apt install acl
setfacl -m u:zabbix:x /home/git-data
setfacl -m u:zabbix:x /home/git-data/repositories
setfacl -m u:zabbix:x /home/git-data/repositories/+gitaly

要检查问题,请切换到用户zabbix并测试访问权限:

sudo -u zabbix /bin/bash
df /home/git-data/repositories/+gitaly/PackObjectsCache

相关内容