Network-Monitoring
如何使用 nagios 監控 ssh 隧道?
我有一台伺服器,它用作一堆反向 ssh 隧道的中間人。我想在該伺服器上使用 nagios 來監視所有這些 ssh 隧道是否已啟動。
基本上我想做nagios相當於:
ssh -p 12344 localhost ssh -p 12415 localhost ssh -p 12544 localhost
我有以下定義:
define host{ use generic-host host_name paniqui address localhost _PORT 12345 } define hostgroup { hostgroup_name chits-servers alias CHITS servers members paniqui } define service { hostgroup_name chits-servers service_description SSHTUNNEL check_command check_ssh!-p $_HOSTPORT$ $HOSTADDRESS$ use generic-service notification_interval 0 ; set > 0 if you want to be renotified }
但是當我在 Nagios Web 界面上檢查服務時,我看到:
Status Information: UNKNOWN (for 0d 2h 7m 50s) Usage:check_ssh [-46] [-t <timeout>] [-r <remote version>] [-p <port>] <host>
有什麼建議麼?
命令的參數應在命令定義中配置。就像是:
define command { command_name check_tunneled_ssh command_line /usr/lib/nagios/plugins/check_ssh -p $ARG1$ $HOSTADDRESS$ }
然後你會使用
check_command check_tunneled_ssh!12344
在您的服務中。
這是我的 nagios/etc/objects/commands.cfg,我認為這是標準的。
# 'check_ssh' command definition define command{ command_name check_ssh command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$ }
這意味著我認為您通過指定錯誤 $ HOSTADDRESS $ 在您的檢查命令中。請在您的服務定義中嘗試此操作:
check_command check_ssh!-p 12345
另一條評論,與您的“真實”問題無關……我不會為所有遠端伺服器單獨定義主機,我只會在本地主機“主機”上創建一個新服務(因為這就是提供服務)為每個隧道。