Evitando o Nagios commands.cfg

2

Eu quero chamar um comando diretamente de um arquivo de serviço do Nagios, em vez de passar argumentos desajeitadamente para o comando .cfg. Por exemplo eu quero fazer isso:

define service {
    service_description           footest
    check_command                 $USER1$/check_http example.com -u   http://example.com/index.html
    use generic-service
    host_name                     example
}

Mas eu recebo um:

Error: Service check command '/usr/share/nagios/libexec/check_http example.com -u http://example.com/index.html' specified in service 'footest' for host 'example' not defined anywhere!
    
por hendry 26.08.2013 / 11:56

4 respostas

5

Se você insiste em fazer isso, o que é uma idéia realmente terrível, esse trecho deve funcionar:

define command {
    command_name check_by_arbitrary_path
    check_command /bin/sh -c "$ARG1$"
}

define service {
    use remote-service
    host_name example
    service_description This is a bad idea, seriously
    check_command check_by_arbitrary_path!$USER1$/check_http example.com -u http://example.com/index.html
}

Sério, por favor, não faça isso.

    
por 26.08.2013 / 15:20
1

Eu tive sucesso com uma definição de comando check_any em commands.cfg

define command {
  command_name check_any
  command_line $USER1$/check_$ARG1$
}

Qual eu uso em uma definição como:

define service {
  service_description  Forest is not on fire
  check_command        check_any!forest --on-fire=false
  use                  generic-service
  host_name            example
}
    
por 26.08.2013 / 13:23
1

Você precisa dividi-lo em duas partes, a primeira no check_command e a segunda na própria verificação.

Crie o modelo para verificar um URL:

define command {
     command_name          check_http_url
     command_line          $USER1$/check_http -I'$HOSTADDRESS$' -u '$ARG1$' 
     }

Use o modelo para verificar um URL específico (www.example.com, neste caso):

define service {
    host_name              example
    service_description    Check www.example.com URL
    check_command          check_http_url!www.example.com
    use                    generic-service
    } 
    
por 26.08.2013 / 14:43
1

A melhor prática do Nagios é dividir seu check em um comando e check, um check_command é definido como um comando como

define command {
    command_name footest
    command_line $USER1$/footest -a some-fixed-option -b $ARG1$ -c $ARG2$
}

antes de ser usado em uma verificação de serviço.

    
por 26.08.2013 / 12:34

Tags