Monitorización
Métricas para Prometheus, comprobación de salud y estado de los rangos.
Cada nodo sirve en su puerto de administración (27200 por defecto) las métricas y la comprobación de salud.
Requisitos
- Acceso de red al puerto de administración de cada nodo.
- Para
/metrics, el certificado de cliente de un usuario con el rolclusterMonitor.
/healthz
Responde 200 si el nodo sirve y 503 si no, sin cuerpo y sin credenciales. Úsalo en tu balanceador o tu orquestador.
/metrics
Responde en el formato de exposición de Prometheus, así que cualquier servidor de Prometheus puede leerlo directamente.
Pide un certificado de cliente de un usuario con el rol clusterMonitor; sin él, el nodo rechaza la petición.
| Métrica | Qué mide |
|---|---|
teseladb_up | El nodo está en marcha |
teseladb_ranges | Rangos con réplica en este nodo |
teseladb_range_applied_index{range} | Última entrada aplicada de cada réplica |
teseladb_range_leader{range} | Si este nodo es el líder de ese rango |
teseladb admin metricsCon esa orden lees las mismas métricas desde la CLI, sin pasar por Prometheus, con las credenciales del --dbpath del
nodo.
Rangos
teseladb admin ranges --collection tienda.pedidosMuestra cada rango con sus límites, las réplicas que tiene y el nodo que lo lidera. Desde mongosh, serverStatus, currentOp, $collStats y el
perfilador tienen la forma de MongoDB.
Comprobar
curl -s -o /dev/null -w "%{http_code}\n" --cacert ca.pem https://node-01:27200/healthzLa orden escribe 200 si el nodo sirve. Si escribe 503, el nodo está en marcha pero todavía no atiende peticiones.
Problemas frecuentes
- Si
/metricsrechaza la petición, falta el certificado de cliente o su usuario no tiene el rolclusterMonitor. - Si
/healthzcontesta503, el nodo está en marcha pero todavía no sirve. Tu balanceador no debe mandarle tráfico hasta que conteste200.