Network-Monitoring

如何使用 nagios 監控 ssh 隧道?

  • March 30, 2011

我有一台伺服器,它用作一堆反向 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

另一條評論,與您的“真實”問題無關……我不會為所有遠端伺服器單獨定義主機,我只會在本地主機“主機”上創建一個新服務(因為這就是提供服務)為每個隧道。

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