Há algum tempo atrás, escrevi um artigo sobre como instalar o Nagios em um servidor Linux Centos 5, e posteriormente atualizei para que funcionasse também no Centos 6 Minimal.

No artigo que escrevi, mostro como o Nagios pode monitorar a própria máquina, e agora irei mostrar como monitorar outras máquinas com o NRPE (Nagios Remote Plugin Executor).

Se você nunca instalou o Nagios, é importante que instale seguindo as instruções do artigo.

Para o exemplo, irei considerar duas máquinas:

  • Servidor – Servidor de monitoramento, com IP: 192.168.0.247
  • Cliente – Cliente que será monitorado, com IP: 192.168.0.248

O procedimento deve ser executado em uma máquina com instalação limpa do Centos 6 Minimal para que funcione corretamente. É importante que antes de testar em uma máquina de produção, você simule em máquinas virtuais.

As duas máquinas deverão estar com acesso à internet e com a rede local configurada.

Atenção! O Servidor já deverá estar como Nagios instalado. Se você ainda não fez isso, siga as instruções do artigo citado acima!

Execute os passos abaixo para instalar o NRPE no cliente (que será monitorado).

Obs.: Se os códigos abaixo aparecerem sem o destaque, acesse o link direto do artigo aqui.

Todos os comandos abaixo devem ser executados como root. Antes de começar, adquira permissões de root e atualize o sistema:

su -l
yum update

1. Pré-requisitos

yum install openssl-devel xinetd make gcc perl

2. Dados para acesso

useradd nagios
passwd nagios

3. Baixe os plugins e o NRPE

Baixe os arquivos para instalação do NRPE e dos Plugins (visite http://www.nagios.org/download/ para a última versão). Esse passo-a-passo foi testado com o NRPE 2.12 e Nagios Plugins 1.4.11.

mkdir ~/downloads
cd ~/downloads
wget http://ufpr.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.11/nagios-plugins-1.4.11.tar.gz
wget http://ufpr.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz

4. Instale os plugins

tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
chown nagios.nagios /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/libexec

5. Instale o NRPE

cd ~/downloads
tar xzf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure 
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd

6. Configurações adicionais do NRPE

Adicione o serviço do NRPE no arquivo /etc/services. Por algum motivo que desconheço, quando copio e colo a linha a ser adicionada, eu tenho um problema (mais adiante) ao configurar a máquina servidor para se conectar com o cliente. Retorna uma mensagem como essa: CHECK_NRPE: Error – Could not complete SSL handshake. Então recomendo que você não copie e cole a linha abaixo, e sim digite ela no arquivo /etc/services (vi /etc/services):

nrpe      5666/tcp     #NRPE

Adicione o xinetd para iniciar quando a máquina ligar, e reinicie o xinetd

chkconfig xinetd on
service xinetd restart

Verifique se o NRPE está ouvindo na porta 5666

netstat -at |grep nrpe

A saída deve ser algo como:

tcp    0    0 *:nrpe    *.*    LISTEN

Verifique se o NRPE está funcionando:

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

A saída deve ser algo como:

NRPE v2.12

Agora que verificamos que o NRPE está funcionando, abra o arquivo /etc/xinetd.d/nrpe e na linha "only_from", troque o IP 127.0.0.1 pelo IP do servidor de monitoramento. No nosso caso:

only_from       = 192.168.0.247

Abra a porta 5666 no Firewall:

/sbin/iptables -I INPUT -p tcp --dport 5666 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart

Agora execute os passos abaixo para instalar o NRPE no servidor (máquina que irá monitorar as outras)

7. Instale os pré-requisitos

yum -y install openssl-devel

8. Baixe o NRPE

Baixe os arquivos para instalação do NRPE (visite http://www.nagios.org/download/ para a última versão). Esse passo-a-passo foi testado com o NRPE 2.12.

cd ~/downloads
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

9. Instale o NRPE

tar xzf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure 
make all
make install-plugin

10. Testando a conexão com o cliente. Lembre-se de trocar pelo IP correto

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

Se você receber o erro CHECK_NRPE: Error – Could not complete SSL handshake, veja novamente o passo 6.

Deverá retornar algo como:

NRPE v2.12

11. Crie a definição de comando do NRPE

Adicione ao arquivo /usr/local/nagios/etc/objects/commands.cfg (vi /usr/local/nagios/etc/objects/commands.cfg):

###############################################################################
# NRPE CHECK COMMAND
#
# Command to use NRPE to check remote host systems
###############################################################################

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

12. Crie um template

Adicione ao arquivo /usr/local/nagios/etc/objects/linux-box-remote.cfg (vi /usr/local/nagios/etc/objects/linux-box-remote.cfg):

define host{
          name                  linux-box-remote 		; Name of this template
          use                   generic-host			; Inherit default values
          check_period          24x7
          check_interval        5
          retry_interval        1
          max_check_attempts    10
          check_command         check-host-alive
          notification_period   24x7
          notification_interval 30
          notification_options  d,r
          contact_groups        admins
          register              0 						; DONT REGISTER THIS - ITS A TEMPLATE	
          }

define host{
          use       linux-box-remote; 
          host_name cliente			; Nome do servidor (curto)
          alias     cliente			; Nome do servidor (pode ser maior)
          address   192.168.0.248   ; IP do cliente
          }

define service{
          use                 generic-service
          host_name           cliente
          service_description CPU Load
          check_command       check_nrpe!check_load
          }
define service{
          use                 generic-service
          host_name           cliente
          service_description Current Users
          check_command       check_nrpe!check_users
          }
define service{
          use                 generic-service
          host_name           cliente
          service_description /dev/hda1 Free Space
          check_command       check_nrpe!check_hda1
          }
define service{
          use                 generic-service
          host_name           cliente
          service_description Total Processes
          check_command       check_nrpe!check_total_procs
          }
define service{
          use                 generic-service
          host_name           cliente
          service_description Zombie Processes
          check_command       check_nrpe!check_zombie_procs
          }

13. Ative o template linux-box-remote.cfg.

Abra o arquivo /usr/local/nagios/etc/nagios.cfg (vi /usr/local/nagios/etc/nagios.cfg) e adicione:

#Definicoes para monitoramento de máquina linux remota
cfg_file=/usr/local/nagios/etc/objects/linux-box-remote.cfg

14. Verifique se as configurações estão corretas

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

Deverá retornar algo como:

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

15. Reinicie os serviços e acesse o nagios

service httpd restart
service nagios restart

Agora é só acessar o servidor: 192.168.0.247/nagios e logar com o usuário nagiosadmin (e a senha que você definiu

Pronto! Agora você já pode monitorar suas máquinas remotas com o Nagios! Dúvidas? Use os comentários!

Fonte: http://www.kernelhardware.org/nagios-nrpe-to-monitor-remote-linux-server/