Configurando um servidor Linux para ser monitorado pelo Nagios – NRPE




Hi (oi em inglês), tudo as pampa? Vejo muitas pessoas com dúvidas em relação a como configurar o servidor que vai ser monitora pelo Nagios, pelo menos os tutoriais que eu vi aí pelas internets não são muito claros, ele partem da premissa que o cara que quer configurar já saiba de todo o cenário.

Pois bem, existem algumas maneiras de configurar um agente no Nagios, chamamos de agente a máquina que vai ser monitorada pelo Servidor onde o Nagios está instalado. Conheço pessoas que utilizam apenas o SNMP rodando no agente e faz as requisições utilizando snmpget e outros, mas particularmente eu prefiro rodar no NRPE – Nagios Remote Plugin Executor.

Dá uma olhada na imagem:

<a href="http://blog.nicolargo.com/2007/10/surveiller-vos-serveurs-linux-avec-nagios-et-nrpe.html">Fonte da imagem</a>
Fonte

 Como funciona?!

Simples! No servidor Nagios exisitirá um plugin chamado: check_nrpe, esse plugin será executado recebendo alguns parâmetros, esse parâmetros são os itens que você deseja monitorar, exemplo: disco, memória, número de processos, processador, uptime e por aí vai… Ao receber os parâmetros ele vai fazer uma solicitação para o agente que por sua vez vai executar o plugin que retorna as informações solicitadas pelo servidor Nagios, e o NRPE do agente enviará as informações para o Servidor de Monitoramento.

Simples não é? Sendo assim, você pode criar plugins a vontade e colocar no agente, podendo ser em Python, PHP, C, ShellScript e por aí vai… Basta retornar os valores que o Nagios necessita para dizer se o serviço está OK, WARNING ou CRITICAL.

Colocando a mão na massa…

Bom, na prática as coisas ficam mais claras :), primeiro vamos baixar o NRPE, o site oficial é esse aqui, o link direto é esse aqui. Ele é compativel com todas as versões do Nagios, pelo menos eu uso até com a 4 e não dá zica.

Então faça o download do pacote e jogue no diretório /tmp do servidor que você deseja monitorar. Meu pacote ficou com o nome de nrpe-2.15.tar.gz.

Extraia o conteúdo desse arquivo:

[code]tar -zxvf nrpe-2.15.tar.gz[/code]

Após isso entre no diretório descompactado:

[code]cd nrpe-2.15[/code]

print-nrpe-diretorios
Arquivos do NRPE

Feito isso, você precisará compilar o NRPE, para isso digite os comandos:

[code]./configure[/code]

Se a configuração tiver padrão as ultimas linhas serão essas:

[code]

*** Configuration summary for nrpe 2.15 09-06-2013 ***:

General Options:
————————-
NRPE port: 5666
NRPE user: nagios
NRPE group: nagios
Nagios user: nagios
Nagios group: nagios

[/code]

Após isso, se tudo for bem sucedido, mande compilar:

[code]make all[/code]

Se tudo der certo vai aparecer: *** Compile finished ***

Pronto, agora vem uma manhazinha para facilitar a configuração em vários agentes. Precisamos criar um arquivo de configuração do NRPE, chamado nrpe.cfg.

O nrpe vai ficar rodando no agente, e ele carrega as configurações do nrpe.cfg. Nele podemos configurar parâmetros de comandos checagem, quais servidores ao poder consultá-lo entre outros.

Sendo assim vou deixar um exemplo aqui, se você baixar ESSE ARQUIVO  colocar no servidor que você quer monitorar, basta alterar de acordo com seus IPS e ele já vai funcionar.

Bom, vamos voltar ao passo a passo.

Crie uma pasta chamada nrpe no diretório opt (ou onde preferir):

[code]mkdir /opt/nrpe[/code]

Agora na pasta que você compilou o nrpe (/tmp/nrpe-2.15) , dentro do diretório src existe um binário chamado: nrpe. Copie ele para dentro do diretório /opt/nrpe.

[code]cp /tmp/nrpe-2.15/src/nrpe /opt/nrpe/[/code]

Após isso, crie um arquivo chamado nrpe.cfg dentro do diretório /opt/nrpe e cole o conteúdo do arquivo que mostrei acima, esse aqui, ou faça download do arquivo e jogue lá dentro.

Sendo assim nesse momento dentro do diretório /etc/nrpe, haverá o binário do nrpe e o arquivo de configuração.

Agora você precisa ter os plugins que no nrpe vai executar quando as informações forem solicitadas pelo servidor. Precisamos então jogar os plugins lá pra dentro. Recomendo que acesses o site do Nagios e baixe os plugins. Esse é o link.

Compilando os plugins do Nagios – No agente (Máquina a ser monitorada)

Baixe o pacote dos plugins e coloque dentro do diretório /tmp. E vamos compilar isso aí.

Crie um diretório chamado plugins dentro do /opt/nrpe

[code]mkdir /opt/nrpe/plugins[/code]

Entre no diretório tmp e extraia o conteúdo da pasta:

[code]cd /tmp[/code]

[code]tar -zxvf nagios-plugins-2.0.3.tar.gz[/code]

Entre no diretório extraído e executo o configure:

[code]cd nagios-plugins-2.0.3[/code]

[code]./configure –prefix=/opt/nrpe/plugins[/code]

Se não der erro nenhum, mande compilar

[code]make all[/code]

[code]make install[/code]

Pronto, se você der um ls na pasta /etc/nrpe/plugins, vai ver que ele colocou todos os plugins lá.

Estamos quase acabando! /, precisamos alterar o arquivo /etc/services e colocar o serviço do nrpe lá.

Edite o o arquivo /etc/services:

[code]vi /etc/services[/code]

Adicione a linha:

[code]nrpe            5666/tcp[/code]

Vai ficar assim:

services-linux-nrpe-tcp

Agora vamos colocar o serviço para rodar, é basicamente rodar o binário apontando para o arquivo de configuração, o comando fica assim:

[code]/opt/nrpe/nrpe -c /opt/nrpe/nrpe.cfg -d[/code]

Se não tiver nenhum erro no seu arquivo de configuração ele vai subir. Para verificar se ele está rodando execute:

[code]ps -ef | grep nrpe[/code]

A saída deverá ser assim:

nrpe-rodando-ps-ef

Para colocar na inicialização, esse comando eu já fiz um tutorial anterior. CLIQUE AQUI (depois volte pra cá).

PRONTO! Seu servidor está pronto para ser monitorado. Agora só falta mandar o plugin que o seu SERVIDOR NAGIOS irá executar para realizar as consultas.

Lá naquela pasta que compilamos o NRPE (/tmp/nrpe-2.15/src) você precisará, copiar o plugin check_nrpe e colocar dentro da pasta libexec lá do Nagios do seu servidor.

Agora vamos testar para ver se o servidor está com acesso ao NRPE que acabamos de configurar.

Testando o plugin NRPE pelo Servidor Nagios

Execute o plugin check_nrpe da seguinte maneira ./check_nrpe -H <IP_DO_SERVIDOR_COM_O_NRPE>, exemplo:

[code]./check_nrpe -H 192.168.10.13[/code]

O resultado dever ser algo assim:

[code]

[root@debian-gui libexec]# ./check_nrpe -H 192.168.10.13
NRPE v2.12
[root@debian-gui libexec]#

[/code]

Agora acabamos a parte de configuração da máquina a ser monitorada. Vamos configurar rapidamente o servidor Nagios.

Configurando o servidor de monitoramento para fazer consultas ao agente que está rodando o NRPE

Não sei como está seu arquivo de configuração do Nagios, ele é muito flexível então imagino que saibas o que estás fazendo e colocarei somente os trechos para exemplificar o serviço. Vou fazer o exemplo para checar quantos usuários estão logados na máquina.

O serviço vai ficar assim:

[code]
# Definição dos serviços utilizando o NRPE
define service{
use generic-service ;Herda valores genéricos para um serviço
host_name servidor-teste
hostgroup_name grupo-de-maquina
service_description Carga da CPU
check_command check_nrpe!check_load
}

[/code]

Print da configuração acima no nagios (para facilitar a leitura).

config-service-nrpe

E precisamos também fazer a configuração do comando (provavelmente é no commands.cfg). Adicione o seguinte trecho:

[code]

# ‘check_nrp’ definição de comando para a utilização do NRPE

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

[/code]

Print:

command-check-nrpe-nagios

Pra exemplificar no meu cenário com o check_nrpe os serviços que configurei de um determinado servidor foram esses:

tela-nagios-exemplo-host-nrpe

Aííí SIM! Fechou, caso você tenha problemas, dê uma analisada nos erros geralmente é coisa besta, tipo firewall bloqueando a porta 5666, ou nao adicionou a linha no /etc/services e por aí vai. Depois no Nagios é bem fácil de entender.

Qualquer dúvida comenta aí!

Abraço, valeu Luiz! Sem você isso aqui não sairia.. hahahAUHAHAAHAhAUHAUh

3 thoughts on “Configurando um servidor Linux para ser monitorado pelo Nagios – NRPE

  • novembro 13, 2014 em 1:17 pm
    Permalink

    Valeuuu André!
    No meu alguém apagou a minha linda do services que eu tinha configurado, mas depois percebi isso. hahahahaha

    Abraçooo!

    Resposta
  • janeiro 26, 2017 em 11:49 am
    Permalink

    André, bom dia.

    Estou precisando monitorar os serviços de um servidor Linux via SNMP ou NRPE. Você teria alguma materia com informações

    Resposta
  • janeiro 26, 2017 em 12:21 pm
    Permalink

    André, acho que não fui muito claro na mensagem acima.
    Tenho um servidor rodando o nagios e preciso monitorar os serviços como disk, cpu, uptime de uma máquina que está rodando o linux. se você também tiver alguma informação de como eu poderia monitorar disco Moint Point no windows.

    Grato.

    Resposta

Deixe um comentário

O seu endereço de e-mail não será publicado.