Configurando o NRPE (Nagios Remote Plugin Executor) no Ubuntu Desktop 9.10/Server 8.04 com criptografia SSL

Neste artigo demonstro, passo a passo, a configuração do NRPE (daemon e plugin) para a comunicação entre o servidor Nagios e a máquina Linux/Unix remota, a ser monitorada. O exemplo também usará um canal SSL para a comunicação segura entre o servidor Nagios e seus clientes Linux/Unix.

[ Hits: 169.502 ]

Por: Adriano Vieira em 08/03/2010 | Blog: http://beaglenetwork.blogspot.com


Configurando o servidor Nagios (parte 2)



Na página anterior instalamos o plugin check_nrpe (com suporte a comunicação SSL), fizemos um teste em sua conectividade com a máquina Linux que queremos monitorar, por meio de um acesso ao daemon NRPE, do qual obtemos a versão do NRPE instalada... Criamos também uma nova definição de comando para o Nagios, que agora reconhecerá o 'check_nrpe' como um de seus plugins.

Agora criaremos uma nova definição de host, que nada mais é do que uma indicação ao Nagios que ele, agora, terá mais uma máquina para monitorar, e que essa máquina, com os serviços que escolhermos, será monitorada via NRPE.

Once again... LET'S DO THIS!!! =D

Criando definições de serviços e de hosts

No Nagios podemos definir modelos para serviços, hosts, padrões de monitoramento etc. Vamos criar um novo modelo que identifique sistemas Linux, monitorados por NRPE. Para isso, edite o arquivo templates.cfg:

# nano /usr/local/nagios/etc/objects/templates.cfg

Crie agora uma definição como a escrita abaixo:

...
define host
{
   name                  linux-nrpe  ; Nome do modelo de host
   use                   generic-host ; Herda valores padrão de...
   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 ; NÃO REGISTRAR - ISTO É UM MODELO
}
...

Note que o modelo de definição "linux-nrpe", acima, está herdando valores padrão do modelo chamado "generic-host" (que define configurações padrão para uma máquina "genérica"). Lembrando que estes arquivos estão disponíveis para todos os que fizeram a instalação do Nagios seguindo o "QuickStart Installation Guide".

Agora definiremos um novo arquivo de host que representará a máquina Linux/Unix remota que será monitorada. Este novo host deve herdar características do modelo que criamos anteriormente ("linux_nrpe").

Crie uma pasta para o novo arquivo de host:

# mkdir /usr/local/nagios/etc/linux

Vamos agora criar um arquivo onde iremos definir o host:

# cd /usr/local/nagios/etc/linux
# nano linux_maq1.cfg


Escreva agora, no arquivo aberto, a seguinte definição para o novo host:

...
define host
{
   use         linux-nrpe ; herda valores padrão de um modelo
   host_name   Ubuntu-maq1 ; O nome que estamos dando ao host
   alias       Ubuntu 9.10 Desktop ; Um nome longo para o host
   address     192.168.0.1 ; Endereço IP do host
}
...

Criamos uma nova definição para um host. Agora, ainda com o arquivo aberto, definiremos alguns serviços a serem monitorados na máquina Linux/Unix configurada com NRPE. Estes exemplos de definições de serviços usarão os comandos de exemplo definidos anteriormente no arquivo nrpe.cfg, na máquina remota.

Insira no arquivo aberto (linux_maq1.cfg) os seguintes serviços:

O serviço a seguir irá monitorar a carga da CPU no máquina remota. Note que o parâmetro "check_load", passado para o comando check_nrpe, diz ao daemon NRPE (residente na máquina remota) para rodar o comando "check_load" da forma definida no arquivo nrpe.cfg.

...
define service
{
   use                  generic-service ;Herda valores genéricos para um serviço
   host_name            Ubuntu-maq1
   service_description  Carga da CPU
   check_command        check_nrpe!check_load
}
...

O seguinte serviço irá monitorar o número de usuários ativos, atualmente, na máquina remota.

...
define service
{
  use                  generic-service ;Herda valores genéricos para um serviço
  host_name            Ubuntu-maq1
  service_description  Usuários Ativos Atualmente
  check_command        check_nrpe!check_users
}
...

O seguinte serviço irá monitorar o espaço livre em /dev/hda1 na máquina remota.

...
define service{
  use                   generic-service ;Herda valores genéricos para um serviço
  host_name             Ubuntu-maq1
  service_description   Espaço livre em /dev/hda1 
  check_command         check_nrpe!check_hda1
}
...

O seguinte serviço irá monitorar o número de processos rodando na máquina remota.

...
define service{
   use                  generic-service ;Herda valores genéricos para um serviço
   host_name            Ubuntu-maq1
   service_description  Número de Processos 
   check_command        check_nrpe!check_total_procs
}
...

O seguinte serviço irá monitorar o número de processos em estados "zombie" na máquina remota.

...
define service{
   use                   generic-service ;Herda valores genéricos para um serviço
   host_name             Ubuntu-maq1
   service_description   Processos Zombie
   check_command         check_nrpe!check_zombie_procs
}
...

Para inserir outros serviços para serem monitorados, basta entender o funcionamento básico do Nagios no que diz respeito ao "chamar" seus plugins para realizar alguma verificação... note que nos serviços definidos no arquivo acima, sempre escrevemos: "check_command check_nrpe!<PARÂMETROS>... na verdade, os parâmetros que se seguem são nomes "fantasia" passados ao daemon NRPE, na máquina remota, que, uma vez que os recebem, executam alguma ação...

Para entender melhor como funciona essa comunicação, procure observar com cuidado o arquivo 'nrpe.cfg' na máquina Linux/Unix remota.

Reiniciando o Nagios

Neste ponto você instalou o plugin e o complemento check_nrpe e criou definições de serviço e de host para o monitoramento da máquina Linux/Unix remota. Agora é hora de dar vida as mudanças...

Verifique seus arquivos de configuração do Nagios.

# /usr/local/nagios/Bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Caso exista erros, concerte-os. Se estiver tudo bem, reinicie o Nagios.

# /etc/init.d/nagios restart

É ISTO! Você deve, agora, poder ver a máquina e as definições de serviço criadas, diretamente na interface web do Nagios. Em alguns minutos, o Nagios já terá o estado atual da máquina Linux/Unix monitorada.

Página anterior     Próxima página

Páginas do artigo
   1. Notas iniciais
   2. Configurando a máquina a ser monitorada (parte 1)
   3. Configurando a máquina a ser monitorada (parte 2)
   4. Configurando o servidor Nagios (parte 1)
   5. Configurando o servidor Nagios (parte 2)
   6. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Servidor DHCP rápido e fácil para Conectiva Linux

Instalando o bbpager do Blackbox

Gerando gráficos sem mistérios no MRTG (Debian)

OcoMon no CentOS - Instalação e configuração

Instalando DRBD + Heartbeat no Debian 6

  
Comentários
[1] Comentário enviado por guimfonseca em 10/03/2010 - 09:33h

Você não gostaria de criar um tutorial de como reiniciar um serviço duma maquina monitorada ?
Mais ou menos como esse tutorial: http://www.techadre.com/content/nagios-event-handler-restarting-service
Mas um que funcione ... :)

abraços....
fica ai a dica.


[2] Comentário enviado por adriano vieira em 10/03/2010 - 10:28h

Muito interessante mesmo a idéia cara...

o script que o cara fez parece bem bacana... as possibilidades são infinitas. =D

bem, para mim nem tanto... hehehehe... TCC tá tomando todo meu tempo mas taí uma boa idéia... quem sabe futuramente?

Abraço

[3] Comentário enviado por magnolinux em 10/03/2010 - 12:24h

Parabens pelo artigo está show.!!!

vc falou do NRPE, eu já o utilizo a muito tempo e é muito bom...

Agora qual seria a diferença do NRPE para o NSCA???

Continue contribuindo sempre com bons artigos..

abraço..

[4] Comentário enviado por adriano vieira em 10/03/2010 - 12:56h

hahahahaha... grande Magno... meu vizinho/conterrâneo.

Sou de Manhumirim - MG, bem perto de Manhuaçu, sua cidade.

Quanto a diferença entre NRPE e NSCA é uma pergunta bem pertinente... e é bem comum confundi-los. Mas são duas técnicas de envio e recebimento de informações, relativas a hosts monitorados, bem diferentes.

No NRPE, o Nagios, por meio de seu plugin 'check_nrpe', envia um pedido de informações sobre recursos ao host rodando o daemon NRPE. Isso requer que, nas definições de host do Nagios, você adicione o IP do host monitorado. Logo, no NRPE a comunicação entre o Nagios e o host monitorado é de forma ativa, ou seja, o Nagios é quem tem a iniciativa para obter informações sobre o host.

Agora imagine a situação onde, porventura, você não possa atingir o número IP de suas máquinas à serem monitoradas... (Isso pode ser comum em uma rede subdivida em diversas subredes e com firewalls permeando o caminho, ou mesmo em uma situação onde exista um NAT escondendo uma rede do servidor Nagios). Para resolver isto existe o NSCA.

Basicamente um daemon NSCA, na máquina monitorada, envia os resultados de suas checagens internas diretamente para o servidor Nagios, sem que este tenha pedido nada, porém o mesmo já está a espera por tais informações. Isto requer que, ao contrário do NRPE, o cliente remoto saiba o IP do servidor e inicie a conexão com o Nagios. Logo, no NSCA a comunicação entre o Nagios e o host monitorado é de forma passiva, ou seja, o host monitorado é quem tem a iniciativa para enviar informações ao Nagios.

Abraço..

[5] Comentário enviado por magnolinux em 12/03/2010 - 13:57h

Grande adriano...

Que conheçidencia, sempre que estou em manhuaçu vou em manhumirim, tenho muitos amigos por la...

Sua reposta foi exata... meus parabens mais uma vez.

agora uma outra duvida, o nsca é configurado como o nrpe.? Existe um daemon rodando na maquina cliente que envia as requisições para o servidor nagios?? e como o nagios interpreta essas informações, como seria a configuração no servidor.?

vlw abraço.

[6] Comentário enviado por adriano vieira em 12/03/2010 - 15:11h

Bem Magno, suponho que a resposta vale um novo artigo...

tava pensando mesmo em fazer algo relacionado ao NCSA... a muito não vejo artigo nem tutorial, atualizado, deste complemento na Internet. É bacana que se explique em detalhes as diferenças entre 'passive checks' e 'active checks' e as configurações que adequem o servidor a trabalhar com o NSCA.

Fique no aguardo. =D

Abraço.

[7] Comentário enviado por leandro_hamid em 30/09/2010 - 18:47h

Boa noite.

Primeiramente gostaria de parabenizar pelo excelente artigo, muito bom mesmo mas como não poderia deixar de ser tudo corria muito bem nso teses que estava fazendo quando cheguei ao tópico "Configurando o servidor Nagios (parte 1)", na parte em que tenho que compilar o código fonte em .tar.gz do complemento NRPE.

Ao executar o comando abaixo recebo a seguinte mensagem de erro respectivamente:

# make install-plugin

ERRO:

cd ./src/ && make install-plugin
make[1]: Entrando no diretório `/dados/nrpe-2.12/src'
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/libexec
/usr/bin/install -c -m 775 -o nagios -g nagios check_nrpe /usr/local/nagios/libexec
/usr/bin/install: impossível obter estado de "check_nrpe": Arquivo ou diretório não encontrado
make[1]: ** [install-plugin] Erro 1
make[1]: Saindo do diretório `/dados/nrpe-2.12/src'
make: ** [install-plugin] Erro 2

O que posso fazer para resolver o problema visto que o Nagios já esta instalado e rodando perfeitamente na máquina servidor?

Desde já agrdeço.

[8] Comentário enviado por adriano vieira em 30/09/2010 - 20:27h

Olá Leandro...

pelo visto, o erro ocorre no instante em que o 'install' tenta copiar o arquivo check_nrpe para o diretório de plugins do Nagios (nagios/libexec). O arquivo deveria estar no diretório SRC, mas parece não estar...

Não sei a distro que você usa, (suponho que seja fedora core 6 -pelo que vi em seu perfil)... Mas estou levando em conta que, após a execução do comando # ./configure, não foram encontrados erros em suas bibliotecas que impediriam que o 'check_nrpe' fosse compilado.

Sugiro que verifique o diretório /dados/nrpe-2.12/src e veja se o arquivo 'check_nrpe' está mesmo lá (pelo visto, ele não está).

Caso realmente não esteja, significa que ele não foi compilado e não foi inserido na pasta SRC... recompile o NRPE com o comando:

# make all

Após a execução deste comando, é esperado que o 'check_nrpe' esteja dentro do seu diretório SRC... Se ainda tiver problemas, verifique a saída do comando 'make all', procurando por erros relativos a falta de bibliotecas para a compilação do plugin.

Forte abraço.

[9] Comentário enviado por leandro_hamid em 01/10/2010 - 18:39h

Boa noite adriano vieira tudo bem?!

Muito obrigado pelo apoio que esta me dando, mas me parece que eu parei ensta etapa da configuração.Eu verifiquei o diretório '/dados/nrpe-2.12/src' para verificar se o arquivo 'check_nrpe' existe e percebi que ele existe, vide saída do omando 'ls -al' abaixo:

total 271
drwxrwxr-x 2 nagios nagios 1024 Set 30 19:20 .
drwxrwxr-x 7 nagios nagios 1024 Set 30 19:20 ..
-rwxr-xr-x 1 root root 64104 Set 30 19:20 check_nrpe
-rw-rw-r-- 1 nagios nagios 12139 Mar 10 2008 check_nrpe.c
-rw-rw-r-- 1 nagios nagios 5 Abr 4 2003 .cvsignore
-rw-r--r-- 1 root root 1591 Set 30 19:20 Makefile
-rw-rw-r-- 1 nagios nagios 1527 Ago 13 2007 Makefile.in
-rwxr-xr-x 1 root root 96795 Set 30 19:20 nrpe
-rw-rw-r-- 1 nagios nagios 48649 Mar 10 2008 nrpe.c
-rw-rw-r-- 1 nagios nagios 34417 Ago 13 2007 snprintf.c
-rw-rw-r-- 1 nagios nagios 10308 Dez 12 2006 utils.c

Mesmo assim eu retornei um nível de diretório e compilei o NRPE com o comando 'make all' como recomendado, a sída do comando é a seguinte:

cd ./src/; make ; cd ..
make[1]: Entrando no diretório `/dados/nrpe-2.12/src'
make[1]: Nada a ser feito para `all'.
make[1]: Saindo do diretório `/dados/nrpe-2.12/src'

*** Compile finished ***

If the NRPE daemon and client compiled without any errors, you
can continue with the installation or upgrade process.

Read the PDF documentation (NRPE.pdf) for information on the next
steps you should take to complete the installation or upgrade.

Voltei a acessar o diretório '/dados/nrpe-2.12/src' e vi que o mesmo arquivo estava lá e quando executei o comando 'make install-plugin' o erro persistia. Vide abaixo:

cd ./src/ && make install-plugin
make[1]: Entrando no diretório `/dados/nrpe-2.12/src'
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/libexec
/usr/bin/install -c -m 775 -o nagios -g nagios check_nrpe /usr/local/nagios/libexec
make[1]: Saindo do diretório `/dados/nrpe-2.12/src'

Bom, eu já verifiquei algumas coisa, tentei resolver aqui mas não consegui, desde já muito obrigado por me ajudar.

Observação: O sistema operacional que estou usando é o Ubuntu Hardy Heron 8.04 customizado pela empresa.

Forte abraço.

[10] Comentário enviado por rmassola em 18/10/2010 - 17:36h

Pessoal,
Sou novo aki no forum e gostaria de saber se alguém pode me ajudar com um probleminha que estou tendo:

Tenho o Nagios na empresa monitorando alguns servidores windows e linux e estou tendo problemas com um Red Hat, na verdade é com o NRPE que está instalado nesta máquina....
Acontece que quando tento dar um restart no NRPE apresenta a seguinte mensagem conforme a saída do comando abaixo:


[root@mail src]# /etc/init.d/nrpe restart
Restarting nagios remote plugin daemon: nrpe/etc/init.d/nrpe: line 22: start-stop-daemon: command not found
/etc/init.d/nrpe: line 23: start-stop-daemon: command not found

Quando dou um comando para verificar se o serviço subiu, recebo o seguinte retorno:

[root@mail etc]# ps -aux | grep nrpe
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
root 6622 0.0 0.0 3936 736 pts/0 R+ 17:20 0:00 grep nrpe


Parece que o serviço está roando mas não está funcionando, no meu nagios fica dando a mensagem de Conection Refuse.


Alguém sabe o que está ocorrendo neste caso ??

Desde já agradeço.

Robson Massola

[11] Comentário enviado por rmassola em 16/12/2010 - 14:04h

Pessoal,
Será que não tem ninguém com alguma idéia de como posso resolver este problema ?
Não tenho tanto conhecimento com Red Hat e isso está me causando um certo desconforto aqui na empresa.


Por favor, se alguém puder me ajudar eu ficarei agradecido.


Muito obrigado
Robson Massola

[12] Comentário enviado por guimfonseca em 16/12/2010 - 14:07h

verifica oq o script do nrpe faz na linha 22 e 23 e testa os mesmos....


ps.: vc ja verificou o HD desse server ... ??

[13] Comentário enviado por .PtG em 31/08/2011 - 16:01h

Ótimo post, bem explicado me ajudou bastante, agora estou com uma dúvida, preciso monitorar máquinas windows remotamente, é necessário eu configurar todos define services para a checagem, existe algo mais simples que eu possa instalar num servidor onde ficam as máquinas windows e este server se comunica com o meu server onde fica o nagios???

[14] Comentário enviado por wsousa em 18/10/2011 - 16:31h

Quando entro no arquivo para editar as configurações do NRPE,
não consigo sair e salvar as alterações.

Alguem pode me Ajudar so meio leigo ainda em Linux..

[15] Comentário enviado por p@feitosa em 18/05/2012 - 11:19h

Olá Rafael, parabéns pelo artigo bem completo.

Gostaria de configurar o servidor em RED HAT, pois é a distro do meu cliente, tem alguma restriçao em utilizar este tutorial?

Abracos!!

[16] Comentário enviado por maironcosta em 29/05/2012 - 09:36h

Parabens pelo artigo,

Estou com um problema aqui q acredito seja de facil solução so q ainda nao consegui...

quando coloco para monitorar um tipo de serviço da o seguinte erro:

NRPE: Command 'check_procs' not defined

o que sera esse erro?? tem alguma coisa na maquina remota...

[17] Comentário enviado por debian-squeeze em 13/11/2012 - 21:24h

show o artigo! rolou tudo de primeira!

parabens.

obs.: usei o debian squeeze
nagios-plugins-1.4.15
nrpe-2.13!

[18] Comentário enviado por atenedini em 23/04/2013 - 14:17h

Bom dia amigo,

Nossa estou impressionado com sua capacidade de conhecer os problemas. Parabéns.

Bom vamos ao que interessa.

Eu instalei o Nagios para monitorar as máquinas da minha rede direto do switch, então podemos entender, que não quero saber de HD, ou velocidade, ou qualquer outra coisa nesse sentido, o que quero e saber qual máquina está fora de serviço na porta do switch? Isso dá para fazer com o nagios? Quando uma máquina parar ele me avisar que ela está fora da rede?

Obrigado pela atenção.

Alex Tenedini


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts