Monitorar MongoDB com SNMP no Linux
Nesta página
Visão geral
O MongoDB Enterprise pode fornecer métricas de banco de dados de dados via SNMP, em suporte à coleta e agregação centralizadas de dados. Este procedimento explica a instalação e a configuração de uma instância mongod
como um subagente do SNMP, bem como a inicialização e o teste do suporte ao SNMP com o MongoDB Enterprise.
Dica
Veja também:
Solucione problemas de SNMP e monitore o MongoDB Windows com SNMP para obter instruções completas sobre como usar o MongoDB com SNMP em sistemas Windows.
Considerações
Arquivos de configuração
O MongoDB Enterprise inclui os seguintes arquivos de configuração SNMP:
MONGOD-MIB.txt
:O arquivo da base de informações de gerenciamento (MIB) que define a saída SNMP do MongoDB. Em plataformas Ubuntu e Debian, este arquivo é enviado compactado como
MONGOD-MIB.txt.gz
e deve ser descompactado comgunzip
.mongod.conf.subagent
:O arquivo de configuração para executar o
mongod
como o subagente SNMP. Este arquivo define as opções de configuração de tempo de execução do SNMP, incluindo oagentXSocket
para se conectar ao mestre SNMP.mongod.conf.master
:O arquivo de configuração para executar o
mongod
como o mestre SNMP. Este arquivo define as opções de configuração de tempo de execução do SNMP, incluindo oagentaddress
para ser executado.
Os arquivos de configuração SNMP do MongoDB são fornecidos com a instalação do MongoDB Enterprise, da seguinte forma:
Se você instalou o MongoDB Enterprise por meio de um gerenciador de pacotes, esses arquivos serão instalados no seguinte diretório como parte do processo de instalação do pacote:
PlataformaCaminhoRHEL / CentOS/usr/share/doc/mongodb-enterprise-server-5.0.29
Ubuntu/Debian/usr/share/doc/mongodb-enterprise-server
SUSE/usr/share/doc/packages/mongodb-enterprise-server
Se você instalou o MongoDB Enterprise a partir de um tarball
.tgz
, esses arquivos foram incluídos no tarball.
Procedimento
Copie os arquivos de configuração.
Copie os arquivos de configuração SNMP do MongoDB do local de instalação para os diretórios de destino, de acordo com a sua plataforma:
Navegue até o local onde os arquivos SNMP foram instalados. Por exemplo, se você instalou a versão mais recente do MongoDB por meio do gerenciador de pacotes
yum
:cd /usr/share/doc/mongodb-enterprise-server-5.0.29 Copie os dois arquivos SNMP do MongoDB para seus diretórios de destino:
sudo cp MONGOD-MIB.txt /usr/share/snmp/mibs/ sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
Navegue até o local onde os arquivos SNMP foram instalados. Por exemplo, se você instalou o MongoDB por meio do gerenciador de pacotes
apt
:cd /usr/share/doc/mongodb-enterprise-server Copie o arquivo
MONGOD-MIB.txt.gz
para seu diretório de destino e descompacte-o:sudo cp MONGOD-MIB.txt.gz /usr/share/snmp/mibs/ sudo gunzip /usr/share/snmp/mibs/MONGOD-MIB.txt.gz Copie o arquivo
mongod.conf.subagent
para seu diretório de destino:sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
Navegue até o local onde os arquivos SNMP foram instalados. Por exemplo, se você instalou a versão mais recente do MongoDB por meio do gerenciador de pacotes
zypper
:cd /usr/share/doc/packages/mongodb-enterprise-server Copie os dois arquivos SNMP do MongoDB para seus diretórios de destino:
sudo cp MONGOD-MIB.txt /usr/share/snmp/mibs/ sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
Configurar o SNMP.
Edite o arquivo /etc/snmp/snmpd.conf
e adicione o seguinte:
# sec.name source community com2sec local localhost mongodb # group.name sec.model sec.name group MyRWGroup any local # incl/excl subtree mask view all included .1 80 # context sec.model sec.level prefix read write notif access MyRWGroup "" any noauth 0 all all all master agentx AgentXSocket /tmp/agentx/master AgentXPerms 0777 0777 mongod mongod
Instale o
snmpd
se ainda não estiver instalado:sudo apt-get install snmpd Edite o arquivo
/etc/snmp/snmpd.conf
e adicione o seguinte:# sec.name source community com2sec local localhost mongodb # group.name sec.model sec.name group MyRWGroup any local # incl/excl subtree mask view all included .1 80 # context sec.model sec.level prefix read write notif access MyRWGroup "" any noauth 0 all all all AgentXSocket /tmp/agentx/master AgentXPerms 0777 0777 mongodb mongodb
Edite o arquivo /etc/snmp/snmpd.conf
e adicione o seguinte:
# sec.name source community com2sec local localhost mongodb # group.name sec.model sec.name group MyRWGroup any local # incl/excl subtree mask view all included .1 80 # context sec.model sec.level prefix read write notif access MyRWGroup "" any noauth 0 all all all master agentx AgentXSocket /tmp/agentx/master AgentXPerms 0777 0777 mongod mongod
Essa configuração define um soquete de domínio UNIX para comunicação entre o agente (snmpd
) e o sub-agente (MongoDB) e define permissões SNMP básicas para acessar o campo SNMP relevantes do MongoDB.
Observação
Para vincular seu mestre a um endereço IP que não seja localhost, adicione esse endereço IP ao campo agentaddress
no arquivo /etc/snmp/snmpd.conf
e atualize as ACLs de segurança de rede apropriadas para permitir um intervalo de endereços válido. Um intervalo de endereços de 10.0.0.0/8 com um nome de segurança de "mynetwork" foi fornecido no arquivo de configuração do mongod.conf.master
como um exemplo.
A configuração acima é fornecida apenas como exemplo; você pode personalizar as permissões com base nos requisitos de segurança do seu site. Embora o suporte do MongoDB possa fornecer orientações sobre como configurar o MongoDB para SNMP, a configuração do SNMP em sistemas operacionais está fora de escopo.
Inicie o MongoDB.
Inicie mongod
com o snmp-subagent
para enviar dados para o mestre SNMP.
mongod --snmp-subagent
Confirme a recuperação de dados SNMP.
Verifique se o MongoDB está acessível para query SNMP com o comando de teste snmpwalk
.
Instale o
snmpwalk
no seu sistema:sudo yum install net-snmp-utils Execute
snmpwalk
com os seguintes parâmetros para verificar a capacidade de coletar dados demongod
:snmpwalk -m /usr/share/snmp/mibs/MONGOD-MIB.txt -v 2c -c mongodb 127.0.0.1:161 1.3.6.1.4.1.34601
Debian : se necessário, adicione o repositório
non-free
ao seu arquivo/etc/apt/sources.list
para acessar o pacotesnmp-mibs-downloader
. Por exemplo, no Debian 9 "Stretch", as entradas do repositório principal podem ter a seguinte aparência:deb http://deb.debian.org/debian stretch main non-free deb-src http://deb.debian.org/debian stretch main non-free Debian / Ubuntu: Instale o pacote
snmp-mibs-downloader
para fornecer os arquivos MIB necessários e, em seguida, reinicie o serviçosnmpd
para recarregar os novos arquivos MIB:sudo apt-get update sudo apt-get -y install snmp-mibs-downloader sudo service snmpd restart Debian / Ubuntu: execute
snmpwalk
com os seguintes parâmetros para verificar a capacidade de coletar dados domongod
:snmpwalk -m /usr/share/snmp/mibs/MONGOD-MIB.txt -v 2c -c mongodb 127.0.0.1:161 1.3.6.1.4.1.34601
snmpwalk -m /usr/share/snmp/mibs/MONGOD-MIB.txt -v 2c -c mongodb 127.0.0.1:161 1.3.6.1.4.1.34601
O comando snmpwalk
deve exibir os valores atuais para campos SNMP como sysUpTime
e memoryResident
, entre outros.
Opcional: execute o MongoDB como SNMP Master
Você pode executar mongod
com a opção snmp-master
para fins de teste. Para fazer isso, use o arquivo de configuração mestre SNMP em vez do arquivo de configuração subagente. No diretório que contém os arquivos de instalação do MongoDB descompactados:
cp mongod.conf.master /etc/snmp/mongod.conf
Observação
Para vincular seu mestre a um endereço IP que não seja localhost, adicione esse endereço IP ao campo agentaddress
no arquivo /etc/snmp/mongod.conf
e atualize as ACLs de segurança de rede apropriadas para permitir um intervalo de endereços válido. Um intervalo de endereços de 10.0.0.0/8 com um nome de segurança de "mynetwork" foi fornecido no arquivo de configuração mestre como um exemplo.
Em seguida, inicie mongod
com a opção snmp-master
:
mongod --snmp-master