环境:
Centos 7
Zabbix_server 4.0.19
Zabbix_agent 4.0.19
通过nvdia-smi获取显卡运行状态
问题现象:
由于server端无法直接访问agent,所以采用了active模式,server端能获取到agent上报的自带项的值,自定义调用nvidia-smi的项无法获取到值,但在agent端执行zabbix_agent -t “userPara” 能够获取到值
排查思路:
抓包看到agent有向server提交userPara的值,但值为空,百度后想到有可能是selinux引发的权限问题,遂执行setenforce 0,再次查看server已获取到值,确定问题由selinux引起。
解决方法:
查看selinux拦截日志/var/log/message,未发现明确信息,查看audit日志/var/log/audit/audit.log,有deny zabbix_agent_t 字样,进行如下操作:
- 生成自定义模块
grep zabbix_agent_t /var/log/audit/audit.log | audit2allow -M nvidia-smi
- 加载该模块
semodule -i zabbix_server_custom.pp