1. 程式人生 > >Zabbix中自定義Key執行時權限不夠

Zabbix中自定義Key執行時權限不夠

外網 work 可執行 dir 51cto 命令 zabbix用戶 測試 con

前言

平臺上有一應用程序需要調用百度的某個接口,需要連接外網,所以編寫了腳本來對百度外網的連通性進行測試。但在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執行時權限不夠