MongoDB
Escrito por Hitfy
Monitoramento MongoDB no Zabbix via mongostat e Itens Dependentes
Descrição
Este artigo descreve o procedimento para configurar o monitoramento do MongoDB no Zabbix utilizando o utilitário mongostat.
A coleta é feita através da execução de um comando que retorna estatísticas em formato JSON, sendo consumidas no Zabbix através de itens dependentes.
Objetivo
- Habilitar coleta de métricas do MongoDB via
mongostat. - Configurar permissões mínimas de usuário para leitura de métricas.
- Integrar a saída em JSON com itens dependentes no Zabbix.
Pré-requisitos
- Zabbix Server e Agent configurados.
- Acesso ao servidor que executa o MongoDB.
- Permissão de administrador no MongoDB para criação de usuários.
- Template de monitoramento do MongoDB já importado no Zabbix.
Passo a passo de configuração
1. Instalar o mongostat
No servidor onde está o MongoDB, instale o cliente Mongo:
Debian/Ubuntu:
sudo apt update sudo apt install mongodb-clients
RHEL/CentOS/Oracle/Rocky:
sudo dnf install -y mongodb-org-shell
2. Testar a coleta em JSON
Execute:
mongostat --json -n 1 -h 127.0.0.1
Exemplo de saída esperada:
{"host":"127.0.0.1","insert":0,"query":1,"update":0,"delete":0,"command":2,...}
Se houver retorno similar, a instalação está correta.
3. Configurar mongod.conf para escutar em loopback
Edite o arquivo:
sudo vim /etc/mongod.conf
Localize a linha com bindIp.
Se estiver assim:
bindIp: 192.168.10.221
Modifique para:
bindIp: 127.0.0.1,192.168.10.221
Isso garante que o Mongo aceite conexões tanto pelo IP local (127.0.0.1) quanto pelo IP da rede configurado.
4. Criar usuário para coleta
Acesse o MongoDB:
mongo
Crie um usuário com a role mínima clusterMonitor:
use admin
db.createUser({
user: "hitfy",
pwd: "SENHA_DO_DB",
roles: [ { role: "clusterMonitor", db: "admin" } ]
})
A role clusterMonitor garante apenas leitura das métricas do sistema e do cluster.
5. Configurar macros no Zabbix
No host que utilizará o template de monitoramento MongoDB, preencha as macros abaixo com as credenciais criadas:
{$IT_USUARIO}? Usuário criado no MongoDB{$IT_SENHA}? Senha do usuário{$IT_NOME_BANCO}? Banco de autenticação (ex.:admin)
Funcionamento no Zabbix
- O item principal executa o comando
mongostat --json. - O retorno em JSON é armazenado.
- Itens dependentes do template consomem as métricas específicas (ex.:
insert,query,update,delete,command, etc.).
Isso reduz a carga no servidor, pois apenas um comando é executado, e o Zabbix extrai várias métricas a partir dele.
Verificação
- No host do Zabbix, vincule o template de MongoDB.
- Aguarde a coleta inicial.
- Verifique em Latest Data se as métricas (
insert,query,update,delete, etc.) estão sendo populadas.
Observações
- Caso o MongoDB esteja em cluster, configurar o usuário no banco
admingarante visibilidade em todos os nós. - Se o Zabbix Agent estiver em outra máquina, o bindIp deverá permitir o acesso remoto (ex.:
0.0.0.0ou IP específico do agente). - O
mongostatprecisa estar disponível no PATH do sistema onde o Zabbix Agent executa.