Nagios: Instalação do Addon Nagios NRPE para Execução de Plugins em Máquinas Remotas com Debian Squeeze (Debian6)

Por Fábio Gil - Criado em 25/11/2011

Adaptação: NRPE Documentation, disponível em

No servidor Linux Remoto (Host Remoto)
1. Criar a conta do Nagios

/usr/sbin/useradd nagios passwd nagios

2. Instalar o Plugin do Nagios

Baixar e descompactar o Nagios Plugin:

mkdir ~/downloads cd ~/downloads wget -c http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz tar xvzf nagios-plugins-1.4.15.tar.gz cd nagios-plugins-1.4.15

Compilar o instalar o Nagios Plugin (Nota: No Debian, deve-se instalar o pacote build-essential antes):

./configure make make install

3. Setar as permissões

chown nagios.nagios /usr/local/nagios chown -R nagios.nagios /usr/local/nagios/libexec

4. Instalar xinetd

apt-get install xinetd

5. Instalar o daemon NRPE

Baixar o Addon NRPE:

cd ~/downloads wget -c http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz/download

Descompactar o tar:

tar xzf nrpe-2.12.tar.gz cd nrpe-2.12

Resolver as dependências:

apt-get install libssl-dev

Compilar o addon NRPE:

./configure make all

Seguir com a instalação do plugin NRPE (para testes), daemon, e exemplo de arquivo de configuração do daemon:

make install-plugin make install-daemon make install-daemon-config

6. Configurar o NRPE

Instalar o daemon NRPE sobre o serviço xinetd:

make install-xinetd

Editar o arquivo /etc/xinetd.d/nrpe e adicione o endereco IP do servidor monitor na diretiva &quot;only_from&quot;:

only_from           = 127.0.0.1 

Adicionar a seguinte entrada para o damemon NRPE no arquivo /etc/services.

nrpe                5666/tcp            # NRPE

Reiniciar o serviço xinetd:

/etc/init.d/xinetd restart

7. Testar o daemon NRPE daemon

Verifique se o xinetd esta funcionando apropriadamente:

netstat -at | grep nrpe

A saída devera ser:

tcp            0            0 *:nrpe     *:*           LISTEN

Se a saída acima apareceu então tudo ok. Caso contrário, verifique se:


 * Foi adicionada a entrada do NRPE no arquivo /etc/services?
 * A diretiva &quot;only_from&quot; em /etc/xinetd.d/nrpe está com a entrada &quot;127.0.0.1&quot;?
 * O xinetd foi instalado e inicializado?
 * Verifique o arquivo de log (no debian: /etc/log/daemon.log), para resolver problemas reportados pelo xinetd.

Em seguida, verifique se o daemon NRPE está funcionando apropriadamente, a partir do Host Monitor. Para fazer isto, execute o plugin &quot;check_nrpe&quot;, como segue:

/usr/local/nagios/libexec/check_nrpe -H 

Deverá ser mostrado na saída do comando acima a versão do NRPE instalado, como segue:

NRPE v2.12

Caso ocorrer a mensagem de erro: &quot;CHECK_NRPE: Error - Could not complete SSL handshake&quot;, entao faca o seguinte:

No host remoto, abra o arquivo /usr/local/nagios/etc/nrpe.cfg, altere a seguinte linha.

De:

allowed_hosts=127.0.0.1

Para:

allowed_hosts=

Ex: allowed_hosts=10.10.1.46

Faça o teste novamente.

/usr/local/nagios/libexec/check_nrpe -H 

Como mencionado acima, deverá ser mostrado a versão do NRPE instalado, caso contrário verifique o arquivo de log do Nagios em /var/log/daemon.log.

Nota: Sempre verificar o log /var/log/daemon.log (Debian) para checar existência erros.

Instalação do NRPE no Host Monitor
1. Instalar o plugin NRPE da mesma forma como no host remoto (ver capítulo anterior), porém há necessidade de instalar o daemon, nem o arquivo de configuração (descartar o make install-daemon, e make install-daemon-config)

2. Testar, através do lado do host monitor, o daemon NRPE

Nota: Para executar este teste, certifique se o IP do host monitor foi devidamente configurado, conforme descrito no capítulo anterior.

/usr/local/nagios/libexec/check_nrpe -H 

A saída do comando deverá ser:

NRPE v2.12

Caso ocorra algum tipo de problema de conexão, verifique a configuração do IP do host monitor na diretiva &quot;allowed_hosts&quot; no arquivo de configuração /usr/local/nagios/etc/nrpe.cfg, no lado do host remoto (ver capítulo anterior).

3. Criar a definição de comando do NRPE

Em /usr/local/nagios/etc/nrpecommand.cfg, adicionar:

define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }

Em /usr/local/nagios/etc/nagios.cfg, adicione:

cfg_file=/usr/local/nagios/etc/nrpecommand.cfg
 * 1) NRPE

Reinicie o Nagios:

/etc/init.d/nagios restart

Definições de Host e Services
As configurações de Host e Services obviamente deverao ser definidas no Host Monitor. O Nagios trabalha com templates tanto de hosts como de services. Você poderá encontrar templates prontos para uso em /usr/local/nagios/etc/objects/templates.cfg.

Mas aqui vamos utilizar apenas os templates padrão do Nagios, ficando a criacão de templates customizáveis para um capítulo.

Vamos criar a definição do host remoto:

Primeiramente, crie um diretório, poderá ser &quot;servers&quot;, como a seguir:

mkdir /usr/local/nagios/etc/servers

Edite o arquivo /usr/local/nagios/etc/servers/remotehost1.cfg, e adicione:

Nota: O nome do arquivo .cfg e sugestivo, podendo ser mudado conforme o administrador achar melhor.

define host{ use                    linux-server host_name              remotehost1 alias                  remotehost1 address                 }

Nota: Substituir  pelo endereco IP.

Em seguida, definir os services. Vamos adicionar os seguintes services:

define service{ use                            local-service         ; Name of service template to use host_name                      remotehost1 service_description            PING check_command                  check_ping!100.0,20%!500.0,60% }
 * 1) Service de echo

define service{ use                            local-service         ; Name of service template to use host_name                      remotehost1 service_description            CPU Load check_command                  check_nrpe!check_load }
 * 1) Service de uso de CPU

define service{ use                            local-service host_name                      remotehost1 service_description            /dev/hda1 Free Space check_command                  check_nrpe!check_hda1 }
 * 1) Service de Espaco Livre:

''Nota: Para o service &quot;Disk Free&quot; mencionado acima, verifique a partição a ser checada pelo NRPE. No exemplo acima, será checado a partição /dev/hda1, porém, poderá ser especificado outro tipo de partição, cujo comando é definido no final do arquivo de configuração do NRPE, em /usr/local/nagios/etc/nrpe.cfg.''

Feito isso, adicione em /usr/local/nagios/etc/nagios.cfg a linha:

cfg_file=/usr/local/nagios/etc/servers/remotehost1.cfg

Verifique a configuração do Nagios com o comando abaixo:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Se ocorrer algum erro durante esta checagem, verifique o arquivo de configuração de host criado logo acima.

Caso ocorrer tudo bem, então inicialize/reinicialize o Nagios:

/etc/init.d/nagios restart

Obs: Para verificar problemas com o Nagios, checar sempre o seu log principal, localizado em: /usr/local/nagios/var/nagios.log 

Referências:
 * http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf
 * http://library.nagios.com/library/products/nagioscore/manuals/
 * http://www.nagios.org
 * http://nagiosplug.sourceforge.net/developer-guidelines.html
 * http://nagiosnapratica.wordpress.com/indice-do-site/