Nos últimos anos venho participando de projetos muito legais com o MongoDB, mas uma coisa sempre me “torrava a paciência”: monitoração. Um dos meus clientes chegou a criar um dashboard (fantástico, por sinal) para facilitar o meu trabalho.
E por que eu tinha problemas com a monitoração? Porque a maioria dos meus clientes utiliza a versão community, que não tinha uma ferramenta visual e gratuita para monitoração. Mas o MongoDB 4.0 trouxe uma novidade que me deixou bem contente: a possibilidade de monitorar a versão community usando uma ferramenta gráfica, gratuita e nativa.
Vamos esclarecer que, embora eu não tenha problemas para trabalhar com linhas de comando, a utilização de uma ferramenta gráfica aumenta a minha produtividade e simplifica meu trabalho.
A monitoração é importante porque me permite avaliar o estado do banco de dados. Além disso, me dá uma noção dos parâmetros operacionais normais do MongoDB, me permitindo diagnosticar problemas antes que eles se transformem em falhas.
A novidade
A monitoração gratuita acontece através da internet, ou seja, você não precisa instalar nada, basta habilitar a monitoração de uma das seguintes maneiras:
- Em tempo de execução (com o mongod já iniciado)
- Execute no Mongo Shell, os comandos:
- db.enableFreeMonitoring() para iniciar a monitoração
- db.disableFreeMonitoring() para parar a monitoração
- Execute no Mongo Shell, os comandos:
- Durante a inicialização do mongod, você tem duas opções:
- Incluir a opção cloud.monitoring.free.state no arquivo de configuração.
- Usar o parâmetro –enableFreeMonitoring na linha de comando de inicialização do mongod.
- Em ambos os casos (linha de comando ou arquivo de configuração) os valores aceitos, são:
- runtime: valor default que permite ativar ou desativar a monitoração em tempo de execução.
- on: inicia a monitoração na inicialização do serviço, mas não permite desativá-la em tempo de execução.
- off: desativa a monitoração na inicialização, independentemente de você ter inicializado anteriormente. Quando desativada na inicialização, você não pode ativar a monitoração em tempo de execução.
Depois de ativada, a monitoração permanecerá assim até que você a desative.
Se for necessário monitorar a monitoração (desculpem o trocadilho ridículo, mas não resisti), use os métodos:
- db.getFreeMonitoringStatus() que retorna o status da monitoração
- db.serverStatus() retorna informações do servidor, entre elas informações estatísticas da monitoração (no atributo freeMonitoring)
Informações monitoradas
As informações que podemos monitorar, são:
- Tempos de execução das operações
- Uso de memória
- Utilização da CPU
- Contagem de operações
Segurança
A monitoração acontece pela internet (e neste momento imagino o pessoal de Segurança da Informação tendo mini infartos). Eu também me assustei quando eu soube, mas me tranquilizei depois, porque:
- Só temos acesso a dados de monitoração das últimas 24 horas.
- Ao ativar a monitoração gratuita, você recebe uma URL exclusiva para monitorar o BD, e somente pessoas com as quais você compartilhar essa URL podem acessar a ferramenta.
Conclusão
A monitoração é essencial para todo DBA, e o MongoDB 4.0 tem esse recurso de forma gratuita na versão community, o que mostra um SGBD cada vez mais maduro.
Antes que você me pergunte se eu já usei em produção: ainda não! Mas estou na esperança de usar em breve, e acredito que o MongoDB 4.0 vai tornar meu trabalho bem mais fácil!
Referências e links úteis
- Se você não conhece o MongoDB acesse meu blog e conheça mais: www.DB4Beginners.com/MongoDB
- Referência fofa: https://docs.mongodb.com/manual/administration/free-monitoring/