前言
平台上有一应用程序需要调用百度的某个接口, 需要连接外网, 所以编写了脚本来对百度外网的连通性进行测试但在 server 端检测时出现权限不够的问题
一. Zabbix-agent 配置自定义 key
- ~]#vim / etc / zabbix / zabbix - agent.conf UserParameter = baidu_network_status[ * ],
- /root/bin / baidu.sh $1
脚本放置目录为 / root/bin 下
需要重启 zabbix-agent 服务
~]# service zabbix-agent restart
二. 在 Zabbix-Server 端测试
三. 问题排查
1. agent 端查看脚本使用有执行权限
我们知道脚本的执行者是 zabbix, 而执行权限是所有人都可执行直接执行脚本是可以执行的, 那么我们切换用户身份执行以下
2. agent 端切换用户身份执行
果真切换用户身份无法执行命令, 这时我才猛然醒悟, zabbix 用户是无法进入到 root 用户的家目录的, 由下图可以看出,/root 目录的权限是 550,zabbix 无法进入, 更不用提执行命令了
四. 解决问题
将要运行的脚本放在 zabbix 用户可以执行的目录之下为了统一规范, 将所有脚本放置在 / etc/zabbix/scripts 目录下
1. 常见脚本目录
- ~]# mkdir -pv /etc/zabbix/scripts
- ~]# cp /root/bin/baidu.sh /etc/zabbix/scripts
2. 修改 zabbix-agent 配置文件
3. 重启 zabbix-agent
~]# service zabbix-agent restart
五. server 端测试 key
可以看到此时能够获取值了
Zabbix 中自定义 Key 执行时权限不够
来源: http://www.bubuko.com/infodetail-2492070.html