Nagios
NRPE 無法讀取輸出,但為什麼?
我對NRPE有這個問題,到目前為止我在網上找到的所有東西似乎都指向我已經嘗試過的東西。
# /usr/local/nagios/plugins/check_nrpe -H nrpeclient
給
NRPE v2.12
正如預期的那樣。
手動執行命令(如“nrpeclient”上的 nrpe.cfg 中所定義,給出預期的響應
nrpe.cfg:
command[check_openmanage]=/usr/lib/nagios/plugins/additional/check_openmanage -s -e -b ctrl_driver=0 bat_charge "Expected response"
但是,如果我嘗試從 Nagios 伺服器執行命令,我會得到以下資訊:
# /usr/local/nagios/plugins/check_nrpe -H comxps -c check_openmanage NRPE: Unable to read output
誰能想到我可能在其他地方犯了這個錯誤?我在其他多台伺服器上做了同樣的事情,沒有問題。我能想到的唯一區別是這個盒子是基於 RHEL 5 的,而其他盒子是基於 RHEL 4 的。
當人們遇到這個問題時,我測試過的上面那兩個位似乎是大多數人的建議。
我應該提到,當我重新啟動時,我在日誌中收到了一個奇怪的錯誤
nrpe
:nrpe[14534]: Unable to open config file '/usr/local/nagios/etc/nrpe.cfg' for reading nrpe[14534]: Continuing with errors... nrpe[14535]: Starting up daemon nrpe[14535]: Warning: Daemon is configured to accept command arguments from clients! nrpe[14535]: Listening for connections on port 5666 nrpe[14535]: Allowing connections from: bodbck,combck,nam-bck
儘管如此,它顯然是在讀取該
/usr/local/nagios/etc/nrpe.cfg
文件以進一步了解它所談論的內容..
你有權利問題。
將命令更改為:
command[check_openmanage]=sudo /usr/lib/nagios/plugins/additional/check_openmanage -s -e -b ctrl_driver=0 bat_charge
(添加須藤)
然後,將 nagios-user 添加到 sudoers:
nagios ALL=(ALL) NOPASSWD:/usr/lib/nagios/plugins/additional/check_openmanage
或者你可以只是 chmod 文件……這也有效。
如果您使用的是 CentOS、Red Hat、Scientific 或 Fedora,請確保
Defaults requiretty
在 sudoers 文件中禁用。
簡短的回答:如果您使用 Bash 外掛,請確保您有一個說明應該使用哪個解釋器的shebang :
#!/bin/bash
我自己編寫的 Nagios 外掛也遇到了同樣的問題。該腳本在本地啟動時按預期執行,即使
nagios
使用以下語句以使用者身份執行:$ sudo sudo -s -u nagios $ /path/to/my/plugin.sh STATUS: OK
但是從 Nagios3 伺服器使用 NRPE 遠端啟動是不成功的:
$ /usr/lib/nagios/plugins/check_nrpe -H my-nagios-client -c my_plugin NRPE: Unable to read output
我終於通過在我的腳本中添加一個shebang解決了這個問題,因為通過 NRPE 執行腳本似乎沒有使用與通過
sudo sudo -s -u nagios
.