Linux

檢查NFS時如何調試Nagios“NRPE:無法讀取輸出”?

  • June 24, 2016

我有一個有效的 Nagios 設置,例如,出於安全原因,我通過 NRPE 守護程序監視磁碟使用情況,而無需通過 NRPE 解析參數。所以我知道NRPE有效。

現在我想使用check_mountpoints外掛檢查 NFS,但我得到了

NRPE: Unable to read output 

在 Nagios Monitor 主機上,我已設置

define command {
 command_name check_mountpoints
 command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c check_mountpoints 
}

define service {
 use                     generic-service
 name                    check_mountpoints
 host_name               example.com
 service_description     Check_mountpoints for nfs cifs davfs
 check_command           check_nrpe!check_mountpoints
 contact_groups          linux-admins
}

在遠端主機上我設置了

command[check_mountpoints]=/usr/lib/nagios/plugins/check_mountpoints.sh /nas1/home

為了驗證是否給出了正確的參數,命令輸出這個

[root@nas ~]# /usr/lib/nagios/plugins/check_mountpoints.sh /nas1/home
OK: all mounts were found ( /nas1/home)
[root@nas ~]# 

Nagios 監控主機和遠端主機都執行著一個正常工作的 NRPE 守護程序。

問題

我該如何調試這樣的東西?

根據我的經驗,此錯誤是由於缺少權限引起的。您嘗試以 root 身份執行 nrpe 客戶端腳本。嘗試以執行 nrpe 守護程序的使用者身份執行它。這應該給你一個關於原因的提示。如果這沒有幫助,請嘗試執行

strace usr/lib/nagios/plugins/check_mountpoints.sh /nas1/home

作為 nrpe 使用者。

我有同樣的問題,很多時候是許可。設置權限或使用 sudoers 解決它。

嘗試使用 nrpe/nagios 使用者 (su - nrpe) 登錄並嘗試執行該命令。

其他可能是 selinux,嘗試禁用是測試:

echo 0 > /selinux/enforce

引用自:https://serverfault.com/questions/387383