我正在嘗試使用一個基本範例來設定 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 中使用)並沒有真正區分破折號和短破折號。我重新提出了一個與此相關的問題,同時我正在尋找一種新字體(並將破折號區分添加到我的標準清單中)。