Configurar a integridade do cluster fragmentado autogerenciado com health manager
Este documento descreve como usar gerenciadores de integridade para monitorar e gerenciar problemas de integridade em clusters fragmentados.
Visão geral
Um Health Manager executa verificações de saúde em umfaceta do gerenciador de integridade em umnível de intensidade especificado. As verificações do health manager são executadas em intervalos de tempo especificados. Um health manager pode ser configurado para mover automaticamente um mongos com falha fora de um cluster. O Monitor de Progresso garante que as verificações do Gerenciador de Integridade não fiquem presas ou deixem de responder.
Facetas do health manager
A tabela a seguir mostra as facets do Health Manager disponíveis:
Facet | O que o observador de integridade verifica |
---|---|
configServer | Problemas de integridade do cluster relacionados à conectividade com o servidor de configuração. |
dns | Problemas de integridade do cluster relacionados à disponibilidade e funcionalidade de DNS. |
ldap | Problemas de integridade do cluster relacionados à disponibilidade e funcionalidade do LDAP. |
Níveis de intensidade do gerenciados de integridade
A tabela a seguir mostra os níveis de intensidade disponíveis do gerenciador de integridade:
Nível de intensidade | Descrição |
---|---|
critical | O gerenciado de integridade nessa faceta está habilitado e tem a capacidade de mover os mongos com falha para fora do cluster se ocorrer um erro. O gerenciador de integridade espera o tempo especificado por activeFaultDurationSecs antes de parar e mover os mongos para fora do cluster automaticamente. |
non-critical | O health manager nesta facet está habilitado e registra erros, mas o mongos permanece no cluster se forem encontrados erros. |
off | O health manager nesta facet está desabilitado. O mongos não realiza nenhuma verificação de integridade nesta facet. Este é o nível de intensidade padrão. |
Duração da falha ativa
Quando uma falha é detectada e o nível de intensidade do gerenciador de integridade é definido como critical
, o gerenciador de integridade espera o tempo especificado por activeFaultDurationSecs
antes de parar e mover os mongos para fora do cluster automaticamente.
Monitor de progresso
O Monitor de Progresso executa testes para garantir que as verificações do gerenciador de integridade não fiquem presas ou deixem de responder. O Monitor de progresso executa esses testes em intervalos especificados por interval
. Se uma verificação de integridade começar, mas não for concluída dentro do tempo limite fornecido por deadline
, o Monitor de Progresso interromperá os mongos e o removerá do cluster.
progressMonitor
Campos
Campo | Descrição | Unidades |
---|---|---|
interval | Com que frequência os health managers não trancam ou ficam sem resposta. | Milissegundos |
deadline | Tempo limite antes da falha automática do mongos se uma verificação do health manager não estiver progredindo. | Segundos |
Exemplos
Os exemplos a seguir mostram como os health managers podem ser configurados. Para obter informações sobre os parâmetros do health manager, consulte Parâmetros do health manager.
Intensidade
Por exemplo, para definir dns
Health Manager facet para o nível de intensidade critical
, emita o seguinte na inicialização:
mongos --setParameter 'healthMonitoringIntensities={ values:[ { type:"dns", intensity: "critical"} ] }'
Ou se estiver usando o comando setParameter
em uma sessão mongosh
conectada a um mongos
:
db.adminCommand( { setParameter: 1, healthMonitoringIntensities: { values: [ { type: "dns", intensity: "critical" } ] } } ) } )
Os parâmetros configurados com setParameter
não persistem entre reinicializações. Consulte a página setParameter para obter detalhes.
Para tornar essa configuração persistente, defina healthMonitoringIntensities
em seu arquivo de configuração do mongos usando a opção setParameter
, como no exemplo a seguir:
setParameter: healthMonitoringIntensities: "{ values:[ { type:\"dns\", intensity: \"critical\"} ] }"
healthMonitoringIntensities
aceita uma série de documentos, values
. Cada documento no values
tem dois campos:
type
, a faceta do Health Managerintensity
, o nível de intensidade
Consulte healthMonitoringIntensities
para obter detalhes.
Intervalos
Por exemplo, para definir a ldap
Health Manager facet para executar verificações de integridade a cada 30 segundos, execute o seguinte na inicialização:
mongos --setParameter 'healthMonitoringIntervals={ values:[ { type:"ldap", interval: "30000"} ] }'
Ou se estiver usando o comando setParameter
em uma sessão mongosh
conectada a um mongos
:
db.adminCommand( { setParameter: 1, healthMonitoringIntervals: { values: [ { type: "ldap", interval: "30000" } ] } } ) } )
Os parâmetros configurados com setParameter
não persistem entre reinicializações. Consulte a página setParameter para obter detalhes.
Para tornar essa configuração persistente, defina healthMonitoringIntervals
em seu arquivo de configuração do mongos usando a opção setParameter
, como no exemplo a seguir:
setParameter: healthMonitoringIntervals: "{ values: [{type: \"ldap\", interval: 200}] }"
healthMonitoringIntervals
aceita uma série de documentos, values
. Cada documento no values
tem dois campos:
type
, a faceta do Health Managerinterval
, o intervalo de tempo em que ele é executado, em milissegundos
Consulte healthMonitoringIntervals
para obter detalhes.
Duração da falha ativa
Por exemplo, para definir a duração de falha para cinco minutos, emita o seguinte na inicialização:
mongos --setParameter activeFaultDurationSecs=300
Ou se estiver usando o comando setParameter
em uma sessão mongosh
conectada a um mongos
:
db.adminCommand( { setParameter: 1, activeFaultDurationSecs: 300 } )
Os parâmetros configurados com setParameter
não persistem entre reinicializações. Consulte a página setParameter para obter detalhes.
Para tornar essa configuração persistente, defina activeFaultDurationSecs
em seu arquivo de configuração do mongos usando a opção setParameter
, como no exemplo a seguir:
setParameter: activeFaultDurationSecs: 300
Consulte activeFaultDurationSecs
para obter detalhes.
Monitor de progresso
O Monitor de Progresso executa testes para garantir que as verificações do gerenciador de integridade não fiquem presas ou deixem de responder. O Monitor de progresso executa esses testes em intervalos especificados por interval
. Se uma verificação de integridade começar, mas não for concluída dentro do tempo limite fornecido por deadline
, o Monitor de Progresso interromperá os mongos e o removerá do cluster.
Para definir os interval
a 1000 milissegundos e os deadline
a 300 segundos, emita o seguinte na inicialização:
mongos --setParameter 'progressMonitor={"interval": 1000, "deadline": 300}'
Ou se estiver usando o comando setParameter
em uma sessão mongosh
conectada a um mongos
:
db.adminCommand( { setParameter: 1, progressMonitor: { interval: 1000, deadline: 300 } ) } )
Os parâmetros configurados com setParameter
não persistem entre reinicializações. Consulte a página setParameter para obter detalhes.
Para tornar essa configuração persistente, defina progressMonitor
em seu arquivo de configuração do mongos usando a opção setParameter
, como no exemplo a seguir:
setParameter: progressMonitor: "{ interval: 1000, deadline: 300 }"
Consulte progressMonitor
para obter detalhes.