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.: insertqueryupdatedeletecommand, 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

  1. No host do Zabbix, vincule o template de MongoDB.
  2. Aguarde a coleta inicial.
  3. Verifique em Latest Data se as métricas (insertqueryupdatedelete, 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).
  • mongostat precisa estar disponível no PATH do sistema onde o Zabbix Agent executa.