Monitorando redes e servidores com Nagios

Um dos melhores programas de monitoramento de hosts e serviços open source é o Nagios, essa incrível e, a princípio, complicada ferramenta. Existe muita documentação sobre o Nagios, porém poucas reúnem todo o processo, desde a instalação, configuração e testes. Por isso, depois de enfrentar dificuldades, resolvi publicar minhas descobertas.

[ Hits: 187.157 ]

Por: Ricardo Gavioli em 07/07/2007


Instalação dos plugins e NRPE



Plugins são os scripts que o Nagios executa (também podem ser executados manualmente) para verificar o status de um host ou serviço. Existem vários plugins neste pacote, e podemos ainda criar plugins personalizados... mas essa é uma outra história.

Os plugins ficam, por padrão, dentro de /usr/local/nagios/libexec.

Primeiro, descompacte o arquivo baixado:

# tar zxvf nagios-plugins-1.4.9.tar.gz

Agora, vamos criar o Makefile:

# cd nagios-plugins-1.4.9
# ./configure
# make all
# make install


Pronto, os plugins já estão instalados e prontos para serem acessados.

O único problema dos plugins é que a maioria deles são para uso local no servidor, para monitoramento de uso de disco, partições, usuários logados, processos, cpu, memória, etc.

Para realizar o monitoramento desses recursos em hosts remotos (outras máquinas linux ou Unix), utilizamos o NRPE (Nagios Remote Plugin Executor).

Para isto, não é preciso instalar o Nagios nos hosts remotos, apenas os plugins e o NRPE.

Para instalar o NRPE, primeiro descompacte o arquivo:

# tar zxvf nrpe-2.8.1.tar.gz

Vamos ao Makefile:

# ./configure

À compilação:

# make all

À instalação do plugin "check_nrpe" dentro de libexec:

# make install-plugin

O daemon do serviço:

# make install-daemon

O arquivo de configuração padrão:

# make install-daemon-config

E a criação do serviço dentro do xinetd:

# make install-xinetd

Pronto. Plugin e daemon instalados, arquivo de configuração e serviço xinetd criados.

Vamos agora apontar o número da porta no arquivo /etc/services.

# vi /etc/services

Insira a linha:

nrpe 5666/tcp # NRPE

Salve e saia. Reinicie o serviço XINETD.

# /etc/init.d/xinetd restart

Pronto, o NRPE já está, ou deveria estar rodando.

Para testar, utilize:

# nmap localhost -p 5666

Se retornar o status 5666/tcp open, o NRPE está rodando. Se o status estiver como closed, verifique a configuração do serviço nrpe no xinetd está como disable = no.

Nos clientes

Para fazer a instalação nos hosts remotos, altere também o serviço no xinetd, para permitir a conexão do Nagios Server ao NRPE:

# vi /etc/xinetd.d/nrpe

Altere a linha:

only from = 127.0.0.1

para

only from = 127.0.0.1 <ip_nagios_server>

Salve e saia. Reinicie o serviço XINETD.

# /etc/init.d/xinetd restart

Para permitir que o servidor Nagios execute os plugins remotamente no cliente, o arquivo /usr/local/nagios/etc/nrpe.cfg nos clientes deve estar correto, e com todos os comandos a serem executados já definidos.

Por exemplo:

Se a linha de comando local do plugin "check_swap" é:

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

Então, a definição do comando no NRPE.CFG deverá ser:

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

E no servidor, esse comando deverá ser definido em services.cfg como:

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

No servidor, a verificação deste serviço, dentro de services.cfg será:

define service{
use local-service
host_name proxy
service_description SWAP
check_command check_nrpe!check_swap
contact_groups <nome_do_grupo>
}

Vamos agora à parte mais demorada, as configurações do Nagios...

Página anterior     Próxima página

Páginas do artigo
   1. Apresentação e motivação
   2. Mãos à obra
   3. Instalação dos plugins e NRPE
   4. Configurando o Nagios
   5. Iniciando pela primeira vez
   6. Configurando o Apache
   7. Onde está a dificuldade?
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Impressora JPG no Linux compartilhada para Windows

Uma interface mais bonita com efeitos de transparência e sombras

Certificado Digital para Peticionamento Eletrônico (2018)

Como criar pacotes para o Arch Linux (parte 2) - pacotes svn e cvs

MultiCD - Diversas Distribuições no mesmo DVD/Pendrive

  
Comentários
[1] Comentário enviado por removido em 07/07/2007 - 10:56h

Muito bom, esta favoritado
:D

Att

RaFaBRA

[2] Comentário enviado por augustoferronato em 09/07/2007 - 09:30h

Amigo, estou com este problema

It appears as though you do not have permission to view information you requested...

If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
and check the authorization options in your CGI configuration file.

Não consigo acessar arquivos de configuração.

Você poderia me ajudar?

Att
Augusto

[3] Comentário enviado por cppatricio em 10/07/2007 - 18:04h

Mandou bem hein Gavioli,

Muito bom o artigo.

Parabéns....

[4] Comentário enviado por rgavioli em 10/07/2007 - 23:34h

Olá Augusto!
você descomentou no arquivo cgi.cfg as linhas de autorização ?
#authorization_*=nagiosadmin

Se sim, apesar de não ser necessário, coloque no diretório /usr/local/nagios/libexec as permissões para o grupo nagcmd:
chgrp -R nagcmd /usr/local/nagios/libexec

Qq coisa, avise !
RGavioli

[5] Comentário enviado por rgavioli em 10/07/2007 - 23:36h

Valeu Clayton,
contei com ajuda de algumas pessoas, claro... pra desenvolver esse artigo!
Obrigado ao Fabio Munhoz que me ajudou nas experiências, e ao Fabiano Rodrigues, com a motivação !!!

[6] Comentário enviado por dani_menezes em 17/07/2007 - 14:58h

opa ... tive problemas para extrair o nrpe ...

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error exit delayed from previous errors

qq faltou??

[7] Comentário enviado por dani_menezes em 17/07/2007 - 15:39h

descobri .. eheheh .. tava usando o DAP pra baixar os arquivos .. nao sei pq mas ele corrompia os arquivos. agora ta blz.

[8] Comentário enviado por rgavioli em 17/07/2007 - 15:42h

Olá Daniel.
Provavelmente o arquivo está corrompido... tente baixar direto via WGET no Linux:
# wget http://ufpr.dl.sourceforge.net/sourceforge/nagios/nrpe-2.8.1.tar.gz

Ricardo Gavioli

[9] Comentário enviado por steve_harris em 10/08/2007 - 17:31h

boa tarde, ao instalar o nrpe (./configure) funciona normal, mas qnd faço o make all da o seguinte erro.

steve@ibmserver:/tmp/nagios/nrpe-2.8.1$ sudo make all
make: *** Sem regra para processar o alvo `all'. Pare.

No aguardo de respostas!!!!!!!!!!!!!!!!!!!!!1

[10] Comentário enviado por jmsmaster em 16/08/2007 - 18:37h

Olá pessoal,

A configuração do arquivo hostgroups.cfg não deve conter a linha

contact_groups <grupos_que_fazem_parte>, esta linha deve estar no arquivo hosts.cfg, para cada host configurado.

Quebrei a cabeça para fazer funcionar isso, até encontrar esta solução.

Att.

Josue






[11] Comentário enviado por _holtz_ em 14/09/2007 - 11:41h

Bom dia! Pessoal, Meu Nagios tah funcionando legal, o problema eh que as notificações geradas não estão sendo enviadas para meu e-mail. To usando o exim4, ao usar # echo "teste de envio" | mail -s "teste de envio" meu_e-mail@gmail.com, consigo receber a msg, porém, as notificações no nagios não chegam em meu e-mail. No arquivo contacts.cfg, tah habilitado notify-by-email. Se alguem puder me ajudar eu ficaria agradecido. Obrigado
Att,

Marcelo Holtz

[12] Comentário enviado por rgavioli em 14/09/2007 - 13:22h

Olá holtz,
dê uma olhada no arquivo commands.cfg, na seção #notify-by-email.
Dentro dessa seção, existe a linha "command_line", que é onde fica o comando para envio do e-mail e as variáveis que serão enviadas na mensagem. Pode ser que o comando de envio de e-mail não seja suportado na sua distro.
Fica assim:
command_line /usr/bin/printf "%bla bla bla bla | /usr/bin/mail -s bla bla bla...
De uma olhada com cuidado nessa linha, para não alterar no lugar errado... faça um backup desse arquivo antes de alterar.

Boa sorte.
Ricardo Gavioli

[13] Comentário enviado por _holtz_ em 15/09/2007 - 15:00h

Blz Ricardo, vo dar uma olhada nesse arquivo, aliás, vo olhar de novo, pra ver se não tem nada errado. O estranho é pq to usando Debian etch e Nagios 2.9, assim como seu artigo, porém sem sucesso no envio de e-mails.
Obrigado pela atenção. Vo olhar e posto aqui o resultado e uma possível dúvida. Vlw de novo!

Marcelo Holtz

[14] Comentário enviado por _holtz_ em 18/09/2007 - 12:28h

Bom dia Gavioli, seguinte: Problema resolvido, modifquei o comando Info:\n\n$SERVICEOUTPUT$" | /bin/mail -s "** $NOTIFICATIONTYPE$ alert , o que fez funcionar foi especificar todo o caminho do diretorio depois do pipe, ficando assim | /usr/bin/mail -s. Valeu pela ajuda! Estou com uma outra duvida, o arquivo nagios.cmd, existente /nagios/var/rw/ é deletado toda vez que o nagios é reiniciado, e isso faz com que as permissões de escrita sejam alteradas. Quando vou tentar editar algum arquivo utilizando a interface web, dá erro de permissão desse arquivo. Já utilizei o comando "chown nagios. /usr/local/nagios/var/rw" porém isso não resolveu o problema. Tentei alterar algumas linhas no script de inicialização no Nagios, mas sem sucesso. Alguma solução? Obrigado


Marcelo Holtz

[15] Comentário enviado por diramos em 23/01/2008 - 19:40h

Ricardo.
Ótimo artigo.
Mas tenho uma configuração "extra" a fazer no Nagios que instalei na minha empresa.
É referente à notificação por email.
Por questão de segurança, as caixas postais de email da empresa são configuradas para receber emails somente de contas padrões e previamente cadastradas.
O Nagios tem enviado notificações por email usando o remetente "nagios@mail.meuprovedor".
E as mensagens são barradas pelo Exchange, pois deveira ser no formato de exemplo assim: "diramos@mail.meuprovedor".
Então, a pergunta é: onde eu configuro isso?
Tente mudar o user no nagios.cfg para o padrão nosso e deu erro. Nem carregou o Nagios.
Se puder responder, fico devendo essa.

Abraço

Diramos

[16] Comentário enviado por smurf_o em 03/04/2008 - 19:58h

Valeu pela dica cara, vou testar e ver se esta tudo ok.

Um Abraço

[17] Comentário enviado por luizgalssa em 07/07/2008 - 13:54h

Poxa, excelente artigo.
Desde já informo que já faz parte de minhas páginas Favoritas.
Mantenha sempre esta qualidade.
Abraço.

[18] Comentário enviado por l-x em 26/08/2008 - 16:26h

Cara, pelo post.

Mas estou com um problema esquisito:

qnd eu rodo o ./configure no NRPE ele acusa esse erro:

"checking for SSL... configure: error: Cannot find ssl libraries"

Tentei de várias forma configurar o ssl, mas ele ta redondo. O q posso fazer a respeito?????

[19] Comentário enviado por jgaleti em 09/10/2008 - 16:10h

Aos colegas que estao com dificuldades ao instalar o NRPE, e que estão com problemas com SSL, se estiverem usando o debian ou qualquer derivado dele instalem uma dependencia:
apt-get install libssl-dev
Após instalar entre no diretorio e rode o ./configure e depois o make e os outros comandos do tutorial.
Espero uma resposta positiva de vocês: steve_harris e l-x.

Saudações.

[20] Comentário enviado por donabuba em 15/10/2008 - 15:52h

Olá.
Em minha rede, tenho +/- 200 máquinas sendo monitoradas, por isso, e grande a avalanche de e-mails com notificações.
Gostaria de filtrar essas notificações para que sói sejam enviadas as referentes aos servidores mais importantes da minha rede.
Obrigada.

[21] Comentário enviado por diegoaraujo9 em 05/12/2008 - 10:33h

oi,

dei make install em todos os arquivos e tudo foi compilado corretamente, exceto para o xinetd.d, que apresentou a seguinte mensagem:

impossível criar arquivo comum `/etc/xinetd.d/nrpe': Arquivo ou diretório não encontrado

o que devo fazer?

Obrigado.

[22] Comentário enviado por ashmsx em 14/07/2009 - 11:05h

aqui deu erro na hora do ./configure, rodei o comando abaixo e deu certo flw

root@bond:/home/nagios-1.2# ./configure --prefix=/usr/local/nagios \
--with-nagios-user=nagios \
--with-nagios-grp=nagios \
--with-cgiurl=/nagios/cgi-bin \
--with-htmlurl=/nagios \

[23] Comentário enviado por geber em 20/08/2009 - 19:01h

Olá, alguém pode me ajudar?

Ao acessar a página do Nagios aparece a msg: "It appears as though you do not have permission to view information for any of the hosts you requested... If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
and check the authorization options in your CGI configuration file."

Já tentei todas as soluções enviadas, mas nenhuma funcionou. Reparei também que após fazer o logon aparece a seguinte informação:

Current Network Status
Last Updated: Thu Aug 20 18:27:45 BRT 2009
Updated every 90 seconds
Nagios® Core™ 3.2.0 - www.nagios.org
Logged in as ? >>>>>>>>>> não aparece a minha conta


Segue abaixo minhas configurações:
Estou utilizando o Debian 5.0.

CGI.CFG:

todos os authorized com nagiosadmin ( authorized_for_system_commands=nagiosadmin )

Pasta /usr/local/nagios:
- dono: nagios
- grupo nagcmd

Agradeço a ajuda!


[24] Comentário enviado por poti em 28/08/2009 - 13:50h

Olá, ao testar a configuração estou tendo o seguinte erro:

Warning: Duplicate definition found for command 'check_http' (config file '/usr/local/nagios/etc/objects/commands.cfg', starting on line 241)
Error: Could not add object property in file '/usr/local/nagios/etc/objects/commands.cfg' on line 242.
Error processing object config files!
Abraços
t+

[25] Comentário enviado por ticopan em 14/09/2009 - 14:04h

Boa tarde... se alguém puder me ajudar com o Nagios eu agradeço. Ao tentar iniciar o Nagios pelo comando: /nagios/bin/nagios -v /nagios/etc/nagios.cfg

Ele me apresenta o seguinte erro:
Error: Could not add object property in file '/nagios/etc/hosts.cfg'

Abaixo segue o conteúdo do arquivo hosts.cfg:

################################################################################
# Sample object config file for Nagios
#
# Read the documentation for more information on this configuration file. I've
# provided some comments here, but things may not be so clear without further
# explanation, so make sure to read the HTML documentation!
#
# Last Modified: 03-10-2002
#
################################################################################


################################################################################
# HOST DEFINITIONS
#
# SYNTAX:
#
################################################################################

# Generic host definition template
define host{
name generic-host ; The name of this host template - referenced in other host definitions, used for template recursion/resolution
notifications_enabled 1 ; Host notifications are enabled
event_handler_enabled 1 ; Host event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts

register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}

# 'Localhost' host definition
define host{
use generic-host ; Name of host template to use

host_name localhost
alias localhost
address 127.0.0.1
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups admins
}

[26] Comentário enviado por fferreira1982 em 22/01/2010 - 13:28h

boa tarde a todos,

Alguem poderia me ajudar?

Acabei e configurar o Nagios em um PC simples para testes e estou com o seguinte problema.

Not Found

The requested URL /nagios was not found on this server.
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny4 with Suhosin-Patch Server at <meu ip> Port 80

Aguardo contato,
Muito Obrigado
Atenciosamente
Felipe Ferreira


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts