Nagios

NRPE 無法讀取輸出,但為什麼?

  • November 5, 2021

我對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.

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