Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/

Configurar el estado del clúster fragmentado autoadministrado con administradores de estado

Este documento describe cómo utilizar los gestores de verificaciones de estado para supervisar y gestionar problemas de salud en clústeres fragmentados.

Un administrador de salud realiza controles de salud en un faceta de gestión de verificaciónes de estado en un 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.

La siguiente tabla muestra las facetas de gestión de verificaciónes de estado disponibles:

Facet
Qué verifica el Health Observer

configServer

Problemas de salud del clúster relacionados con la conectividad al servidor de configuración.

dns

Problemas de salud del clúster relacionados con la disponibilidad y funcionalidad del DNS.

ldap

Problemas de salud del clúster relacionados con la disponibilidad y funcionalidad de LDAP.

La siguiente tabla muestra los niveles de intensidad disponibles del gestor de verificaciones de estado:

Nivel de intensidad
Descripción

critical

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 activeFaultDurationSecs antes de detenerse y mover el mongos fuera del clúster automáticamente.

non-critical

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.

off

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.

Cuando se detecta una falla y el nivel de intensidad del gestor de verificaciones de estado está configurado en critical, el gestor de verificaciones de estado espera la cantidad de tiempo especificada por activeFaultDurationSecs antes de detenerse y sacar automáticamente el mongos del clúster.

Monitor de progreso ejecuta pruebas para garantizar que las comprobaciones del gestor de verificaciones de estado no se atasquen o no respondan. El Monitor de Progreso ejecuta estas pruebas en los intervalos especificados por interval. Si una verificación de estado se inicia pero no se completa dentro del tiempo de espera establecido por deadline, el Monitor de Progreso detiene el mongos y lo remueve del clúster.

Campo
Descripción
Unidades

interval

Con qué frecuencia se garantiza que los gestores de verificaciones de estado no se atasquen o dejen de responder.

Milisegundos

deadline

Tiempo de espera antes de fallar automáticamente el mongos si una verificación del gestor de verificaciones de estado no está progresando.

Segundos

Los siguientes ejemplos muestran cómo se pueden configurar los gestores de verificaciones de estado. Para obtener información sobre los parámetros de gestor de verificaciones de estado, consulta Parámetros de gestor de verificaciones de estado.

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 estado

  • intensity, el nivel de intensidad

Consulta healthMonitoringIntensities para obtener más detalles.

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 estado

  • interval, el intervalo de tiempo en el que se ejecuta, en milisegundos

Consulta healthMonitoringIntervals para obtener más detalles.

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 ejecuta pruebas para garantizar que las comprobaciones del gestor de verificaciones de estado no se atasquen o no respondan. El Monitor de Progreso ejecuta estas pruebas en los intervalos especificados por interval. Si una verificación de estado se inicia pero no se completa dentro del tiempo de espera establecido por deadline, el Monitor de Progreso detiene el mongos y lo remueve 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.

Volver

Solucionar problemas

En esta página