Назад | Перейти на главную страницу

Как я могу использовать 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, я вижу:

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

Еще один комментарий, не связанный с вашим «настоящим» вопросом ... Я бы не стал делать отдельное определение хоста для всех удаленных серверов, я бы просто создал новую службу на «хосте» localhost (видимо, это то, что обеспечивает service) для каждого туннеля.