Este documento describe cómo usar Health Managers para monitorear y administrar problemas de salud del clúster fragmentado.
Overview
Un administrador de salud realiza controles de salud en un faceta de gerente de salud en un momento específico Nivel de intensidad. Las comprobaciones del Administrador de Estado se ejecutan a intervalos de tiempo específicos. Se puede configurar un Administrador de Estado para que retire automáticamente un mongos fallido del clúster. ElMonitor de Progreso garantiza que las comprobaciones del Administrador de Estado no se bloqueen ni dejen de responder.
Facetas del administrador de salud
La siguiente tabla muestra las facetas de gestión de verificaciónes de estado disponibles:
Facet | Qué verifica el Health Observer |
|---|---|
| Problemas de salud del clúster relacionados con la conectividad al servidor de configuración. |
| Problemas de salud del clúster relacionados con la disponibilidad y funcionalidad del DNS. |
| Problemas de salud del clúster relacionados con la disponibilidad y funcionalidad de LDAP. |
Niveles de intensidad del administrador de salud
La siguiente tabla muestra los niveles de intensidad del Administrador de Salud disponibles:
Nivel de intensidad | Descripción |
|---|---|
| El gestor de verificaciones de estado en esta faceta está habilitado y tiene la capacidad de mover los mongos que fallan fuera del clúster si ocurre un error. El gestor de verificaciones de estado espera el tiempo especificado por |
| El gestor de verificaciones de estado en esta faceta está habilitado y registra errores, pero el mongos permanece en el clúster si se encuentran errores. |
| El gestor de verificaciones de estado en esta faceta está deshabilitado. El mongos no realiza ninguna verificación de estado en esta faceta. Este es el nivel de intensidad por defecto. |
Duración de falla activa
Cuando se detecta una falla y el nivel de intensidad del Administrador de salud se establece critical en, el Administrador de salud espera la cantidad de tiempo especificada por antes de activeFaultDurationSecs detenerse y mover los mongos fuera del clúster automáticamente.
Monitor de progreso
Progress Monitor ejecuta pruebas para garantizar que las comprobaciones del Administrador de Estado no se bloqueen ni dejen de responder. Progress Monitor ejecuta estas pruebas en los intervalos especificados interval por. Si una comprobación de estado comienza pero no se completa dentro del tiempo de espera especificado deadline por, Progress Monitor detiene mongos y lo elimina del clúster.
progressMonitor Campos
Campo | Descripción | Unidades |
|---|---|---|
| Con qué frecuencia se garantiza que los gestores de verificaciones de estado no se atasquen o dejen de responder. | Milisegundos |
| Tiempo de espera antes de fallar automáticamente el mongos si una verificación del gestor de verificaciones de estado no está progresando. | Segundos |
Ejemplos
Los siguientes ejemplos muestran cómo configurar los administradores de salud. Para obtener información sobre sus parámetros, consulte Parámetros del administrador de salud.
Intensidad
Por ejemplo, para establecer la faceta de gestión de verificaciones de estado dns al nivel de intensidad critical, emita lo siguiente al inicio:
mongos --setParameter 'healthMonitoringIntensities={ values:[ { type:"dns", intensity: "critical"} ] }'
O si usas el comando setParameter en una sesión de mongosh que está conectada a un mongos en ejecución:
db.adminCommand( { setParameter: 1, healthMonitoringIntensities: { values: [ { type: "dns", intensity: "critical" } ] } } ) } )
Los parámetros establecidos con setParameter no persisten después de reiniciar. Consulte la página setParameter para más detalles.
Para que esta configuración sea persistente, se debe establecer healthMonitoringIntensities en el archivo de configuración de mongos con la opción setParameter como en el siguiente ejemplo:
setParameter: healthMonitoringIntensities: "{ values:[ { type:\"dns\", intensity: \"critical\"} ] }"
healthMonitoringIntensities acepta un arreglo de documentos, values. Cada documento en values requiere dos campos:
type, la faceta de gestión de verificaciónes de estadointensity, el nivel de intensidad
Consulta healthMonitoringIntensities para obtener más detalles.
Intervalos
Por ejemplo, para configurar la faceta de gestión de verificaciones de estado ldap para ejecutar verificaciones de estado cada 30 segundos, emita lo siguiente al inicio.
mongos --setParameter 'healthMonitoringIntervals={ values:[ { type:"ldap", interval: "30000"} ] }'
O si usas el comando setParameter en una sesión de mongosh que está conectada a un mongos en ejecución:
db.adminCommand( { setParameter: 1, healthMonitoringIntervals: { values: [ { type: "ldap", interval: "30000" } ] } } ) } )
Los parámetros establecidos con setParameter no persisten después de reiniciar. Consulte la página setParameter para más detalles.
Para que esta configuración sea persistente, se debe establecer healthMonitoringIntervals en el archivo de configuración de mongos con la opción setParameter como en el siguiente ejemplo:
setParameter: healthMonitoringIntervals: "{ values: [{type: \"ldap\", interval: 200}] }"
healthMonitoringIntervals acepta un arreglo de documentos, values. Cada documento en values requiere dos campos:
type, la faceta de gestión de verificaciónes de estadointerval, el intervalo de tiempo en el que se ejecuta, en milisegundos
Consulta healthMonitoringIntervals para obtener más detalles.
Duración de falla activa
Por ejemplo, para establecer la duración desde la falla hasta la caída del sistema en cinco minutos, emite lo siguiente durante la iniciación:
mongos --setParameter activeFaultDurationSecs=300
O si usas el comando setParameter en una sesión de mongosh que está conectada a un mongos en ejecución:
db.adminCommand( { setParameter: 1, activeFaultDurationSecs: 300 } )
Los parámetros establecidos con setParameter no persisten después de reiniciar. Consulte la página setParameter para más detalles.
Para que esta configuración sea persistente, se debe establecer activeFaultDurationSecs en el archivo de configuración de mongos con la opción setParameter como en el siguiente ejemplo:
setParameter: activeFaultDurationSecs: 300
Consulta activeFaultDurationSecs para obtener más detalles.
Monitor de progreso
Progress Monitor ejecuta pruebas para garantizar que las comprobaciones del Administrador de Estado no se bloqueen ni dejen de responder. Progress Monitor ejecuta estas pruebas en los intervalos especificados interval por. Si una comprobación de estado comienza pero no se completa dentro del tiempo de espera especificado deadline por, Progress Monitor detiene mongos y lo elimina del clúster.
Para establecer interval en 1000 milisegundos y deadline en 300 segundos, emite lo siguiente durante la iniciación:
mongos --setParameter 'progressMonitor={"interval": 1000, "deadline": 300}'
O si usas el comando setParameter en una sesión de mongosh que está conectada a un mongos en ejecución:
db.adminCommand( { setParameter: 1, progressMonitor: { interval: 1000, deadline: 300 } ) } )
Los parámetros establecidos con setParameter no persisten después de reiniciar. Consulte la página setParameter para más detalles.
Para que esta configuración sea persistente, se debe establecer progressMonitor en el archivo de configuración de mongos con la opción setParameter como en el siguiente ejemplo:
setParameter: progressMonitor: "{ interval: 1000, deadline: 300 }"
Consulta progressMonitor para obtener más detalles.