Algumas críticas ao Nagios

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.

Comentários