NRPE 從命令列工作; Nagios 的“命令列參數不正確”

NRPE 從命令列工作; Nagios 的“命令列參數不正確”

我正在嘗試使用一個基本範例來設定 NRPE,作為部署它的第一步。為簡單起見,我在本地運行 NRPE 和 Nagios。 NRPE 和 Nagios 似乎都可以工作,但使用 Nagios 中的 check_nrpe 卻神秘地失敗了。編輯:我正在使用 Nagios 4.1.1 版本和 NRPE 2.15 版本。

我認為 NRPE 正在工作,因為我可以手動運行 check_nrpe:

/s/l/n/nagios_instance ❯❯❯ libexec/check_nrpe -H 127.0.0.1 -p 5667 -c check_total_procs      ⏎ 
PROCS CRITICAL: 536 processes | procs=536;150;200;0;

我認為 Nagios 正在工作(並提供正確的參數),因為我已經用 python 編寫了這個簡單的檢查,名為 check_hello_world.py 的檔案位於 libexec 目錄中:

#!/usr/bin/env python

import sys
print str(sys.argv)
raise SystemExit, 2

我的 nagios 設定的相關行如下所示:

define host {
    use                             linux-server
    host_name                       yourhost
    alias                           My first Apache server
    address                         127.0.0.1
}

define command {
    command_name check_procs_nrpe
    command_line $USER1$/check_hello_world.py –H "$HOSTADDRESS$" -p 5667 -c "check_total_procs"
    #command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -p 5667 -c "check_total_procs"
}


define service {
    use                             generic-service
    host_name                       yourhost
    service_description             Check using the hello world plugin
    check_command                   check_procs_nrpe
    }

如您所見,我使用兩個命令之一定義 check_procs_nrpe 命令,即簡單的 python 腳本或 nrpe 命令來檢查從命令列運行的進程。當我使用 python 腳本時,幾分鐘內我收到一封包含文字的電子郵件:

Additional Info:

[/spare/local/nagios/nagios_instance/libexec/check_hello_world.py, –H, 127.0.0.1, -p, 5667, -c, check_total_procs]

這似乎表明 Nagios 工作正常,觸發警報、發送電子郵件並正確解決參數。當我更改命令以使用 check_nrpe 並重新運行 Nagios 時,我收到一封電子郵件,其中包含以下文字:

Additional Info:

Incorrect command line arguments supplied

我真的不知道下一步該去哪裡。我在這個機器上沒有 root 權限,因此無法輕鬆地重新配置 rsyslog 來嘗試取得日誌記錄資訊。很高興根據要求提供更多資訊。有任何想法嗎?

答案1

總之,問題在於「-H」中的破折號其實不是破折號。這是一個破折號。如果你仔細查找的話,你實際上可以在上面的文字中清楚地看到它。不幸的是,Source Code Pro(我在終端中使用的字體,因此也在 vim 中使用)並沒有真正區分破折號和短破折號。我重新提出了一個與此相關的問題,同時我正在尋找一種新字體(並將破折號區分添加到我的標準清單中)。

相關內容