2012-10-05 62 views
1

我是Nagios的新手,我一直試圖讓Nagios處理一些簡單的check_by_ssh命令。我在那裏,我能夠成功地在命令行中,像這樣運行該命令的點:在Nagios中使用check_by_ssh產生奇怪行爲(和遠程執行失敗)

#/usr/local/nagios/libexec/check_by_ssh -H HERP.DERP.COM -C "/home/derrp/bin/... 
check_disk -w 50 -c 10 -A" 

呈現

DISK OK - free space: blah blah blah 

所以,這是很好的;它適用於o.k.從命令行。然而,當我拋出了我的commands.cfg文件(使用宏$USER1$$HOSTADDRESS$首先,雖然文字信息產生相同的結果),並檢查Nagios的Web界面來驗證,它告訴我

Remote command execution failed: ssh_askpass: exec(/usr/bin/ssh-askpass): 
No such file or directory 

我確保安裝了ssh-askpass。是什麼賦予了?

回答

0

您必須設置ssh密鑰,以便'nagios'用戶可以在沒有密碼的密碼短語的情況下ssh到遠程主機,或者無法使用check_by_ssh運行檢查。

直到你可以運行(的Nagios的用戶)這樣的事情...

ssh [[email protected]]remotehost.example.com /path/to/your/plugins/check_procs 

...你沒有按鍵設置正確。

0

我有一個類似的問題 - 運行

sudo -u nagios check_by_ssh .... 

幫助 - 我對私鑰錯誤的權限。但sudo在這裏是必不可少的 - 以root身份運行的作品,並不一定像nagios一樣工作。

3

出於某種原因,添加「-E」標誌修復了它。根據check_by_ssh手冊頁,這是忽略STDERR標誌。現在我得到check_raid的輸出。

最終命令:

$ $ USER1/check_by_ssh -i〜nagios的/的.ssh/id_dsa的-H $ $ HOSTADDRESS -t 60 -l -l根-o StrictHostKeyChecking =沒有-o ConnectTimeout = 15 -o BatchMode = yes -o ServerAliveCountMax = 3 -o ServerAliveInterval = 10 -C 「/ usr/local/libexec/nagios/check_raid」-E