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
1 – Download dos plugins: http://ufpr.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
2 – Download do NRPE: http://ufpr.dl.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
É 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/srccd /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…
makemake 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/srccd /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-argsmake 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.
Victor,
ResponderExcluirAgradeç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.