Páginas

quinta-feira, 21 de maio de 2009

Monitoramento remoto com NRPE

Fala pessoal… vou descrever como se instala e configura o NRPE (Nagios Remote Plugin Executor). Com ele é possível coletar informações locais de máquinas linux como uso de disco, load average de processadores e qualquer outro tipo de informação (desde que você tenha o plugin para isso)…
Ambiente instalado: Debian Lenny com o sistema básico.


Preparação do Ambiente


É necessário ter o xinetd instalado e as bibliotecas do libssl e o meta pacote build-essential.


Instalando

Antes de instalar vamos instalar as dependências:
Instalar as dependências:
aptitude install xinetd libssl-dev build-essential openssl
O primeiro passo na instalação do nrpe é instalar os plugins.
tar xvzf nagios-plugins-1.4.13.tar.gz -C /usr/local/src
cd /usr/local/src/nagios-plugins-1.4.13
./configure \
 --prefix=/usr \
 --exec-prefix=/usr/sbin \
 --libexecdir=/usr/lib/nagios/plugins \
 --sysconfdir=/etc/nagios \
 --datadir=/usr/share/nagios \
 --with-cgiurl=/nagios/cgi-bin
Quando terminar…
make
make install
P.S. os comandos devem ser executados como root
Depois de instalar os plugins ( o processo é rápido ) é hora de compilar / instalar o nrpe.
Como o nrpe é um daemon, ele necessita de um usuário para ser executado, executa-lo como root não é uma boa ideia. Crie um usuário chamado nrpe:
adduser -r nagios

Processo de compilação / instalação
tar xvzf nrpe-2.12.tar.gz -C /usr/local/src
cd /usr/local/src/nrpe-2.12
./configure \
 --with-init-dir=/etc/init.d \
 --with-nrpe-user=nagios \
 --with-nrpe-group=nagios \
 --prefix=/usr \
 --exec-prefix=/usr/sbin \
 --bindir=/usr/sbin \
 --sbindir=/usr/lib/nagios/cgi \
 --libexecdir=/usr/lib/nagios/plugins \
 --datadir=/usr/share/nagios \
 --sysconfdir=/etc/nagios \
 --localstatedir=/var/log/nagios \
 --enable-command-args
make all
 make install-plugin
 make install-daemon
 make install-daemon-config
 make install-xinetd
Quando a instalação terminar, adicione a seguinte linha no arquivo /etc/services
nrpe     5666/tcp     nrpe    # NRPE
Após adicionar a linha, “restarte” o xinetd
/etc/init.d/xinetd restart
e teste….
/usr/lib/nagios/plugins/check_nrpe -H localhost
A saída do comando deve ser essa:
NRPE v2.12
Para que o nrpe aceite as conexões vindas do seu servidor de monitoramento, é necessário alterar o arquivo /etc/xinetd.d/nrpe
Troque:
only_from       = 127.0.0.1
para
only_from       = 127.0.0.1 IP.DO.NAGIOS.SERVER
No nagios server, rode o comando:
/usr/lib/nagios/plugins/check_nrpe -H IP.A.SER.MONITORADO
e a resposta deve ser:
NRPE v2.12
Pronto!, o nagios consegue dar comandos remotos nessa máquina.


Configurando serviços remotos


O arquivo de configuração do NRPE, fica em /etc/nagios/nrpe.conf.
É nesse arquivo onde setamos os comandos que serão aceitos pelo plugin check_nrpe.

A definição de serviços pode ser feita de duas formas:

“Hardcoded”, isto é os parametros dos plugins são fixos;

“User-supplied arguments”, é o envio de parametros para o host remoto. Eu acho isso um pouco perigoso, e até na documentação do nagios diz que essa opção expõe a máquina a um risco de segurança. Para ativa-lo você tem que definiar a diretiva dont_blame_nrpe para 1

Eu prefiro usar o hardcoded, eu prefiro nao arriscar 


Declarando o serviço a ser monitorado

Na máquina  a ser monitorada, edite o arquivo
/etc/nagios/nrpe.cfg
Próximo ao fim do arquivo, existe uma parte chamada COMMAND DEFINITIONS esse é o local correto para se inserir seus comandos “hardocoded”.
A sintaxe dos comandos a serem executados é a seguinte:
command[<nome_do_comando>]= <caminho_mais_parametros_do_pluguin>
Dica 1: para descobrir os parametros dos plugins, execute o plugin diretamente na linha de comando, e ele vai mostrar como é o uso do plugin.
Dica 2: Não pode haver espaços no nome do comando.
Dica 3: Use nomes mnemônicos no nome do comando, é através dele que o nagios irá “pegar” o resultado do plugin.

Exemplos:
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
Não se esqueça de verificar o diretório de plugins, lá tem vários para verificação de serviços locais .


Monitorando o serviço remoto

No nagios server, você irá precisar declarar o serviço remoto a ser monitorado.
Para facilitar sua vida, o nagios já manda o template do comando pronto (check_nrpe), você só precisa declarar o host e depois o serviço.
Vamos supor que tenho um host já declarado chamado teste1, a definição da verificação da verificação do uso de cpu ficaria da seguinte forma:
define service{
use                            local-service
host_name                      teste1
service_description            Carga no servidor
check_command                  check_nrpe!check_load
notifications_enabled          1
}
Tudo aqui é igual na definição de um serviço local, com exeção da linha check_command.

O check command utiliza o plugin check_nrpe que passa o parametro check_load ( acima definimos no nrpe.cfg o nome do comando check_load )

Feito isso é só correr para o abraço.
Pessoal, qualquer dúvida mail-me

Um comentário:

  1. Victor,

    Agradeço por compartilhar seu conhecimento aqui nesta pagina.

    Fazia alguns dias que estava tentando fazer funcionar o NRPE no Linux e estava com muitas dificuldades, graças a esse seu artigo consegui resolver o problema.

    Te desejo sucesso e um feliz 2012.

    ResponderExcluir