Como posso usar nagios para monitorar túneis ssh?

4

Eu tenho um servidor que é usado como intermediário para um monte de túneis ssh reversos. Eu quero usar nagios nesse servidor para monitorar que todos esses túneis ssh estão ativos.

Essencialmente eu quero fazer o equivalente nagios de:

ssh -p 12344 localhost
ssh -p 12415 localhost
ssh -p 12544 localhost

Eu tenho as seguintes definições:

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
}

Mas quando eu verifico o serviço na interface da web do Nagios, vejo:

Status Information: UNKNOWN  (for 0d 2h 7m 50s)     
Usage:check_ssh [-46] [-t <timeout>] [-r <remote version>] [-p <port>] <host>

Alguma sugestão?

    
por Mike McKay 29.03.2011 / 17:36

2 respostas

4

Os parâmetros para o comando devem ser configurados na definição de comando. Algo como:

define command {
   command_name check_tunneled_ssh
   command_line /usr/lib/nagios/plugins/check_ssh -p $ARG1$ $HOSTADDRESS$
}

Então você usaria

check_command check_tunneled_ssh!12344

no seu serviço.

    
por 29.03.2011 / 17:43
2

Aqui está o meu nagios / etc / objects / commands.cfg, que acredito ser padrão.

# 'check_ssh' command definition
define command{
        command_name    check_ssh
        command_line    $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
        }

O que significa que acho que você errou ao especificar $ HOSTADDRESS $ em seu comando de verificação. Tente isso na sua definição de serviço:

  check_command                   check_ssh!-p 12345

Outro comentário, não relacionado à sua pergunta 'real' ... Eu não faria uma definição de host separada para todos os servidores remotos, apenas criaria um novo serviço no 'host' do localhost (visto que é o que está fornecendo o serviço) para cada túnel.

    
por 29.03.2011 / 17:48