Nagios

自動 NRPE 檢查會產生警告,但在手動執行時有效

  • July 28, 2017

我正在使用 Nagios 監控幾台主機。當我使用在監視主機上執行的“正常”檢查(例如,check_http)時,這可以正常工作。但是,我在使用基於 NRPE 的檢查時遇到了麻煩,這些檢查是通過受監控主機上的 NRPE 服務執行的。

我已經在受監控主機的 NRPE 配置中聲明了我的自定義命令,例如

command[check_memory]=/usr/lib/nagios/plugins/check_memory -w 20% -c 10% -u G

然後我在監控主機的 Nagios 配置中創建了相應的 Nagios 命令:

define command {
   command_name my_check_nrpe
   command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTALIAS$' -c '$ARG1$'
}

define service {
 use                   my-service
 service_description   Free memory
 check_command         my_check_nrpe!check_memory
 check_interval        15
}

nagios當我使用使用者(服務在其下執行)在監視主機上手動執行這些檢查時,這些檢查工作正常nagios

nagios@monitor:~$ /usr/lib/nagios/plugins/check_nrpe -H 'my.target.host' -c 'check_memory'
MEMORY OK - 0G free | free=956080128b;419844915.2:;209922457.6:

但是,我不斷收到來自 Nagios 的有關該服務的電子郵件警告:

***** Nagios  *****

Notification Type: PROBLEM

Service: Free memory
Host: my.target.host
Address: XXX.XXX.XXX.XXX
State: WARNING

Date/Time: $

Additional Info:

$

我還沒有設法獲得有關警告的更多詳細資訊。監控主機上的 Nagios 日誌僅顯示已發送警告:

[1500623961] SERVICE NOTIFICATION: my-mailbox;my.target.host;Free memory;WARNING;notify-by-email;(null)
[1500627561] SERVICE NOTIFICATION: my-mailbox;my.target.host;Free memory;WARNING;notify-by-email;(null)

我還為 Nagios 啟動了最大調試輸出:

debug_level=-1
debug_verbosity=2

但是,/var/lib/nagios3/nagios.debug不包含任何感興趣的內容:

[1500630464.420189] [064.1] [pid=21171] Making callbacks (type 9)...
[1500630464.420243] [064.1] [pid=21171] Making callbacks (type 9)...
[1500630464.420308] [064.1] [pid=21171] Making callbacks (type 9)...
[1500630464.420389] [064.1] [pid=21171] Making callbacks (type 9)...
[1500630464.421086] [064.1] [pid=21171] Making callbacks (type 7)...
[1500630464.421767] [064.1] [pid=21174] Making callbacks (type 9)...

同樣,我在受監控的主機 ( debug=1) 上啟用了 NRPE 服務的調試輸出,但 NRPE 日誌只告訴我我的check_memory命令已成功添加。

我正在執行 NRPE 3.0.1-3 和 Nagios 3.5.1。

如何解決此問題或收集有關該問題的更多資訊?

事實證明,在監控伺服器上執行了一個重複的 Nagios 程序,該程序不受重新啟動服務的影響,因此繼續使用舊的、有缺陷的配置版本。雖然我們無法重建我們如何結束兩個 Nagios 程序,但殺死重複的程序解決了這個問題。

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