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
admin
garante 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.0
ou IP específico do agente). - O
mongostat
precisa estar disponível no PATH do sistema onde o Zabbix Agent executa.