NRPE (Winrpe) Comando Powershell - Não é possível ler a saída no Nagios

2

Estou tentando executar um script Powershell a partir do NRPE.cfg e obter a saída no Nagios.

Quando executo o script no servidor local (Windows), tudo está bem. Mas quando eu colocá-lo no NRPE.cfg pt-br tentar obter a saída no Nagios, eu recebo um erro Unable to Read Output.

Pesquisou na internet, mas não consegue encontrar a solução, então talvez você possa me ajudar ..

O comando / script é:

command[check_veeam_dailyone]=cmd /c echo c:\install\veeam_check.ps1 ; exit($lastexitcode) | powershell.exe -ExecutionPolicy Bypass -noninteractive -noprofile -File -

Quando eu coloco isso no servidor Windows no PowerShell, recebo esta saída:

PS C:\Install> OK - Job: VeeamOne_Daily completed successfully at 10/09/2014 04:45:51.

O "PS C: \ Instalar >" parte é estranha, mas lê o último trabalho, então parece 'ok' ..

Mas quando tento obter essa saída no Nagios com:

root@nagios:~# /usr/lib/nagios/plugins/check_nrpe -H 192.168.1.1 -t 300 -c check_veeam_dailyone

Diz:

NRPE: Unable to read output

O NRPE está funcionando bem, porque quando eu tento obter outro comando, como a unidade C, tudo está OK:

/usr/lib/nagios/plugins/check_nrpe -H 192.168.1.1 -t 300 -c pdm_disk_c DISK OK - usage: C: 38717.2 MB (63.12% of total 61337.0 MB)|'disk in use'=38717.2MB; 'disk usage'=63.12%;90;95; 'disk total'=61337.0MB;

Não consigo descobrir o que está errado.

O script que eu uso é este:

link

Obrigado pela sua resposta!

    
por J2014 10.10.2014 / 12:43

1 resposta

0

  1. Eu primeiro tentaria reduzir a complexidade do script, digamos ...

    echo "Olá mundo" e ver se isso funciona.

  2. Mais do que isso, o NRPE geralmente é executado pelo usuário, chamado nrpe (a menos que seja especificado de outra forma), portanto, ao executar suas verificações, execute-as a partir do usuário nrpe e não do root.
  3. Verifique também se "dont_blame_nrpe" está definido como "1" em nrpe.cfg na máquina monitorada.
  4. Outra coisa que você pode tentar é envolver isso:

cmd /c echo c:\install\veeam_check.ps1 ; exit($lastexitcode) | powershell.exe -ExecutionPolicy Bypass -noninteractive -noprofile -File -

dentro de um arquivo de lote (.bat) e, em seguida, altere o comando no NRPE para algo mais simples como:

command[check_veeam_dailyone]=yourscript.bat

Em seguida, tente executar o comando novamente e veja se isso funciona.

    
por 10.05.2015 / 09:31