Algumas críticas ao Nagios 28/06/07

Nagios é um popular software de monitoração, o trabalho dele é ficar de olho nos equipamentos da sua rede e avisar quando algo anda errado. Eu aceitei o desafio de implementar o sistema na empresa que eu trabalho e desde então venho quebrando bastante a cabeça.

A parte boa, diria ótima, do Nagios é a flexibilidade. O sistema é capaz de monitorar computadores, switches, roteadores, impressoras e qualquer outra coisa que você coloque numa rede IP. Ao contrário de outros softwares semelhantes ele não te obriga a muitas coisas. Por não ser um pacote fechado e completo para cumprir a sua tarefa o Nagios não te diz como você vai monitorar seus hosts ou como vai te notificar sobre as falhas. Ele deixa que você decida como quer fazer isso e se preocupa em fazer o que você deseja do jeito que deseja.

A maneira mais comum de monitorar hosts é através de plugins, o Nagios tem um pacote padrão de plugins para checar o que normalmente os administradores de rede precisam. Se você quer algo que o pacote padrão de plugins não faz pode escrever seu próprio plugin na linguagem que bem entender seguindo algumas regras simples. A flexibilidade que isso te dá é incrível, o que o Nagios pode monitor fica limitado apenas a habilidade e criatividade do administrador.

A parte ruim do sistema é a sua complexidade. Ele te dá grande flexibilidade mas te deixa na mão muitos arquivos de configuração que dependem uns dos outros formando um verdadeiro spaghetti code. Para melhorar tudo esses arquivos de configuração são em texto puro. Você vai criar centenas (ou até milhares) de objetos para fazer o que quer e todos eles vão estar em arquivos texto. É provável que você esteja ai pensando “mas que fresco, quer usar software Unix e não mexer com arquivos texto?”. Eu não tenho problemas em trabalhar com arquivos texto, o problema é quando eu tenho que trabalhar com centenas deles pra fazer um software funcionar. A manutenção disso se torna trabalhosa e lenta.

Em ambientes pequenos com até 100 hosts e serviços básicos a implementação do Nagios nem é tão complexa assim, agora em ambientes muito grandes a coisa fica apavorante. Atualmente eu tenho uns 200 servidores no meu Nagios e provavelmente vou chegar nos 800. Levando em consideração que precise monitorar 5 serviços em cada servidor terei 4000 serviços. Quisera eu monitorar apenas 5 serviços em cada máquina e eu nem falei que serviços dependem de contatos, horários, notificações, grupos, comandos e assim você começa entender onde eu quero chegar. É desumano e inviável manter isso em arquivos de texto. Não consigo entender como os desenvolvedores ainda não colocaram todas as configurações em um banco de dados com uma interface mais agradável e ágil para administração.

Outra coisa que também me deixou triste é a documentação sobre recursos avançados. Textos sobre o básico como baixar, compilar e configurar meia dúzia de serviços em meia dúzia de hosts você encontra aos milhares na internet. Agora tente procurar algo mais avançado como redundância e monitoração distribuída. Como eu tenho três grandes redes diferentes eu gostaria de dividir o processamento da minha monitoração em 3 servidores e manter a configuração/visualização deles centralizada mas infelizmente é impossível.

O que também me incomoda é o fato do Nagios não ter suporte a vários processadores. Eu tenho um baita servidor com 4 processadores totalizando 8 cores e o software não pode tirar vantagem disso. É decepcionante.

A aplicação é boa, muito boa, faz o que promete e ainda é gratuita mas tem muitos pontos a serem melhorados. Eu espero um dia estar plenamente satisfeito com o Nagios, terminar de implementar o sistema no meu ambiente e manter a sanidade. Depois disso eu até escrevo uma apostila, um livro ou empacoto todas as soluções que encontrei num sistema e faço consultoria por ai.

Linux, Software 3 Comentários Hurtmold – Dois Pes E Ingrato


3 comentários

[...] já falei por aqui, estou implementando um servidor Nagios na empresa em que trabalho. Vou monitorar uma porrada de [...]

Caro,

Eu estou tendo os mesmos problemas e alguns ainda mais. No caso de Monitoração distribuída eu dividi um grande servidor em máquinas virtuais e configurei um Nágios em cada uma e cada um com um ambiente diferente da mesma rede (aqui é dividido por conta de cliente cada serviço, servidores e links e tal). Eu tenho um problema talvez vc conheça a solução, estou precisando de uma espécie de “front-end pra monitoria” que fica mostrando um desenho da rede com os servidores e links e dinamicamente mudando de cor os componentes com problema. Eu já ví isso em NOCs de monitoria de links de internet, com um telão gigante inclusive. Voce conhece uma forma de fazer isso no Nagios?

Vinícius,
Perambulando pelo Google, pesquisando sobre o famoso e querido Nagios, deparei-me com seu artigo alí em cima.
Por sinal, artigo muito bom. Bem redigido, conteúdo impecável.
Decidi, então, comentá-lo, já que tenho razoável experiência no Nagios. Vamos lá.
Trabalho numa empresa estatal que tem em torno de 130.000 estações/servidores, sem contar as impressoras, switches, roteadores, etc.
Os hosts do parque tem, na sua grande maioria (99%), S.O Windows, apesar dos esforços da empresa em incentivar a pesquisa e uso do Software Livre.
Como não poderia deixar de ser, o suporte a esse parque é sedimentado por região.
Então, “sobrou” prá mim e minha equipe dar suporte a “apenas” 800 servidores/routers/switches, sem contar outras centenas de impressoras e milhares de estações.
Pois bem.
Como você, resolvi encarar o desafio de implementar o Nagios para monitoração dos aproximadamente 800 hosts citados anteriormente (servidores/routers/switches.
Para isso, elaborei, em Excel, uma tabela padrão (apenas com os campos de cabeçalho), com os campos necessários para a criação dos arquivos .cfg requeridos pelo Nagios (adress, parent, contact. hostgroup, etc).
Enviei para os respectivos responsáveis por cada grupo de Host, solicitando preenchimento.
Converti essa planilha em texto e, através de um script em AWK, construí os .cfg e tudo funcionou direitinho, sem muito trabalho.
O Nagios estava funcionado satisfatoriamente. Até que, recentemente senti na pele o problema citado por você acima, sobre o Nagios não reconhecer os processadores: percebi que, depois de muito tempo funcionando, o Nagios ficava “bobo”, ora dando alerta sobre problema que não existia, ora não dando os alertas necessários.
Cheguei à conclusão que a causa disso era a grande quantidade processos rodando ao mesmo tempo, sendo que muitos deles, eram´”órfãos”.
Então, prá contornar o problema, agendei, via crontab, om reboot diário no servidor Nagios, às 02:00 horas da manhã.
Parece que isso resolveu. Estou observando já há alguns dias, e não percebi o problema novamente.
É isso.
Se estiver interessado no script prá configurar os hosts, dê um toque e eu disponibilizo.

Foi um prazer escrever no seu blog.

Abraço,

Dito Ramos

Comente, participe!




Comentário