Pra que serve o Nagios?

Muita gente já ouviu falar, algumas pessoas já leram a respeito e outras até o viram, mas o que é de fato o Nagios?

Nesse artigo vou falar sobre essa poderosa ferramenta de monitoração, abordarei as suas características, capacidades e darei exemplos para sanar a dúvida de muitos: “Pra que serve o Nagios?”

Normalmente Nagios é o nome atribuído para algo muito maior do que simplesmente um programa com um único propósito: a importante tarefa de monitoração.  Na realidade o Nagios é composto por diversas partes que o capacita a ser um software de monitoração sem limites. Num primeiro momento isso pode soar como algo complexo, ou até mesmo um cavalo selvagem difícil de domar, porém como há uma estrutura muito bem organizada será simples de entender.

O propósito

Sistemas de monitoração são muito mais presentes na vida das pessoas do que elas imaginam. Por exemplo, no painel de qualquer automóvel existe uma série de indicadores, esses instrumentos monitoram em tempo real a velocidade, o número de rotações do motor, a quilometragem percorrida, e quando o combustível está próximo do fim é realizada uma notificação pelo sistema de monitoração do veículo, essa notificação geralmente é visual – por meio de uma luz – e em alguns casos também é sonora.

Mas não precisamos sair de casa para ver sistemas de monitoração. Em muitas geladeiras uma notificação sonora é realizada quando a porta fica aberta por muito tempo. O aparelho de DVD monitora a sua ociosidade e depois de um período toma a ação de desligar-se automaticamente. E quem gosta de fazer peru no natal conhece aquele sistema de notificação que é acionado quando o peru está pronto no forno.

Originalmente o Nagios foi desenvolvido para trabalhar com redes de computadores, ele tem o objetivo de procurar problemas e informar sobre a existência deles. Hoje em dia como veremos é possível adaptar o Nagios para uma infinidade de aplicações [NAG].

A estrutura

Basicamente o Nagios é composto por quatro componentes, que estão descritos na Figura 1.

Figura 1: Interação do Nagios com seus componentes principais

As tarefas de monitoração são baseadas no conceito de hots e serviços. Onde como já sabemos os hosts são os equipamentos e os serviços são os recursos oferecidos pelos equipamentos.

Os plugins

Costumo dizer nos cursos que ministro que o Nagios é um software de monitoração tão poderoso que não consegue monitorar absolutamente nada, sequer consegue realizar um ping. É claro que isso é uma frase contraditória, mas é proposital e também verdadeira.

O Nagios por si só não possui nenhuma capacidade de monitoração ou de realizar notificações, essas tarefas são realizadas por intermédio de plugins e a partir de então o Nagios passa a ganhar capacidades virtualmente infinitas.

Um plugin nada mais é do que um programa que tem o objetivo de realizar uma tarefa muito específica [PLU]. Por exemplo, realizar um ping num determinado endereço IP e analisar o resultado. Da mesma forma que um plugin pode monitorar um equipamento por pings é possível usar plugins para monitorar serviços de rede como HTTP, POP3, SMTP, SNMP, SSH e assim por diante [MPS].

Semelhantemente aos plugins de checagem mencionados, também podem ser usados plugins para realizar notificações. As notificações podem ser em forma de um e-mail, uma mensagem no MSN, a reprodução de um arquivo MP3, o soar de uma buzina, etc [NOT].

Os plugins do Nagios podem ser escritos em qualquer linguagem de programação e qualquer pessoa pode escrever um plugin simples em questão de minutos. Então a imaginação é o limite para a criação de plugins.

Figura 2: Status Map

O agente

Como já mencionei é fácil monitorar serviços de rede, para fazer isso é necessário apenas possuir o plugin correto. Mas fazer para monitorar dados de desempenho como utilização de CPU, consumo de memória, ocupação de disco e etc?

Nesses casos são utilizados agentes. Softwares instalados nos equipamentos que estão sendo monitorados que irão atender as requisições de plugins específicos.

Uma vez que o equipamento que está sendo monitorado possua um agente de monitoração, será possível coletar qualquer informação deste equipamento.

Abaixo uma lista dos agentes mais populares que são utilizados com o Nagios:

O banco de dados

O local onde as informações são armazenadas pode ser um banco dados – tipicamente em MySQL – [NDO] ou arquivos de texto em formatos de logs.

Por padrão o método utilizado para armazenar informações num sistema Nagios são arquivos de log. Esse é o método convencional por ser o mais simples, mas apesar de ser possível usar o Nagios com armazenamento de dados em arquivos texto, existem desvantagens nesse método, que são:

  • Lentidão no acesso aos dados para geração de relatórios.
  • Dificuldade de extração de dados personalizados.

Oras, é obvio que para coletar uma série de informações em um banco de dados relacional é muito mais rápido e simples do que utilizar ferramentas de pesquisa em arquivos texto, afinal toda estrutura proporcionada por um SGBD tem como proposta principal entregar informações de forma rápida.

Em pequenas instalações o armazenamento de informações em arquivos texto é suficiente – entenda pequenas instalações quando é feita a monitoração de alguns poucos milhares de serviços.

Além da velocidade de acesso, informações armazenadas em banco de dados são muito mais simples de serem acessados. Isso é útil quando é necessário integrar o Nagios com outras ferramentas ou quando eu quero simplesmente fazer um SELECT para obter uma informação.

Nagios Core

Sim! O nome completo do Nagios a partir de agosto de 2009 [N09] é Nagios Core e a razão para ele ganhar um nome mais longo deve-se ao advento da versão comercial Nagios XI.

Figura 3: Service Status

O Nagios Core ou simplesmente Nagios (para os mais íntimos) é onde está a inteligência da monitoração. É ele quem coordena todas as tarefas de monitoração, e isso pode ser compreendido em reger a periodicidade das checagens, limitar o tempo máximo de execução de uma tarefa, selecionar os usuários que serão notificados por uma ocorrência, gerar relatórios com base nas informações de monitoração, plotar mapas topológicos e realizar outras tarefas de maior complexidade (desnecessárias para serem mencionadas neste artigo).

Figura 4: Host Status

Então pode parecer pouco trabalho, afinal quem faz realmente tudo são os plugins de checagens e notificações, correto?

Errado. De fato o Nagios é a parte mais importante da monitoração, pois ele é a peça que torna todo processo de monitoração possível, organizado e escalonável. É realmente possível realizar tarefas de monitoração somente usando scripts, porém scripts não possuem a escalabilidade e o desempenho que o Nagios possui.

Figura 5: Relatório de disponibilidade

Os requisitos

O Nagios não possui limites com relação ao número de hosts e serviços que irá monitorar, isso é definido pelo hardware. Quanto mais poderoso um servidor de monitoração é, mais tarefas poderá monitorar com ótima precisão.

Figura 6: Informações do processo

Diferente de outros softwares de monitoração, o Nagios possui suporte para múltiplos processadores simplesmente por ser 100% dependente de plugins. Como os plugins são executados como processos distintos, esses são alocados automaticamente pelo sistema operacional para a CPU que estiver mais disponível.

Figura 7: Relatório de Tendências

Muito bla, bla, bla…

Ok… Se você acredita que eu ainda não respondi a pergunta/título desse artigo, tentarei ser mais claro…

O Nagios é uma espécie de tônico capilar que evita cabelos brancos e calvície de equipes que cuidam de datacenters. Adicionalmente serve também como anti-depressivo e estimulante, afinal sem um bom software de monitoração é impossível se sentir estimulado para adicionar novos hosts na rede (serão novos problemas).

Saber como está a saúde de hosts e serviços da rede faz bem para a saúde do administrador de sistemas e é algo fundamental também para a saúde da empresa como um todo.

Hoje vivemos num mundo globalizado, onde tanto se fala de virtualização, computação em nuvem, e serviços multiplataforma presentes em todos os lugares. É um mundo que precisa muito de monitoração e cuidados de administradores de sistemas competentes para manter toda essa malha computacional funcionando a todo vapor.

Referências

[NAG] – http://nagios.sourceforge.net/docs/3_0/about.html#whatis

[N09] – http://www.nagios.org/news/77-news-announcements/225-nagios-core-320-released

[MPS] – http://nagios.sourceforge.net/docs/3_0/monitoring-publicservices.html

[NOT] – http://nagios.sourceforge.net/docs/3_0/notifications.html

[MLM] – http://nagios.sourceforge.net/docs/3_0/monitoring-linux.html

[NSC] – http://www.nsclient.org/nscp/

[NDO] – http://nagios.sourceforge.net/docs/3_0/addons.html#ndoutils

[PLU] – http://nagios.sourceforge.net/docs/3_0/plugins.html

<p style=”text-align: center;”><a href=”http://www.temporealeventos.com.br/?area=109″ target=”_blank”><img class=”aligncenter size-full wp-image-566″ title=”Mao na Massa Nagios – Banner Small” src=”https://pessoa.eti.br/media/2009/08/Mao-na-Massa-Nagios-Banner-Small.gif” alt=”Mao na Massa Nagios – Banner Small” width=”230″ height=”60″ /></a></p>

Leave a Reply

10 thoughts on “Pra que serve o Nagios?”

%d bloggers like this: