Nágios – Monitorização Open Source
Por Ricardo Ruivo para o PPLWARE
Este artigo surge na sequência do meu comentário ao artigo SpiceWorks – Monitorize toda a sua rede informática, ao qual o Pedro Pinto me lançou o repto de escrever sobre Nagios.
Para mim, como administrador de sistema de uma rede informática universitária, o Nagios é a melhor ferramenta de monitorização. Não só por ser opensource mas também pela forma como é possível estender a monitorização aos elementos mais estranhos.
Destaco as seguintes vantagens:
- Monitorização intrusiva e não intrusiva
- Monitorização de servidores (Windows / *Unix), serviços e equipamentos activos da rede
- Possibilidade de desenvolvimento, de plugins específicos às necessidades de cada administrador. Estes plugins podem ser desenvolvidos nas mais diversas linguagem de programação / scripting como por exemplo bash, PHP, Python ou Perl.
- Possibilidade de definir a monitorização da rede de forma hierárquica. Se um router “cair” apenas existe notificação de problemas no router e não em todas as máquinas / serviços que dele estão dependentes.
- Escalável, uma vez que os processos de monitorização são executados de forma paralela
- Capacidade de distribuir a monitorização por vários servidores Nagios, agregando posteriormente numa única interface todos os parâmetros monitorizados.
- Notificação para quando é detectado um problema e para quando o mesmo é considerado resolvido. Estas notificações podem ser sob a forma de email, sms ou qualquer outro meio que possa ser despoletado via script criado pelo administrador.
- Capacidade de executar acções de resolução sobre os problemas quando estes são detectados pelo Nagios.
- Vários níveis de estado dos serviços monitorizados:
- UNKNOWN: Quando não é possível obter informação sobre o elemento monitorizado.
- OK: Quando o elemento monitorizado está a funcionar sem problemas.
- WARNING: Quando o elemento monitorizado está acima do valor definido para Warning (Este valor é definido de forma independente para cada serviço). Por exemplo, quando uma queue de email contem mais de 200 emails para entregar
- CRITICAL: Quando o elemento monitorizado está acima do valor definido para Critical (Este valor é definido de forma independente para cada serviço) ou deixou de responder aos pedidos do servidor Nagios. Seguindo o exemplo anterior, quando por exemplo a queue passa o limite de 400 emails.
Como monitorizar
Uma das formas que o Nagios tem de monitorizar um serviço é ligar-se ao porto desse serviço e interagir com o mesmo, fazendo-se passar por um cliente. Por exemplo para monitorizar um servidor Web, o Nagios liga-se ao porto 80 desse servidor, interpretando depois a informação que obtém.
Exemplo de uma monitorização de um servidor Web:
Este tipo de monitorização é considerado como monitorização não intrusiva.
Como fazer para monitorizar remotamente um serviço ou servidor ou recurso que não pode ser contactado remotamente, como por exemplo, a memória RAM de um servidor?
Para estes casos existe o NRPE. O NRPE é um agente que é instalado do lado do servidor a monitorizar que comunica posteriormente todas os parâmetros monitorizados ao servidor Nagios. Esta comunicação é efectuada sobre TCP porto 5666 através de um túnel encriptado com SSL. Este agente está disponível para Sistemas Operativos Windows e Linux.
O NRPE utiliza todos os plugins que estão disponíveis para o Nagios ou plugins definidos pelo administrador, como por exemplo, o seguinte script bash que monitoriza a quantidade de memória RAM disponível num servidor Linux.
#!/bin/bash
#
# Check mem
#
#
# Configuration variables
#
FREE=/usr/bin/free
AWK=/bin/awk
WARNING=$1
CRITICAL=$2
#
# GET TOTAL RAM
#
TOTAL_RAM=$(/usr/bin/free -m -o | /bin/awk 'NR>1' | /bin/awk 'NR<2' | /bin/awk '{print $2}')
FREE_RAM=$(/usr/bin/free -m | /bin/awk 'NR>2' | /bin/awk 'NR<2' | /bin/awk '{print $4}')
if [ $FREE_RAM -gt $WARNING ]
then
echo "OK - TOTAL: $TOTAL_RAM MB FREE: $FREE_RAM | 'TOTAL'=$TOTAL_RAM 'FREE'=$FREE_RAM;200;100"
exit 0
fi
if [ $FREE_RAM -lt $CRITICAL ]
then
echo "CRITICAL - TOTAL: $TOTAL_RAM MB FREE: $FREE_RAM | 'TOTAL'=$TOTAL_RAM 'FREE'=$FREE_RAM;200;100"
exit 2
fi
Web Interface
Outra grande vantagem do Nagios face a outros programas de monitorização é o facto de correr sobre uma Interface Web. Além de ser dispensável a instalação de qualquer software nos computadores dos responsáveis pelo sistema de monitorização, existe a vantagem de proteger o acesso a este sistema com base em certificados X.509 (http://en.wikipedia.org/wiki/X.509), que representam um aumento significativo da segurança face aos mecanismos de login e password tradicionais.
Por omissão o Nagios apenas permite a visualização do estado da rede em cada instante de tempo, isto é, não existe histórico. O histórico é muito importante para um administrador de sistema uma vez que permite encontrar padrões por exemplo em situações de maior carga da rede, podendo posteriormente adequar a configuração para lidar com estes picos da melhor forma.
Para colmatar esta falha existe o PNP4Nagios (http://docs.pnp4nagios.org/pnp-0.4/start). Trata-se de um Add-On que utiliza as RRDTools como forma de armazenamento dos dados de output dos plugins do Nagios. Estes resultados alimentam posteriormente o processo de criação dos gráficos.
Outros Add-Ons mais utilizados
- NDOUtils (http://www.nagios.org/download/addons)
Permite armazenar numa base de dados todos os valores adquiridos, monitorizados e valores de históricos de vários servidores Nagios. Serve de base para outros add-ons do Nagios.
- Nagvis (http://www.nagvis.org/)
Trata-se um de add-on de apresentação para o Nagios que permite a visualização de forma gráfica o estado dos equipamentos activos e serviços monitorizados. Esta informação é apresentada num visual personalizado com fotos reais dos rack’s de servidores / mapas de localização ou até mesmo componentes dos servidores.
Este add-on obtém todos os dados através do NDOUtils.
O Nagios serve de core a diversos sistemas comerciais de monitorização, como por exemplo:
- Nagios XI
- Op5 Monitor
- Azeti SONARPLEX
- OpMon
Nagios Exchange (http://exchange.nagios.org/)
O Nagios Exchange é o repositório oficial e aberto a toda a comunidade Nagios onde se encontram publicados todos os add-ons, plugins e extensões.
É um bom ponto de partida sempre que for necessário algum plugin para a monitorização de um novo serviço, antes de começar a partir pedra e a reinventar a roda na maior parte das vezes.
Download: Nagios (Core, Plugins, Addons)
Homepage: Nagios
Este artigo tem mais de um ano
Utilizei-o enquanto operador de datacenter. Muito bom.
Excelente artigo! pena não ter vindo à uns meses atrás quando tive que apresentar um estudo comparativo entre as melhores ferramentas open source de monitorização… :S De facto, é mesmo uma óptima solução!
Boas, estou a fazer um estudo de mercado entre as melhores ferramentas open source ligadas à monitorização. Do que já pesquisei o Nagios parece-me o melhor, poderá dar-me algum feedBack sobre que mais ferramentas usou no seu trabalho?
Cumprimentos
Boa noite,
penso que este post https://pplware.sapo.pt/internet/zabbix-o-proximo-passo-em-monitorizacao-de-redes/ responde ás suas questões 🙂 Bom trabalho.
Boa tarde, o estudo que estou a fazer é ao nível da bilhética, “ticketing”, e relativamente a essa área a informação na Net sobre quais os sistemas de monitorização mais usados é escassa ou inexistente. Alguém me conseguiria dar feedback sobre este tema?
Desde já grato pelo seu comentário Ricardo 🙂
Parabéns pela publicação,grande programa de monitorização.
cmps
Parabéns Ricardo ! Bom artigo 🙂
Bom artigo.
Utilizo o icinga + pnp4nagios + NDOUtils, muito fiável e preciso.
o Icinga é baseado no nagios, mas o aspecto gráfico foi um pouco melhorado.
Para quem quiser experimentar:
http://classic.demo.icinga.org/icinga/
user: guest
password: guest
Sem dúvida uma grande ferramenta, ainda por cima free…
Útil em qualquer datacenter..
Abraços
Ja esta na horinha de organizarem a sala de servidores.
Uso actualmente uma versão do Nagios 2.0 mas altamente modificada.
Deixou de ser usado apenas para monitorizar redes, e passou a executar também comandos unix e querys SQL em Oracle.
Simples, o retorno do comando ou da query terá de ser sempre um numero e consoante o numero tem um threshold atribuído numa tabela de configuração na BD, sendo então mostrado Warning, critical ou OK, com o respectivo envio de SMS e e-mail!
No meu caso o Nagios foi apenas uma rampa de lançamento e o suporte para mais do que monitorizar redes. E funciona MUITO BEM!
Excelente!
Boas
durante vários anos tenho usado o Big Brother versão free, mas tenho de mudar uma vez que não suporta w7 nem WS2008. a minha dúvida em relação a ste software é se me permite monotorizar máquinas remotas independente de estarem em dominio?
obrigado
Carlos Telles
Sim, podes monitorizar servidores / serviços em Máquinas Windows sem qualquer problema. Alias, podes monitorizar até a carga de uma UPS 😉
Só uma questão, não funciona em Windows? certo? Tenho que instalar numa máquina com linux?
Obrigado
Cumps
Usando como motor de base o Nagios -> http://pandorafms.org/
Formação @ Caixa Mágica: http://www.caixamagica.pt/pag/c_popcurso1.php?id_curso=33
Parabéns pelo artigo! Muito bom!
Ab,
Sou administrador Zabbix feliz com as suas funcionalidades e evolução.
Há uma grande % de administradores Zabbix que usaram Nagios durante anos e desde a migração nunca mais quiseram voltar.
O problema do Nagios, na minha opinião prende-se com a necessidade de existir uma máquina linux. Nem sempre se consegue (organização microsoft partner) uma máquina Linux.
No meu caso, uso cacti, essencialmente para redes.
uso nagios, e ate agora nao encontrei melhor !!!
ja testei “ao de leve” cacti, mas nagios foi o que “vincou” mais 🙂
É Nagios e não Nágios!
Excelente ferramenta. O pessoal comenta muito sobre o Zabbix, mas ninguém sabe explicar quais as principais vantagens sobre o Nagios.
Posso dizer que já utilizei os dois e as diferenças que senti entre os dois é que o Zabbix é mais rápido na instalação e configuração principalmente por ser mais fácil de entrar no “esquema”. Facilmente se configura sem grande know-how anterior.
Por outro lado o Nagios é considero mais poderoso em termos de funcionalidades, muitas vezes senti falta de funções que não existiam à partida no Zabbix.
Acho que a grande coisa em relação aos dois softwares é que considero o Nagios um software mais exigente em termos de conhecimento não só a nível da sua configuração inicial mas para sobretudo durante a sua utilização.
Neste momento estou em fase final de testes sobre os dois softwares mas estou mais inclinado para o Nagios.º
Espero não tar a passar ideias confusas e erradas.
O que esqueci de referir é que o Nagios creio ser mais poderoso e com mais potencial. Mas os dois são muito semelhantes.
Existe também uma GUI que assenta sobre o Nagios que é o Centreon -> também já instalei e gostei.
http://www.centreon.com/
Essa é outra questão, as interfaces por cima do Nagios…quando no Nagios organizas os ficheiros de uma maneira que para ti é lógica e depois vem uma interface que implementa a sua própria lógica…não sendo impossível, é complicado assimilar…e sempre fui adepto do VI 😛
Boa tarde,
Estou a fazer um estudo de mercado sobre sistemas de monitorização ao nível da bilhética, “ticketing”.
Apesar de um sistema de bilhética ser baseado em equipamentos standard, a sua monitorização envolve um conjunto alargado e muito específico de periféricos, especialmente no caso das máquinas automáticas: dispensadores de bilhetes, aceitadores de moedas e notas, painéis de supervisão, leitores de cartões, etc.
Relativamente a essa área a informação na inernet sobre quais os sistemas de monitorização mais usados são escassos ou inexistentes. O Zabbix é utilizado na bilhética? Têm conhecimento de mais algum sistema de monitorização ligado à bilhética?
Desde já grato pela atenção
Francisco Alarico