Nagios
權限被拒絕通過 NRPE 執行 check_vmfs.sh
我們已經有一個 nagios 監控系統正在執行,我在使用以下外掛監控我們的 vmware 數據儲存之後, 我安裝了 vmware cli 並進行了測試,沒有出現任何問題:
[root@nrpe-relay ~]# /usr/lib64/nagios/plugins/check_vmfs.sh -C /usr/lib64/nagios/plugins/vmware_esxi_conf.txt -S 192.168.20.241 -V /vmfs/volumes/LocalSlot45S6 -w 75 -c 90 -u Gb WARNING - /vmfs/volumes/LocalSlot45S6 - total: 931.25 Gb - used: 800.95 Gb (86%)- free: 130.29 Gb (14%) | /vmfs/volumes/LocalSlot45S6=800.95Gb;698.43;838.12;;931.25 [root@nrpe-relay ~]# ps auxww|grep nrpe nagios 1463 0.0 0.1 41468 1364 ? Ss 21:24 0:00 nrpe -c /etc/nagios/nrpe.cfg -d root 2261 0.0 0.0 103304 876 pts/0 S+ 22:00 0:00 grep nrpe
但是,當命令遠端執行時,我沒有得到相同的值:
[root@nagios nagios]# /usr/lib64/nagios/plugins/check_nrpe -H <hostname> -c 'check_datastore_LocalSlot45S6' CRITICAL -
這就是我的 cfg 文件中的內容
command[check_datastore_LocalSlot45S6]=/usr/lib64/nagios/plugins/check_vmfs.sh -C /usr/lib64/nagios/plugins/vmware_esxi_conf.txt -S 192.168.20.241 -V /vmfs/volumes/LocalSlot45S6 -w 75 -c 90 -u Gb
和我的伺服器配置文件:
define service{ use generic-service host_name <hostname> service_description datastore-LocalSlot45S6 check_command check_nrpe!check_datastore_LocalSlot45S6 }
這是我可以從 /var/log/message 中看到的:
nagios nagios: EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;<hostname>;datastore-LocalSlot1-2S3;1441798845
問題:有人知道問題出在哪裡嗎?或者我該如何追查這個問題?
您的問題是 NRPE 守護程序以 user 身份執行
nagios
,並且該使用者無權執行相關命令。您要麼必須打開權限以便使用者可以執行它(順便說一下,您的最後一條評論表明您沒有完全注意輸出;它是
/usr/lib64/nagios/plugins/check_vmfs.err
權限被拒絕的文件,而不是check_vmfs.sh
),或者修改NRPEd 使用無密碼 sudo,例如command[check_datastore_LocalSlot45S6]=sudo /usr/lib64/nagios/plugins/check_vmfs.sh -C /usr/lib64/nagios/plugins/vmware_esxi_conf.txt -S 192.168.20.241 -V /vmfs/volumes/LocalSlot45S6 -w 75 -c 90 -u Gb
加上一個
sudoers
類似的條目nagios ALL=(root) NOPASSWD: /usr/lib64/nagios/plugins/check_vmfs.sh
如果你採取後一種路線,你還需要有
Defaults !requiretty
在您的
sudoers
文件中,如果它不存在的話。