Artigo 6 – Monitorando SO Linux com NRPE no Nagios

Olá amigos, continuando nossa série de artigos sobre o Nagios hoje vou mostrar como utilizar o programa NRPE.

O NRPE possibilita executarmos plugins locais do Nagios (check_procs, check_disk, check_load, etc) remotamente, Eu chamo de plugins locais aqueles que não disponibilizam a opção de IP ou Hostname, logo só funciona localmente. Lembrando também que neste artigo o NRPE só vale para monitorarmos Linux ok? 😛

Pense na seguinte situação: Preciso monitorar quantos processos temos rodando de um determinado Programa, por exemplo o DHClient3?

Podemos utilizar o check_procs, mas tente verificar as opções do mesmo:

# ./check_procs –help

Usage:check_procs -w <range> -c <range> [-m metric] [-s state] [-p ppid]
[-u user] [-r rss] [-z vsz] [-P %cpu] [-a argument-array]
[-C command] [-t timeout] [-v]

Cade a opção IP para que eu possa informar em qual servidor eu quero monitorar?
Resposta: Não Existe!

Para resolver este caso precisamos instalar o NRPE no Servidor Nagios e no Cliente Linux.

Esta imagem vale mais que mil palavras 🙂

Para Maiores informações sobre o NRPE acesse o site:

http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf

## Blz, Segue como fiz a instalação no nosso servidor Nagios (Siga todos os Artigos 🙂 )

cd /usr/src/
wget http://www.openssl.org/source/openssl-0.9.8o.tar.gz
wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz

## Agora vamos descompactar e começar a compilação da dependência

tar zxvf openssl-0.9.8o.tar.gz
cd openssl-0.9.8o

./config
make
make install
cp libcrypto.a /usr/local/lib/
cd /usr/lib/
ln -s libssl.so.0.9.8 libssl.so

## Chegou a vez do NRPE

cd /usr/src/
tar zxvf nrpe-2.12.tar.gz
cd nrpe-2.12

./configure
make all
make install
cp src/nrpe /usr/local/nagios/bin/
cp src/check_nrpe /usr/local/nagios/libexec/
cp sample-config/nrpe.cfg /usr/local/nagios/etc/

## Ok, Lembrando que em caso de erro precisa analisar o erro, verificar se falta alguma dependência e etc.
## OBS: De qualquer forma se você esta seguindo todos os artigos não vai dar erro, pois, fiz questão de documentar todos os passos 😛

## Continuando, agora vamos configurar o arquivo nrpe.cfg

vim /usr/local/nagios/etc/nrpe.cfg

## Procure as linhas e insira os dados abaixo e salve o arquivo

server_address=IP-do-Nagios

command[check_dhclient3]=/usr/local/nagios/libexec/check_procs -c  1:8  -C  dhclient3

# OBS: O comando acima significa que estamos procurando pelo processo dhclient3 no linux, tem que ter de 1 até 8 processos para o nagios considerar normal, se não tiver processo rodando ou + de 8 processos com o nome dhclient3 o nagios ira alarmar.

## Outra observação é que neste mesmo arquivo contém como deve ser feito para monitorar load, disks, etc

## Continuando denovo :-). Agora vamos iniciar o processo

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

## Verifique se o processo esta rodando

ps aux | grep nrpe

## OK, O seu servidor esta pronto e escutando a porta 5666 TCP

——————— Instalação e Configuração do NRPE no Cliente Linux ———————————

Chegou a vez do seu cliente Linux OK? Segue abaixo como Configurar no Debian

## Instalando o minimo

aptitude install make g++-4.3 g++ bzip2 vim

# OBS: Aceite as dependências 😉 ok

## Ok pessoal, Mas se for no Centos 5 como faço?

yum install gcc gcc-c++ make openssl openssl-devel

## Daqui por diante vale para Debian 5 e o CentOS 5

cd /usr/src/
wget http://www.openssl.org/source/openssl-0.9.8o.tar.gz
wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz

##Agora vamos descompactar e começar a compilação da dependência

tar zxvf openssl-0.9.8o.tar.gz
cd openssl-0.9.8o

./config
make
make install
cp libcrypto.a /usr/local/lib/
cd /usr/lib/
ln -s libssl.so.0.9.8 libssl.so

## Chegou a vez do NRPE

mkdir -p /usr/local/nagios/etc
mkdir /usr/local/nagios/libexec
mkdir /usr/local/nagios/bin

cd /usr/src/
tar zxvf nrpe-2.12.tar.gz
cd nrpe-2.12

## Antes da compilação é necessário criar o usuario nagios

adduser nagios

./configure
make all
make install
cp src/nrpe /usr/local/nagios/bin/
cp src/check_nrpe /usr/local/nagios/libexec/
cp sample-config/nrpe.cfg /usr/local/nagios/etc/

## Continuando, agora vamos configurar o arquivo nrpe.cfg

vim /usr/local/nagios/etc/nrpe.cfg

## Procure as linhas e insira os dados abaixo e salve o arquivo

allowed_hosts=IP-do-Nagios

command[check_dhclient3]=/usr/local/nagios/libexec/check_procs -c  1:8  -C  dhclient3

## Inicie o NRPE no seu cliente

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

## Recomendo que insira esta mesma linha no arquivo rc.local

vim /etc/rc.local

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

## Agora é necessário copiar o plugin check_procs do servidor nagios

cd /usr/local/nagios/libexec/
scp root@IP:/usr/local/nagios/libexec/check_procs .

# Ok, agora é necessário configurar o nosso Servidor Nagios

—————————— Acesse o Servidor Nagios —————————————

cd /usr/local/nagios/etc/linux/

vim debian.cfg

 ### ------------ Definições de Host ----------------------------------###

define host{
name                            TemplateHostLinux
alias                           TemplateHostLinux
check_command                   check-host-alive
max_check_attempts              3
check_interval                  5
active_checks_enabled           1
passive_checks_enabled          0
check_period                    24x7
retain_status_information       1
contact_groups                  Admin
notification_interval           0
notification_period             24x7
notification_options            d,u,r
register                        0
}

define host{
host_name               SRV-Linux-Debian
use                     TemplateHostLinux
alias                   Servidor Linux
address                 192.168.0.103
}

### ----------- Definições de Serviço ----------------------------- ####

define service{
name                            Ping-Linux
service_description             Ping-Linux
is_volatile                     0
check_command                   check_ping!300,20%!900,52%!
max_check_attempts              3
normal_check_interval           5
retry_check_interval            5
active_checks_enabled           1
passive_checks_enabled          0
check_period                    24x7
retain_status_information       1
notification_interval           0
notification_period             24x7
notification_options            u,c,r
register                        0
}

define service{
host_name                       SRV-Linux-Debian
service_description             Ping-Linux
use                             Ping-Linux
contact_groups                  Admin
}

### Ok, agora vem a novidade NRPE

 ### Definindo as configurações do comando NRPE 

define command{
command_name    check_nrpe
command_line    /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 25
}

define service{
name                            NRPE_DHClient
service_description             NRPE_DHClient
is_volatile                     0
check_command                   check_nrpe!check_dhclient3 
max_check_attempts              2
normal_check_interval           5
retry_check_interval            5
active_checks_enabled           0
passive_checks_enabled          1
check_period                    24x7
retain_status_information       1
notification_interval           0
notification_period             24x7
notification_options            u,c,r
register                        0
}

define service{
host_name                        SRV-Linux-Debian
service_description              NRPE_DHClient
use                              NRPE_DHClient
contact_groups                   Admin
}

## Ok, Agora basta testar as suas configurações e reload no Nagios

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

/etc/init.d/nagios reload

## Acesse a interface do Nagios

http://IP/nagios/

## Dica: Para testar toda a configuração do NRPE pode ser executado manualmente no servidor Nagios

/usr/local/nagios/libexec/check_nrpe -H IP -c check_dhclient3

## Segue como deve ser a saída no shell

PROCS OK: 1 process with command name ‘dhclient3’

### Caso não tenha sucesso no teste, faça um checklist das permissões dos arquivos e serviços iniciados

# Servidor Nagios:

servidornagios:~# ps aux | grep nrpe
nagios    2209  0.0  0.0   4024   904 ?        S<s  16:32   0:00 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

servidornagios:~# ls -la /usr/local/nagios/libexec/check_nrpe
-rwxrwxr-x 1 nagios nagios 65328 Out 19 19:06 /usr/local/nagios/libexec/check_nrpe

servidornagios:~# ls -la /usr/local/nagios/libexec/check_procs
-rwxr-xr-x 1 nagios nagios 81877 Set 19 20:02 /usr/local/nagios/libexec/check_procs

### Arquivo nrpe.cfg (sem comentarios e linhas em branco)

servidornagios:~# cat /usr/local/nagios/etc/nrpe.cfg | grep -v “^#” | grep -v “^$”

log_facility=daemon
pid_file=/var/run/nrpe.pid
server_port=5666
server_address=10.0.3.168
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=127.0.0.1
dont_blame_nrpe=0
debug=0
command_timeout=60
connection_timeout=300
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_dhclient3]=/usr/local/nagios/libexec/check_procs -c 1:8 -C dhclient3

OBS: Após qualquer alteração no arquivo de configuração do NRPE é necessário reiniciar o serviço.

## Cliente Linux (no meu caso Debian)

cliente:~# ps aux | grep nrpe
nagios    2463  0.0  0.2   4024   912 ?        S<s  16:36   0:00 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

cliente:~# ls -la /usr/local/nagios/libexec/check_nrpe
-rwxrwxr-x 1 nagios nagios 65328 Out 20 00:11 /usr/local/nagios/libexec/check_nrpe

cliente:~# ls -la /usr/local/nagios/libexec/check_procs
-rwxr-xr-x 1 root nagios 81877 Out 20 01:34 /usr/local/nagios/libexec/check_procs

### Arquivo nrpe.cfg (sem comentarios e linhas em branco)

cliente:~# cat /usr/local/nagios/etc/nrpe.cfg | grep -v “^#” | grep -v “^$”

log_facility=daemon
pid_file=/var/run/nrpe.pid
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=10.0.3.168
dont_blame_nrpe=0
debug=0
command_timeout=60
connection_timeout=300
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_dhclient3]=/usr/local/nagios/libexec/check_procs -c 1:8 -C dhclient3 

.
.
.
🙂
Luciano Maia Cirilo
LPIC-3
www.nagiosnapratica.com.br

Anúncios

, ,

  1. #1 por Leandro em outubro 20, 2010 - 12:17 pm

    Valeu pelo post! Muito bom!

  2. #2 por Leandro Oliveira em janeiro 20, 2011 - 12:01 pm

    Segui tudo certinho e está tudo funcionando corretamente, porém não consegui monitorar nos hosts linux consumo de CPU e Memória. Tem plugin para monitorar Memória e CPU dos clientes Linux?

    • #3 por anita em janeiro 26, 2011 - 10:19 am

      dentro do nrpe tem a configuração para monitorar a memoria olhe no nrpe.cfg

  3. #4 por Dhiogo Santos em abril 20, 2011 - 4:25 pm

    Luciano,

    Parabéns pelo post cara. Muito bom.

    Preciso de sua ajuda no seguinte problema:

    Quando tento iniciar o serviço do nrpe com o comando :

    usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

    Me é retornado a seguinte mensagem:

    exec(): 0509-036 Cannot load program /usr/local/nagios/bin/nrpe because of the following errors:
    0509-150 Dependent module /usr/lib/libssl.a(libssl.so.0.9.7) could not be loaded.
    0509-152 Member libssl.so.0.9.7 is not found in archive

    • #5 por Nagios na Prática! em abril 20, 2011 - 4:38 pm

      Olá Dhiogo,

      O problema esta na dependencia, tente executar os procedimentos novamente:

      tar zxvf openssl-0.9.8o.tar.gz
      cd openssl-0.9.8o

      ./config
      make
      make install
      cp libcrypto.a /usr/local/lib/
      cd /usr/lib/
      ln -s libssl.so.0.9.8 libssl.so

      por ultimo execute:

      ldconfig

      Boa sorte!

      Att.
      Luciano Maia Cirilo
      LPIC-3
      http://www.NagiosNaPratica.com.br

  4. #9 por Lucas em abril 26, 2011 - 5:57 pm

    Boa tarde Luciano, tenho 2 dúvidas e se puder me dar uma luz agradeceria muito. Bom lá vai:
    Por exemplo, tenho uma monitoração padrão para disco, seria possível mostrar o ultimo “status Information” do disco? Vou tentar explicar melhor: Queria que ele me mostrasse qual foi o ultimo valor para free, se agora o alerta mudasse para 2,00GB free, queria que no final da linha me aparecesse o ultimo valor. Pra você visualizar melhor:
    c: – total: 40,00 Gb – used: 37,54 Gb (94%) – free 2,46 Gb (6%) – “Aqui viria o ultimo valor de free”. Espero ter conseguido me expressar direito.

    A 2ª dúvida seria referente a monitorar o MS SQL através de alguns selects, não seria apenas monitorar o serviço, mas sim efetuar selects e tratar essas saidas em warning ou critical, pesquisei bastante, mas não encontrei uma forma ideal de fazer isso. O nsclient me permitiria fazer isso?

    Se você conseguir me dar uma ajuda, ficarei muito grato mesmo…

    Grande abraço.

  5. #12 por saulo em maio 24, 2011 - 3:28 pm

    olá!

    Acho que tem um pequena erro de digitação em:

    ### Definindo as configurações do comando NRPE
    na linha 12

    ao invés de:
    check_command check_nrpe!check_dhclient3 max_check_attempts 2

    seria:
    check_command check_nrpe!check_dhclient3
    max_check_attempts 2

    correto?

  6. #14 por Carlos Fernando em janeiro 9, 2012 - 11:15 am

    Bom dia!

    Estou com uma dificuldade para incluir servidores Linux para monitoramento em meu servidor Nágios. Executei todos os passos descritos neste tutorial, porém ao executar o comando ( /usr/local/nagios/libexec/check_nrpe -H IP -c check_dhclient3 ) para chegar a comunicação, ele me retorna com o erro ( CHECK_NRPE: Error – Could not complete SSL handshake. ).

    Já verifiquei alguns comentários na internet, porém sem sucesso.

    Poderia me ajudar?

    Obrigado,
    Carlos Fernando

  7. #15 por Rodrigo em março 9, 2012 - 8:52 am

    Bom dia Luciano,

    Tenho configurador um serviço NRPE rodando com Nagios, estou precisando monitorar alguns equipamentos com Windows. Fiz a instalação do nrpe_nt nesses servidores…até tenho um retorno das checagens de disco / memoria / cpu, porem as informacoes vem apenas no campo “Status Information” do Nagios … o campo “Performance Data” fica vazio ..dessa forma não consigo gerar os gráficos para acompanhamento !!! Já nos servidores Linux o “Performance Data” é preenchido !!

    Você tem alguma ideia .. dica de onde estou errando !?

    Obrigado,
    Rodrigo

  8. #16 por Mairon Costa em maio 28, 2012 - 4:32 pm

    Boa tarde,

    Configurei meu nrpe normalmente aqui, mas qd vou monitorar um serviço na maquina da remota, da o seguinte erro:

    NRPE: Command ‘check_track’ not defined

    por um acaso vc saberia o q pode ser??
    sera q tem algum erro no meu nrpe??

    Obrigado…

    Mairon Costa

  9. #17 por Danilo Bondezan em junho 20, 2012 - 4:44 pm

    pra quem usa x64

    apt-file search libssl | grep libssl-dev

    busca aonde esta o arquivo

    e configura usando as opções abaixo.

    ./configure –with-ssl=/usr/bin/openssl –with-ssl-lib=/usr/lib/x86_64-linux-gnu

  10. #18 por Rodrigo Oleriano em junho 29, 2012 - 1:37 pm

    SOLUÇÃO MAIS APROPRIADA:

    Cara, não precisa de plugin nenhum, vcs tão tudo viajando…….dá certo, pode dar, mas o Linux e o nagios já se conversam.

    Existe um comando no arquivo commands.cfg que é o PROC:

    Eu modifiquei o arquivo, criei um comando a mais, chamado check_local_procs1, veja abaixo como ficou:

    # ‘check_local_procs’ command definition
    define command{
    command_name check_local_procs1
    command_line $USER1$/check_procs -c $ARG1$ -C $ARG2$
    }

    E depois eu configurei o HOST no arquivo localhost:

    define host{
    use linux-server
    host_name Nagios
    alias Nagios
    address 127.0.0.1
    }

    e depois dentro do mesmo arquivo eu criei o Serviço:

    define service{
    use local-service ; Name of service template to use
    host_name Nagios
    service_description Processess test
    check_command check_local_procs1!1:30!top!
    normal_check_interval 3
    retry_check_interval 1
    }

    ONDE ele vai pegar o Host Nagios, procurar pelo Serviço chamado TOP, se ele achar, OK, senão achar, CRITICAL.

    Tem muitas opções neste procs, dá a linha de comando ./usr/local/nagios/libexec/check_procs –help que vc verá as variaveis que vc pode usar…..

    Neste caso, o Nagios ficou monitorando o serviço, quando é fechado, ele dá critical, existem outras variavies como, depois de tanto tempo, ele dá critico, pode fazer ao contratio, se ele achar, ele da critical, senão não, enfim, existe uma váriavel de coisas que vc pode fazer com nagios, aqui eu monitoro até impressoras Brothers, cannon, etc….editando tudo no Nagios e achando os plugins na net, e outra dica muito boa, mantenha seu Nagios dando refresh nos frames a cada 3 segundos, pois no meu caso eu uso uma TV, e ele fica dando refresh a cada 3 segundos, vi todos na net instalando plugin pra isso, não precisa, procure o arquivo nagios.cgi e mude

    # REFRESH RATE
    # This option allows you to specify the refresh rate in seconds
    # of various CGIs (status, statusmap, extinfo, and outages).

    refresh_rate=3 ;(QUANTOS SEGUNDOS VC QUER???)

    EU to manjando um pouco do baguio….rsrsrs abracos meu email oleriano # gmail, abracos

  11. #19 por Antonio Vasconcelos em agosto 21, 2012 - 7:23 pm

    Ola..
    Alguem pode me ajudar com um problema…..
    Estou tentando monitorar um processo que tem “appends” no nome por exemplo :
    gnome-pty
    gnome-power
    gnome-settings
    polkit-gnome

    Quando procuro por “comandos” gnome – o NRPE retorna – “PROCS CRITICAL: 0 processes with command name ‘gnome’

    Tem alguma configuração para a busca NÃO EXATA do nome do processo.

    Obrigado
    Antonio Vasconcelos

  12. #20 por Ricardo Rocha em agosto 22, 2013 - 5:03 pm

    Olá ao tentar executar o make dentro da pasta nrpe volta a seguinte mensagem:
    make: *** Nenhum alvo indicado e nehum arquivo make encontrado”
    Poderiam me ajudar?

  13. #21 por rmellonh em agosto 27, 2013 - 5:46 pm

    Boa tarde…configurei aqui na empresa o nagios e em um do clientes tambem…ao monitorar pela web o cliente aparece essas mensagens..

    (Return code of 126 is out of bounds – plugin may not be executable)

    (Return code of 127 is out of bounds – plugin may be missing)

    mas pela linha de comando se executar os check, vai direitinho…alguem tem uma ideia?

  14. #22 por Leonardo em abril 8, 2016 - 12:38 pm

    Alguém sabe como trazer todos os processos windows w Linux em execução para o Icinga ?

  15. #23 por Sidnei Weber em novembro 28, 2016 - 9:37 pm

    Tem necessidade de colocar os comandos do nrpe.cfg da maquina cliente?

    • #24 por Nagios na Prática! em dezembro 5, 2016 - 4:07 pm

      Olá Sidnei,

      Tem sim, do lado cliente é necessário cadastrar o IP do servidor nagios e os comando que o nagios vai executar.

      Aproveitando, estou com um novo curso de nagios na versão mais recente no meu canal..

      • #25 por Sidnei Weber em dezembro 6, 2016 - 1:47 pm

        Show, certo que irei assistir. Obrigado

  16. #26 por Caroline Kieling em maio 11, 2017 - 4:49 pm

    Olá! Estou com apenas uma pequena dúvida:

    Fiz o script e o mesmo funciona, tanto se executado via texto no cliente quanto se executado via texto no servidor Nagios.
    Ele também realiza as checagens programadas nos arquivos de config. e exibe no browser o status correto (OK, WARNING ou CRITICAL). Ele só não consegue exibir a mensagem…

    É uma mensagem de 3 linhas mas eu tenho outros scripts (que eu baixei) que retornam um n° maior de linhas e ainda assim a interface web consegue exibir o resultado.

    Alguma ideia do que possa ser?

    • #27 por Nagios na Prática! em maio 12, 2017 - 2:24 pm

      Oi Caroline,

      Em shell script a saida eu sempre uso o echo! por exemplo

      echo “Script OK”

      De qualquer forma, fiz uma video aula sobre esse assunto…

      Assine o canal e se possível me ajude a divulgar! 😉

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: