Altere vars.loads = "'10' '20'"
para vars.loads = "10!20"
porque o NRPE não consegue ler os argumentos da maneira como você os declarou no objeto Service.
Eu tenho uma instância de trabalho do Nagios e gostaria de executar o Icinga2 em outra máquina. O Nagios está usando o NRPE, então eu também gostaria de usá-lo.
Eu tenho a seguinte configuração em arquivos:
object Service "NRPE check load" {
import "generic-service"
host_name = "agrippina"
check_command = "nrpe-check-2arg"
vars.host = "agrippina.domain.net"
vars.check = "check_load"
vars.loads = "'10' '20'"
}
e
object CheckCommand "nrpe-check-2arg" {
import "plugin-check-command"
command = [PluginDir + "/check_nrpe" ]
arguments = {
"-H" = "$host$"
"-c" = "$check$"
"-a" = "$loads$"
}
}
Quando estou emitindo o comando manualmente:
/usr/lib/nagios/plugins/check_nrpe -H agrippina.domain.net -c 'check_load' -a '10' '20'
Eu recebo
OK - load average: 0.98, 1.39, 3.79|load1=0.980;10.000;20.000;0; load5=1.390;10.000;20.000;0; load15=3.790;10.000;20.000;0;
Logs Icinga2:
CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
Onde devo procurar essas mensagens?
Desde quando eu executo esta verificação manualmente e ela funciona, como consertá-la no Icinga2?
Eu não criaria definições CheckCommand personalizadas para vários casos de uso. Nós nos concentramos em tornar os objetos CheckCommand mais reutilizáveis durante nossos ciclos de desenvolvimento, e uma coisa que você obterá - argumentos opcionais e também condicionais.
Além disso, o icinga2 já vem com a definição do comando 'nrpe', permitindo adicionar vários argumentos adicionais -a) como array.
Seu exemplo:
vars.nrpe_arguments = [10, 20]
Melhor seguir esse caminho e, caso você tenha mais definições CheckCommand para compartilhar, envie-as para o autor - isso certamente ajuda a não se preocupar com as definições do CheckCommand, mas apenas com hosts / servics e seus atributos personalizados usados como parâmetros de comnand :)
Tags icinga