Pular para o conteúdo

MongoDB

A própria base de dados de documentos: o replica set (membros, o seu estado, um primário em falta, quanto cada secundário está atrasado), ligações contra o limite, a cache do WiredTiger, operações e asserções.

O DumbMonit inicia sessão com uma conta que tem apenas o papel incorporado clusterMonitor, executa serverStatus, e replSetGetStatus quando o servidor pertence a um replica set. Esse papel lê o estado do servidor e da replicação, e nenhum documento de nenhuma base de dados. O MongoDB 3.6 e posteriores são cobertos; o DumbMonit fala ele próprio o protocolo de rede, sem driver.

As falhas a vigiar: um replica set que perdeu o primário não aceita nenhuma escrita até uma eleição ter êxito; um secundário que fica para trás é o que será eleito no dia em que o primário morrer, sem as últimas escritas; no limite de ligações os novos clientes são recusados; com mais de 20% da cache do WiredTiger suja, as consultas têm de evacuar páginas elas próprias e tudo abranda.

Todas as métricas têm o prefixo dumbmonit_mongodb_. Os totais são contadores: os gráficos e as regras convertem-nos em taxas.

MétricaO quêEtiquetas
version_infovalor 1version, process, storage_engine
role_infovalor 1role: primary, secondary, arbiter, standalone
uptime_seconds
connections_current, connections_available, connections_active
connections_used_percentatual contra atual mais disponível
connections_created_total, connections_rejected_total
operations_totaloperações desde o arranqueop: insert, query, update, delete, getmore, command
asserts_totalasserções desde o arranque; type é regular (erros internos do servidor), warning, msg, user (erros devolvidos aos clientes), tripwire ou rollovers. regular e user são os que merecem um gráficotype
queued_operations, active_clientsoperações à espera de um bloqueio, clientes a executar uma
wiredtiger_cache_max_bytes, wiredtiger_cache_used_bytes, wiredtiger_cache_used_percenta cache do WiredTiger e o quão cheia está
wiredtiger_cache_dirty_bytes, wiredtiger_cache_dirty_percentpáginas modificadas ainda não escritas
wiredtiger_cache_read_bytes_totalbytes lidos do disco para a cache
memory_resident_bytes
network_bytes_in_total, network_bytes_out_total
cursors_open, cursors_timed_out_total, documents_deleted_total
replset_infovalor 1, num replica setset, members
replset_primary_present1 quando um membro é primário, 0 quando nenhum é
replset_member_stateo número de estado do membromember, state: primary, secondary, arbiter, recovering, down…
replset_member_health1 quando o membro é alcançável, 0 quando não émember
replset_member_lag_secondsquanto um secundário está atrasado em relação ao primáriomember

As regras incorporadas que se aplicam: MongoDB replica set without primary, MongoDB member unreachable, MongoDB replication lag, MongoDB connections near the limit, MongoDB cache under pressure, MongoDB internal errors, mais Monitor unreachable.

O painel acima dos gráficos lê o que a sonda guardou; abrir a página nunca consulta o MongoDB. Diz numa frase o que está errado (replica set, ligações, cache, erros internos), depois as ligações, as operações por segundo, a cache usada, a memória residente, as operações em fila e o tempo de atividade, depois o estado e o atraso de cada membro do replica set e as operações por segundo por tipo.

Criar uma conta MongoDB com o papel clusterMonitor

Seção intitulada “Criar uma conta MongoDB com o papel clusterMonitor”
  1. No mongosh, com sessão iniciada num utilizador autorizado a criar utilizadores, crie uma conta apenas com o papel incorporado clusterMonitor. Lê o estado do servidor e da replicação, e nenhum documento de nenhuma base de dados.

    use admin
    db.createUser({user: "dumbmonit", pwd: passwordPrompt(), roles: [{role: "clusterMonitor", db: "admin"}]})
  2. O DumbMonit inicia sessão com SCRAM-SHA-256, a predefinição para contas criadas no MongoDB 4.0 e posteriores. Se criou a conta noutra base de dados que não admin, defina a Base de dados de autenticação abaixo.

  3. No DumbMonit, introduza o endereço de um mongod, por exemplo «db1.lan» ou «db1.lan:27018». Num replica set, adicione todos os membros: cada um reporta as suas próprias ligações e cache, e qualquer um deles reporta o estado e o atraso de todos os membros. Se o servidor exige TLS, marque TLS abaixo.

  4. O DumbMonit só executa serverStatus e replSetGetStatus. Nunca lista uma coleção e nunca lê um documento.

CredencialCampos
Nome de utilizador / palavra-passeA conta clusterMonitor criada acima, com sessão iniciada em SCRAM-SHA-256.
Sem autenticaçãoPara um servidor iniciado sem controlo de acesso.

Uma conta que só tem credenciais SCRAM-SHA-1 (criada antes do MongoDB 4.0 e nunca atualizada) é recusada: atualize a sua palavra-passe uma vez com db.updateUser("dumbmonit", {pwd: passwordPrompt(), mechanisms: ["SCRAM-SHA-256"]}).

Endereço: um nome de anfitrião ou IP (db1.lan), host:port, ou uma cadeia de ligação mongodb:// com um único anfitrião. Opções: porta (27017), base de dados de autenticação (admin), TLS (desativado), verificação do certificado e tempo limite para toda a verificação (10 s).