verificação nagios falha no host nagios mas funciona localmente

2

Eu escrevi um pequeno script bash para usar com o nagios para verificar se o nrpe está sendo executado.

A verificação funciona localmente quando executada como raiz, mas falha no host de monitoramento.

Do host que estou tentando monitorar, eu tenho essa linha no meu nrpe.conf:

 command[check_nrpe]=/usr/lib64/nagios/plugins/check_nrpe.sh

E garantimos que o script de verificação seja de propriedade do usuário nagios:

[root@ops:~] #ls -l /usr/lib64/nagios/plugins/check_nrpe.sh
-rwxr-xr-x. 1 **nagios nagios** 203 Jun  9 20:29     **/usr/lib64/nagios/plugins/check_nrpe.sh**

E se eu executar o script como o usuário root, obtenho o resultado correto:

 [root@ops:~] #/usr/lib64/nagios/plugins/check_nrpe.sh OK: NRPE is running with pid: 24538
24538

Mas quando eu o executo a partir do host nagios, a verificação produz o resultado oposto:

[root@monitor1:~] #/usr/local/nagios/libexec/check_nrpe -H ops.mydomain.com -c     check_nrpe
**CRITICAL: NRPE is **NOT** Running**

Se eu voltar ao host que estou tentando monitorar e me tornar o usuário nagios, obtenho o mesmo resultado incorreto que no host nagios.

[root@ops:~] #su - nagios
Last login: Tue Jun  9 20:43:42 UTC 2015 on pts/3

-bash-4.2$ /usr/lib64/nagios/plugins/check_nrpe.sh
**CRITICAL: NRPE is **NOT** Running**

Se eu der ao usuário nagios sudo acesso a esse script, posso obter o resultado correto como o usuário nagios no host local.

Em / etc / sudoers eu dou acesso ao usuário nagios ao comando e desabilito tty colocando:

    nagios ALL=(ALL)    NOPASSWD: /usr/lib64/nagios/plugins/check_nrpe.sh    !requiretty

E agora, se eu me tornar o usuário nagios no host local e usar o sudo, a verificação produzirá o resultado correto.

[root@ops:~] #su - nagios
Last login: Tue Jun  9 23:37:09 UTC 2015 on pts/0

-bash-4.2$ sudo /usr/lib64/nagios/plugins/check_nrpe.sh
**OK: NRPE is running with pid: 24538**
24538

Se eu, então, editar meu arquivo nrpe conf no host local para usar o comando sudo before. No nrpe.conf eu coloquei:

[root@ops:~] #grep check_nrpe /etc/nagios/nrpe.cfg
command[check_nrpe]=/bin/sudo /usr/lib64/nagios/plugins/check_nrpe.sh

E reiniciei o serviço nrpe:

[root@ops:~] #systemctl restart nrpe
[root@ops:~] #lsof -i :5666
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nrpe    6137 nrpe    4u  IPv4 493404      0t0  TCP *:5666 (LISTEN)
nrpe    6137 nrpe    5u  IPv6 493405      0t0  TCP *:5666 (LISTEN)

Mas quando eu volto para o host nagios e executo a verificação novamente, recebo um erro de saída:

[root@monitor1:~] #/usr/local/nagios/libexec/check_nrpe -H ops.jokefire.com -c     check_nrpe
 **NRPE: Unable to read output**

Este é o conteúdo do meu script check nrpe:

[root@ops:~] #cat /usr/lib64/nagios/plugins/check_nrpe.sh
#!/bin/bash

pid=$(lsof -i :5666 | awk '{print $2}' | grep -i -v pid)

if [[ $pid ]]
then
  echo "OK: NRPE is running with pid: $pid"
  exit 0
else
  echo "CRITICAL: NRPE is **NOT** Running"
  exit 2
fi

HELP !! Como obtenho essa verificação para retornar o resultado correto do host nagios?

Obrigado

    
por user99201 10.06.2015 / 03:36

0 respostas

Tags