Você está na página 1de 23

Documentação do NRPE

Traduzido/adaptado e atualizado por Adriano Vieira

Última atualização: 08/03/2010

NOTA.............................................................................................................................. 2
1. INTRODUÇÃO ........................................................................................................... 3
a) Propósito .............................................................................................................. 3
b) Visão Geral ao Design do NRPE ......................................................................... 3
2. EXEMPLOS DE USO ................................................................................................. 5
a) Checagens Diretas .............................................................................................. 5
b) Checagens Indiretas ............................................................................................ 5
3. INSTALAÇÃO ............................................................................................................ 6
a) Pré-requisitos ....................................................................................................... 6
b) Configurações pré-assumidas ............................................................................. 6
c) Instalação na máquina remota............................................................................. 7
d) Instalação no host de monitoramento ................................................................ 12
4. CUSTOMIZANDO SUA CONFIGURAÇÃO ............................................................. 18
a) Configuração na máquina remota...................................................................... 18
b) Configuração no host de monitoramento ........................................................... 19
5. ATUALIZANDO ........................................................................................................ 20
a) Atualizando o host de monitoramento ............................................................... 20
b) Atualizando as máquinas remotas ..................................................................... 21
6. RESOLUÇÃO DE PROBLEMAS ............................................................................. 22
Documentação do NRPE
______________________________________________________

NOTA
Este documento é resultante da tradução/atualização do documento oficial sobre o NRPE (Nagios
Remote Plugin Executor), que pode ser encontrado em http://nagios.org. Todos os fatores
informativos básicos do documento oficial foram mantidos, sendo que, os que necessitavam de
atualizações como: imagens, modelos, regras de firewall, arquivos de definição de objeto e
informações relativas ao Sistema Operacional específico, foram atualizados.

Até a finalização deste documento, a documentação original do NRPE tinha sua última atualização
datada em maio de 2007 e utilizava, como sistema operacional de exemplo, o Fedora Core 6. Esta
documentação, atualizada, utiliza o Ubuntu 9.10 como sistema operacional a ser usado para a
instalação e configuração do NRPE, bem como o Ubuntu Server 8.04 como o host que suporta o
servidor Nagios.

Detalhe Importante: Os arquivos de configuração, disponíveis neste guia (tal como no guia
oficial), levam em conta que você seguiu o modelo de instalação proposto no ‘Nagios QuickStart
Installation Guide’, que está disponível em http://nagios.sourceforge.net/docs/3_0/. Caso esteja
testando o NRPE e ainda não possua muita experiência com o Nagios, recomendo a instalação
do Nagios utilizando o QuickStart Guide (Guia de Início Rápido).

Qualquer dúvida e/ou sugestão de tradução/adaptação, por favor, contate-me por e-mail no
endereço: mailto:emaildoadrianovieira@gmail.com

Visite também: http://beaglenetwork.blogspot.com

Adriano Vieira
Membro da equipe Beagle Network TI
Aluno do Instituto Federal do Espírito Santo – Tecnólogo em Redes de Computadores

2
Documentação do NRPE
______________________________________________________

1. INTRODUÇÃO
a) Propósito

O complemento NRPE é desenhado para permitir que você execute os plugins do


Nagios em máquinas Linux/Unix remotas. A principal razão para isso é permitir que o
Nagios monitore recursos “locais” (como carga da CPU, uso de memória, etc) em
máquinas remotas. Uma vez que recursos públicos não são expostos para máquinas
externas, é necessário um agente, como o NRPE, instalado diretamente nas máquinas
Linux/Unix remotas.

Nota: é possível executar plugins em máquinas Linux/Unix remotas através de SSH.


Existe um plugin chamado check_by_ssh que lhe permite fazer isso. Usar SSH é mais
seguro que o uso do complemento NRPE, mas isto também impõe altas taxas de
overhead na CPU, tanto no servidor de monitoramento quanto na máquina
monitorada. Isto pode se tornar um problema quando você começar a monitorar
centenas ou milhares de máquinas. Muitos administradores Nagios optam pela
utilização do NRPE, devido a baixa carga imposta por ele.

b) Visão Geral ao Design do NRPE

O complemento NRPE é composto de duas frentes:

o O plugin check_nrpe, que reside no host de monitoramento


o O daemon NRPE, que roda sobre a máquina Linux/Unix remota

Quando o Nagios precisa monitorar um recurso ou serviço em uma máquina


Linux/Unix remota, ele:

 Executará o plugin check_nrpe, dizendo qual o serviço deverá ser checado


 O plugin, então, contata o daemon NRPE na máquina remota, sob uma
conexão protegida por SSL (tal método é opicional)
 O daemon NRPE roda o plugin apropriado para checar o serviço, ou recurso,
requerido
 Os resultados obtidos são passados pelo daemon NRPE de volta ao plugin
check_nrpe, que então os retorna para o processo do Nagios.

3
Documentação do NRPE
______________________________________________________
Nota: Para o funcionamento do daemon NRPE, é necessária a instalação dos plugins
do Nagios na máquina Linux/Unix remota. Sem estes plugins, o daemon ficaria
incapacitado de realizar qualquer monitoramento.

4
Documentação do NRPE
______________________________________________________

2. EXEMPLOS DE USO
a) Checagens Diretas

A forma mais usual do complemento NRPE consiste em monitorar recursos “locais” e


“privados”, na máquina Linux/Unix remota. Isto inclui recursos como carga da CPU,
uso de memória, uso de swap, usuários logados atualmente, uso de disco, estado de
processos, etc.

b) Checagens Indiretas

Você também pode usar o complemento NRPE para checar indiretamente serviços e
recursos “públicos”, de servidores remotos, que podem não estar diretamente visíveis
ao servidor de monitoramento (Nagios). Por exemplo, se o host remoto, o qual o
NRPE daemon e os plugins do Nagios estão instalados, pode “conversar” com um
servidor web remoto (mas sua implementação do Nagios não), você pode configurar o
daemon NRPE para permitir que o servidor web seja monitorado indiretamente. O
daemon NRPE estará, essencialmente, agindo como um Proxy neste caso.

5
Documentação do NRPE
______________________________________________________

3. INSTALAÇÃO
Para usar o complemento NRPE, você precisará realizar algumas tarefas tanto no
servidor de monitoramento, quando na máquina Linux/Unix remota onde o daemon
NRPE será instalado. Ambas as tarefas serão, separadamente, abordadas aqui.

Nota: Estas instruções são baseadas em um host remoto rodando Ubuntu 9.10.
Algumas convenções, comandos, etc, podem variar, dependendo da distribuição Linux
(ou variante UNIX) a ser utilizada, logo, as instruções dadas aqui podem ter de passar
por pequenas alterações para seu caso, em específico.

a) Pré-requisitos

Para que seja possível seguir este guia de instalação, será necessário:

o Privilégios de root na máquina Linux/Unix remota


o Acesso a conta de usuário do Nagios no host de monitoramento.

b) Configurações pré-assumidas

Estas instruções assumem que você está instalando o NRPE em um sistema que
suporta TCP wrapper, e que será instalado o super-servidor xinetd (será instalado
neste guia). Se você possui um sistema mais antigo, que rode inetd (ao invés de
xinetd) e/ou não suporta TCP wrappers, ou você queira rodar o daemon NRPE sem
inetd ou xinetd, leia os seguintes arquivos para informações de como instalar o
complemento (ambos são encontrados no diretório principal de sua distribuição do
NRPE):

o README (inglês)
o SECURITY (inglês)

[continua na próxima página]

6
Documentação do NRPE
______________________________________________________
c) Instalação na máquina remota

Estas instruções devem ser realizadas na máquina Linux/Unix remota, na qual será
instalado o daemon NRPE. Nas configurações abaixo, serão instalados os plugins do
Nagios e o daemon NRPE.

i. Criando informações de conta

Troque para o usuário root.

sudo -s

Crie um novo usuário ‘nagios’ e dê-lhe uma senha:

useradd nagios

passwd nagios

ii. Atualizando os repositórios

Certifique-se de que sua lista de repositórios esteja atualizada.

apt-get update

iii. Instalando a biblioteca SSL (opcional)

Embora de caráter opcional, demonstro, neste guia, a instalação das bibliotecas


relativas ao protocolo SSL, em ambas as máquinas envolvidas, para prover uma
comunicação segura entre o servidor de monitoramento (Nagios) e a máquina
Linux/Unix remota (que contém o daemon NRPE).

Instale as bibliotecas.

apt-get install libssl-dev openssl

Nota: Caso opte por utilizar uma conexão segura entre o servidor de monitoramento e
seus clientes (como, neste exemplo), esteja certo de instalar as bibliotecas, em todos
os sistemas envolvidos, antes da compilação dos plugin (como está sendo feito aqui).
Caso contrário, não será validada a instalação e o protocolo não será utilizado.

iv. Instalando os Plugins do Nagios

Crie um diretório para armazenar os downloads.

mkdir ~/downloads

7
Documentação do NRPE
______________________________________________________
cd ~/downloads

Baixe o código fonte em .tar.gz, dos plugins do Nagios (visite o site do nagios em
http://www.nagios.org/download/ para obter as últimas versões estáveis). Neste guia,
será utilizada a versão 1.4.14 dos plugins.

wget http://downloads.sourceforge.net/project/nagiosplug/nagiosplug/1.4.14/nagios-
plugins-1.4.14.tar.gz

Extraia os plugins do Nagios do arquivo .tar.gz

tar xzf nagios-plugins-1.4.14.tar.gz

cd nagios-plugins-1.4.14

Compile e instale os plugins.

./configure

make

make install

Modifique as permissões para o diretório dos plugins, e para os próprios plugins

chown nagios:nagios /usr/local/nagios

chown –R nagios:nagios /usr/local/nagios/libexec

v. Instalando o xinetd

No Ubuntu 9.10 o xinetd não vem instalado por padrão. Você pode instalá-lo utilizando
o comando abaixo:

apt-get install xinetd

vi. Instalando o NRPE daemon

Baixe o código fonte em .tar.gz do complemento NRPE (visite o site do nagios em


http://www.nagios.org/download/ para obter as últimas versões estáveis). Neste guia,
será utilizada a versão 2.12.

cd ~/downloads

wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz

Extraia os arquivos.

8
Documentação do NRPE
______________________________________________________
tar xzf nrpe-2.12.tar.gz

cd nrpe-2.12

Compile o complemento NRPE

./configure

make all

Instale o plugin NRPE (para testes), o daemon e o arquivo de configuração de


exemplo do daemon.

make install-plugin

make install-daemon

make install-daemon-config

Instale o daemon NRPE como um serviço que roda sobre o xinetd

make install-xinetd

Edite o arquivo /etc/xinetd.d/nrpe e adicione o IP do servidor de monitoramento


(Nagios) à diretiva only-from. Está diretiva pode conter múltiplos endereços IP,
passados entre espaços. Este exemplo permiti acesso para o servidor de
monitoramento e para a máquina local.

nano /etc/xinetd.d/nrpe

...

only_from = 127.0.0.1 <endereço IP do Nagios>

...

Adicione a seguinte entrada para o daemon do NRPE, no arquivo /etc/services


(procure colocá-la na ordem pré-existente).

nrpe 5666/tcp # NRPE

Reinicie o serviço xinetd

service xinetd restart

vii. Testando o daemon NRPE localmente

É hora de ver se as coisas estão funcionando corretamente...

Certifique-se de que o daemon NRPE esteja rodando sobre o xinetd.

9
Documentação do NRPE
______________________________________________________
netstat –at | grep nrpe

A saída deste comando deve ser algo como a seguinte:

tcp 0 0 *:nrpe *:* LISTEN

Se assim for, ótimo! Se não, certifique-se do seguinte:

o Você adicionou a entrada nrpe ao seu arquivo /etc/services


o A diretiva only_from, no arquivo /etc/xinetd.d/nrpe, contém uma entrada para
“127.0.0.1”
o xinetd está instalado e foi corretamente iniciado
o Veja os arquivos de log e procure por referências sobre o xinetd ou nrpe e,
então, concerte qualquer problema encontrado.

Agora, certifique-se que o NRPE está funcionando adequadamente. Para fazê-lo,


execute o plugin check_nrpeque foi instalado, para o propósito de testes.

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

Como retorno, você deve receber uma string dizendo a versão do NRPE instalada,
como a seguinte:

NRPE v2.12

viii. Criando regras no firewall

Certifique-se de que o firewall local na máquina permitirá acesso ao daemon NRPE


para o(s) servidor(es) de monitoramento, e somente para ele.

iptables –I INPUT -p tcp –m tcp --dport 5666 –j DROP

iptables –I INPUT –s <IP_SERVIDOR_NAGIOS> -p tcp –m tcp --dport 5666 –j ACCEPT

Nota: Perceba que no primeiro comando acima, inserimos o IP do servidor o qual irá
fazer a requisição. Embora tenhamos definido anteriormente que o daemon NRPE
somente aceitaria requisições para os IPs cadastrados na diretiva only_from, é
interessante garantir isso também no iptables, tanto por questões de segurança
quanto desempenho. Nas regras acima, somente o servidor Nagios com o IP
cadastrado poderá obter os dados do daemon NRPE instalado.

ix. Customizando os comandos do NRPE

O arquivo de configuração de exemplo do NRPE, instalado anteriormente, possui


muitas definições de comandos que você gostará de usar para monitorar esta
máquina. As definições de comandos são usadas para (adivinha...) definir comandos
que o daemon NRPE irá executar para monitorar recursos e serviços locais. O
exemplo de definições de comandos roda alguns dos plugins que foram instalados no

10
Documentação do NRPE
______________________________________________________
passo 2. Você pode editar as definições existentes, inserir novos comandos, etc,
editando o arquivo de configuração do NRPE:

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

Mais informações sobre a customização dos comandos podem ser encontradas na


página 18, na sessão chamada “Customizando sua Configuração” (sugiro ler após
estar familiarizado com o Nagios).

Assume-se que você esteja utilizando os comandos que estão definidos. Você pode
testar alguns deles rodando os seguintes comandos:

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


/usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_zombie_procs

Até aqui, você instalou e configurou o NRPE na máquina Linux/Unix remota. Agora é
hora de instalar um componente NRPE e escrever algumas entradas em seu servidor
de monitoramento...

11
Documentação do NRPE
______________________________________________________
d) Instalação no host de monitoramento

No host de monitoramento (a máquina rodando o Nagios), você precisará realizar


algumas tarefas:

o Instalar o plugin check_nrpe


o Criar uma definição de comando do Nagios para usar o plugin check_nrpe
o Criar uma nova definição de host e serviços para monitorar a máquina remota.

Estas instruções assumem que você possui o Nagios instalado na máquina, de acordo
com o ‘Nagios Quickstart Installation Guide’, que pode ser encontrado em:
http://www.nagios.org. Os exemplos de configuração são demonstrados nos modelos
de referência. Estes modelos são definidos nos arquivos de exemplo: localhost.cfg e
commands.cfg. Estes arquivos foram instalados se você seguiu o ‘Quickstart Guide’.

i. Atualizando os repositórios

Certifique-se de que sua lista de repositórios esteja atualizada.

apt-get update

ii. Instalando a biblioteca SSL (opcional)

Embora de caráter opcional, demonstro, neste guia, a instalação das bibliotecas


relativas ao protocolo SSL, em ambas as máquinas envolvidas, para prover uma
comunicação segura entre o servidor de monitoramento (Nagios) e a máquina
Linux/Unix remota (que contém o daemon NRPE).

Para instalar as bibliotecas, execute o seguinte comando:

apt-get install libssl-dev openssl

Nota: Caso opte por utilizar uma conexão segura entre o servidor de monitoramento e
seus clientes (como, neste exemplo), esteja certo de instalar as bibliotecas, em todos
os sistemas envolvidos, antes da compilação dos plugins (como está sendo feito neste
exemplo). Ambos os sistemas (servidor e cliente) devem ter seus plugins compilados,
com as bibliotecas SSL, para que seja possível a comunicação segura.

iii. Instalando o plugin check_nrpe

Troque para o usuário root.

sudo -s

Crie um diretório para armazenar os downloads

12
Documentação do NRPE
______________________________________________________
mkidr ~/downloads

cd downloads

Baixe o código fonte em .tar.gz do complemento NRPE (visite o site do nagios em


http://www.nagios.org/download/ para obter as últimas versões estáveis). Neste guia,
será utilizada a versão 2.12.

wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz

Extraia os arquivos.

tar xzf nrpe-2.12.tar.gz

cd nrpe-2.12

Compile o complemento NRPE

./configure

make all

Instale o plugin NRPE.

make install-plugin

iv. Testando a comunicação com o daemon NRPE

Certifique-se que o plugin check_nrpe possa se comunicar com o daemon NRPE, na


máquina remota. Substitua <”IP_MÁQUINA_REMOTA”>, no comando abaixo, pelo
endereço IP da máquina remota onde o daemon NRPE está instalado.

/usr/local/nagios/libexec/check_nrpe -H <IP_MÁQUINA_REMOTA>

Como retorno, você deve receber uma string dizendo a versão do NRPE instalada,
como a seguinte:

NRPE v2.12

Se o plugin retornar um ‘timeout error’, faça o seguinte:

o Certifique-se de que não existe um firewall, entre o servidor de monitoramento


e o cliente remoto, bloqueando a comunicação
o Certifique-se de que o daemon NRPE está instalado corretamente sobre o
xinetd
o Certifique-se de que a máquina remota não possua regras de iptables que
proíbam o servidor de monitoramento de acessar o daemon NRPE

v. Criando uma definição de comando

13
Documentação do NRPE
______________________________________________________
Você precisará criar uma definição de comando em um de seus arquivos de
configuração do Nagios para usar o check_nrpe. Abra o arquivo de exemplo
commands.cfg para edição...

nano /usr/local/nagios/etc/objects/command.cfg

Adicione a seguinte definição para o arquivo:

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

Agora você está apto a adicionar, na configuração do Nagios, serviços a serem


monitorados na máquina remota...

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

Você precisará criar algumas definições de para monitorar a máquina Linux/Unix


remota. Estas definições, que nada mais são do que descrições dos serviços a serem
monitorados em uma máquina ou um grupo delas, são chamadas de definições de
objetos. Elas podem ser escritas em um arquivo novo (definido por você) ou então,
adicionadas a um arquivo de configuração de objeto pré-existente.

É uma boa prática criar um novo modelo para cada tipo diferente de host que você
queira monitorar. Isso evidência diferenças e preferências de monitoramento para
cada tipo de host.

Vamos criar um novo modelo para 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
}

14
Documentação do NRPE
______________________________________________________
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”). O modelo ‘generic-host’ pode ser encontrado no arquivo ‘templates.cfg’,
disponível quando você instala o Nagios seguindo o ‘Nagios QuickStart Installation
Guide’.

Agora, definiremos um novo 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’):

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, 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.

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
}

15
Documentação do NRPE
______________________________________________________
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
}

Estas são as definições de serviço básicas para o monitoramento da máquina remota.


Caso queira adicionar mais serviços, para serem monitorados, leia a sessão
“Customizando sua Configuração”, na página 18.

vii. 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

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

Uma vez que queira monitorar mais serviços na máquina remota, é sugerido que você
leia a próxima sessão também.

Leia a sessão 5 para informações de como atualizar sua versão do NRPE. É rápido como
um estalar de dedos.

17
Documentação do NRPE
______________________________________________________

4. CUSTOMIZANDO SUA CONFIGURAÇÃO


Você pode querer monitorar mais serviços na máquina Linux/Unix remota, do que
aqueles descritos nesta documentação. Isto é fácil de fazer. =D

A qualquer momento que você desejar monitorar um novo serviço em uma máquina
remota, usando o complemento NRPE, você tem de fazer duas coisas:

1. Inserir uma nova definição de comando ao arquivo nrpe,cfg na máquina


remota, correspondente ao plugin.
2. Adicionar uma nova definição de serviço à sua configuração do Nagios, no
servidor de monitoramento.

Suponhamos que você queira monitorar o uso da memória swap na máquina


Linux/host remota. Abaixo estão os passos necessários:

a) Configuração na máquina remota

Você pode utilizar o plugin check_swap para monitorar o uso de swap na máquina.
Assumindo que você seguiu as instruções neste documento, o plugin check_swap já
deve estar instalado em /usr/local/nagios/libexec/.

Entre na máquina remota usando seu usuário nagios.

Rode o plugin check_swap manualmente e treine as opções na linha de comando para


especificar os alertas desejados e os espaços limites entre os níveis de alerta
(CRITICAL e WARNING). Certifique-se que a linha de comando retorne a saída que
você deseja do plugin. Para este exemplo, digamos que você queira um alerta crítico
(CRITICAL) se o espaço livre, na memória swap, for menor que 10% do total, e um
alerta de aviso (WARNING) se o espaço livre for menor que 20%. O comando abaixo
faria isso:

/usr/local/nagios/libexec/check_swap –w 20% -c 10%

Agora que você conhece a linha de comando que deve ser executada, abra o arquivo
de configuração do NRPE.

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

Adicione uma nova definição de comando ‘check_swap’ que use a linha de comandos
mostrada acima, e salve o arquivo.

command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%

Se você estiver rodando o daemon NRPE como um daemon autônomo, você precisará
reiniciá-lo. Se você estiver o daemon sobre o super-servidor inetd/xinetd, você não
precisa fazer nada mais.

18
Documentação do NRPE
______________________________________________________

b) Configuração no host de monitoramento

Na máquina de monitoramento, você precisa definir um novo serviço para monitorar o


uso de swap na máquina remota. Adicione a seguinte entrada à um dos seus arquivos
de configuração de objeto.

define service{
use generic-service
host_name Ubuntu-maq1
service_description Uso de Swap
check_command check_nrpe!check_swap
}

Note que o parâmetro “check_swap” está sendo passado à definição do comando


check_nrpe. Isto fará com que o daemon NRPE rode o check_swap que foi definido,
no passo anterior, no arquivo nrpe.cfg, presente na máquina remota.

Agora, verifique seus arquivos de configuração do Nagios e, então, reinicie-o.

/usr/local/nagios/Bin/nagios –v /usr/local/nagios/etc/nagios.cfg

service nagios restart

Pronto. Você está agora monitorando um novo serviço na máquina remota utilizando
NRPE. Quaisquer outros serviços que queira monitorar, basta seguir os mesmos
passos anteriores.

19
Documentação do NRPE
______________________________________________________

5. ATUALIZANDO
Em algum momento você irá querer atualizar sua versão do complemento NRPE. O
processo de atualização é particularmente simples. Aqui vão os detalhes...

a) Atualizando o host de monitoramento

No host de monitoramento (a máquina que roda o Nagios), você somente precisará


atualizar o plugin check_nrpe. Faça o seguinte:

Entre no sistema como um usuário nagios e crie um diretório para armazenar os


downloads (caso ainda não tenha sido criado).

mkdir ~/downloads

cd ~/downloads

Baixe o código fonte em .tar.gz do complemento NRPE (visite o site do nagios em


http://www.nagios.org/download/ para obter as últimas versões estáveis). Até a data
deste documento, a versão corrente do NRPE era 2.12

wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz

Extraia os arquivos.

tar xzf nrpe-2.12.tar.gz

cd nrpe-2.12

Compile o complemento NRPE

./configure

make all

Instale o plugin NRPE

make install-plugin

Pronto… A atualização está pronto no servidor de monitoramento.

[Continua na página abaixo]

20
Documentação do NRPE
______________________________________________________

b) Atualizando as máquinas remotas

Você precisará atualizar os daemons NRPE em todas as máquinas remotas que serão
monitoradas via complemento NRPE. Faça o seguinte

Entre no sistema como um usuário nagios e crie um diretório para armazenar os


downloads (caso ainda não tenha sido criado).

mkdir ~/downloads

cd ~/downloads

Baixe o código fonte em .tar.gz do complemento NRPE (visite o site do nagios em


http://www.nagios.org/download/ para obter as últimas versões estáveis). Até a data
deste documento, a versão corrente do NRPE era 2.12

wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz

Extraia os arquivos.

tar xzf nrpe-2.12.tar.gz

cd nrpe-2.12

Compile o complemento NRPE

./configure

make all

Instale o daemon NRPE

make install-daemon

Se você estiver utilizando o daemon como um daemon autônomo, primeiro mate o


processo antigo do daemon e, então, inicie-o novamente. Pronto… A atualização está
pronta na máquina remota.

21
Documentação do NRPE
______________________________________________________

6. RESOLUÇÃO DE PROBLEMAS
Aqui vão algumas dicas para resolver problemas com alguns dos erros mais comuns
com o complemento NRPE. Se você encontrar problemas que não são abordados
aqui, envie um email para a lista de discussões dos usuários de Nagios. Mais
informações sobre a lista podem ser encontradas em http://www.nagios.org/support/.

O plugin check_nrpe retorna "CHECK_NRPE: Socket timeout after 10 seconds"


ou "Connection refused or timed out"

Este erro pode indicar muitas coisas:

o O comando, o qual o daemon NRPE foi incumbido de executar, demorou mais


que 10 segundos para executar. Esta é a explicação mais comum para a
mensagem: "CHECK_NRPE: Socket timeout after 10 seconds". Use a opção
da linha de comando ‘-t’ para especificar um tempo de resposta maior para o
plugin check_nrpe. O exemplo a seguir aumentará, em 30 segundos, o tempo
máximo para resposta.

/usr/local/nagios/libexec/check_nrpe -H localhost -c somecommand -t 30

o O daemon NRPE não está instalado ou rodando na máquina remota.


Certifique-se que o daemon NRPE esteja rodando de forma autônoma ou
sobre um super-servidor inetd/xinetd, com os seguintes comandos:

ps axuw | grep nrpe

netstat –at | grep nrpe

o Existe um firewall bloqueando a comunicação entre o host de monitoramento


(que roda o plugin check_nrpe) e a máquina remota (que roda o daemon
NRPE). Certifique-se que as regras do firewall (iptables ou outros), rodando na
máquina remota, permitam a comunicação e certifique-se, também, de que não
exista nenhum firewall localizado entre o host de monitoramento e a máquina
remota e de que, caso exista, o mesmo esteja apto a possibilitar a troca de
informações entre as duas máquinas.

O plugin check_nrpe retorna "CHECK_NRPE: Received 0 bytes from daemon.


Check the remote Server logs for an error message."

Traduzindo a mensagem acima: “CHECK_NRPE: recebidos 0 bytes do daemon.


Verifique os logs do servidor remoto em busca de mensagens de erro”.

22
Documentação do NRPE
______________________________________________________
A primeira coisa que você deve fazer é verificar o servidor por mensagens de erro. =D,
lógico. Este erro pode ter ocorrido devido aos seguintes problemas:

o O plugin check_nrpe foi incapaz de completar um SSL handshake (troca de


informações iniciais entre partes que compartilham o protocolo SSL) com o
daemon NRPE. Uma mensagem de erro nos logs pode indicar se este foi ou
não o problema. Verifique as versões do OpenSSL que foram instaladas no
host de monitoramento e na máquina remota. Se você está utilizando uma
versão comercial do SSL na máquina remota, pode haver alguns problemas de
incompatibilidade.

O plugin check_nrpe retorna "NRPE: Unable to read output"

Este erro indica que o commando executado pelo daemon NRPE não retornou
nenhuma resposta. Isto pode ser uma indicação dos seguintes problemas:

o Uma linha incorreta no arquivo de definições de comandos. Verifique este


arquivo e certifique-se de que esteja correto.
o O plugin, especificado na linha de comando, está funcionando incorretamente.
Execute a linha de comando manualmente para ter certeza de que o plugin
retorna algum tipo de saída de texto.

23