Escriba reglas de alerta personalizadas en PromQL para monitorear nodos del clúster, hosts, réplicas de contenedores y cargas de trabajo.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Monitoreo Prometheus habilitado para su clúster ACK. Utilice Alibaba Cloud Prometheus Monitoring (recomendado) o open source Prometheus monitoring
Configuración de reglas de alerta con PromQL personalizado
Tanto Alibaba Cloud Prometheus como Prometheus de código abierto admiten reglas de alerta personalizadas basadas en PromQL que activan notificaciones cuando se cumplen ciertas condiciones.
Alibaba Cloud Prometheus
Para crear una regla de alerta de Prometheus con PromQL personalizado, consulte Create a Prometheus alert rule.
Prometheus de código abierto
Configure una directiva de notificación de alertas. Prometheus de código abierto admite webhooks, DingTalk y correo electrónico. Establezca el método de notificación mediante el parámetro
receiveren ack-prometheus-operator. Consulte Alerting configuration.-
Cree una regla de alerta. Despliegue un CRD PrometheusRule en el clúster para definir las reglas de alerta (consulte Deploying Prometheus rules). El siguiente ejemplo se activa cuando el uso de CPU del nodo supera el 90 % durante un periodo de 2 minutos. El campo
exprespecifica la expresión PromQL y la condición de activación.apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: labels: # Labels must match ruleSelector.matchLabels in the Prometheus CRD. prometheus: example role: alert-rules name: prometheus-example-rules spec: groups: - name: example.rules rules: - alert: ExampleAlert # expr: PromQL query and trigger condition. # Refer to the PromQL configuration column in the alert rule tables below. expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 90 -
Compruebe que la regla de alerta esté activa.
Ejecute el siguiente comando para reenviar el servicio Prometheus al puerto 9090 de su computadora local:
kubectl port-forward svc/ack-prometheus-operator-prometheus 9090:9090 -n monitoringAbra
localhost:9090en su navegador.Elija Status > Rules. Si la regla de alerta aparece en la página Rules, significa que está activa.
Referencia de reglas de alerta
ACK proporciona reglas de alerta recomendadas basadas en experiencia operativa, las cuales cubren estabilidad del clúster, uso de recursos de nodos y hosts, réplicas de contenedores, cargas de trabajo, almacenamiento y red.
Niveles de severidad:
Critical: Afecta al clúster, la aplicación o el negocio. Requiere acción inmediata.
Warning: Afecta al clúster, la aplicación o el negocio. Investigue con prontitud.
Normal: Indica un cambio importante en una función.
La columna Rule description toma como punto de entrada la pestaña Alert Rules dentro de la página Alerts . Para acceder: inicie sesión en la consola de ACK , haga clic en su clúster dentro de la lista Clusters y luego elija Operations > Alerts > Alert Rules .
Réplicas de contenedor anómalas
|
Descripción |
Severidad |
PromQL |
Umbral |
Ventana |
Descripción de la regla |
Resolución de problemas común |
||
|
Estado de pod anómalo |
Critical |
|
Unknown |
Failed"})[5m:1m]) > 0` |
> 0 |
5 min |
Se activa cuando un pod permanece en estado Pending, Unknown o Failed durante 5 minutos. Configure esta regla en Alert Rule Set for Pod Exceptions > Pod anomaly. Consulte Manage alerts in ACK. |
Consulte Troubleshoot pod exceptions. |
|
Error en el inicio del pod |
Critical |
|
> 3 reinicios |
5 min |
Se activa cuando un pod se reinicia más de 3 veces en 5 minutos. Configure esta regla en Alert Rule Set for Pod Exceptions > Pod startup failures. Consulte Manage alerts in ACK. |
Consulte Troubleshoot pod exceptions. |
||
|
Más de 1,000 pods no programados durante 10 minutos continuos |
Critical |
|
> 1,000 pods |
10 min |
Se activa cuando más de 1,000 pods permanecen en estado Pending debido a fallos de programación durante más de 10 minutos continuos. |
Puede indicar una presión excesiva en la programación. ACK Pro Edition ofrece capacidades mejoradas de programación y un SLA. Consulte Overview of ACK managed cluster Pro Edition. |
||
|
Limitación frecuente de CPU del contenedor |
Warning |
|
> 25% de tiempo limitado |
3 min |
Se activa cuando el tiempo de CPU limitado supera el 25 % durante 3 minutos. La limitación reduce las porciones de tiempo, lo que incrementa el tiempo de ejecución de los procesos y ralentiza la lógica de la aplicación. |
Compruebe si el |
||
|
Uso de CPU del pod > 85 % del límite |
Warning |
|
>= 85 % del límite del pod |
1 min |
Se activa cuando la CPU del pod supera el 85 % de su límite. No tiene efecto si no hay un límite configurado. Umbral predeterminado: 85 %; ajústelo según sea necesario. Para filtrar, reemplace |
Un uso elevado de CPU provoca limitaciones y reduce las porciones de tiempo. Compruebe si el |
||
|
Uso de memoria del pod > 85 % del límite |
Warning |
|
>= 85 % del límite del pod |
— |
Se activa cuando la memoria del pod supera el 85 % de su límite. No tiene efecto si no hay un límite configurado. Umbral predeterminado: 85 %; ajústelo según sea necesario. |
Un uso elevado de memoria puede desencadenar terminaciones OOM y reinicios del pod. Compruebe si el |
Cargas de trabajo anómalas
|
Descripción |
Severidad |
PromQL |
Umbral |
Ventana |
Descripción de la regla |
Resolución de problemas común |
|
Discrepancia en réplicas de Deployment |
Critical |
|
Cualquier discrepancia |
— |
Se activa cuando las réplicas disponibles del Deployment no coinciden con la cantidad deseada. Configure esta regla en Alert Rule Set for Workload Exceptions > Deployment pod anomaly. Consulte Manage alerts in ACK. |
Consulte Troubleshoot pod exceptions. |
|
Discrepancia en réplicas de DaemonSet |
Critical |
|
> 0 |
— |
Se activa cuando las réplicas disponibles del DaemonSet no coinciden con la cantidad deseada. Configure esta regla en Alert Rule Set for Workload Exceptions > DaemonSet pod anomaly. Consulte Manage alerts in ACK. |
Consulte Troubleshoot pod exceptions. |
|
Error de programación de DaemonSet |
Critical |
|
> 0 |
— |
Se activa cuando una réplica de DaemonSet se ejecuta en un nodo incorrecto. Configure esta regla en Alert Rule Set for Workload Exceptions > DaemonSet pod scheduling errors. Consulte Manage alerts in ACK. |
Consulte Troubleshoot pod exceptions. |
|
Fallo en Job |
Critical |
|
> 0 |
— |
Se activa cuando un Job falla. Configure esta regla en Alert Rule Set for Workload Exceptions > Job execution failures. Consulte Manage alerts in ACK. |
Revise los registros del pod fallido para obtener detalles del error. Consulte Troubleshoot pod exceptions. |
Excepciones de almacenamiento
|
Descripción |
Severidad |
PromQL |
Umbral |
Ventana |
Descripción de la regla |
Resolución de problemas común |
|
|
Estado anómalo de PersistentVolume (PV) |
Critical |
|
Pending"} > 0` |
> 0 |
— |
Se activa cuando un PV entra en estado Failed o Pending. Configure esta regla en Alert Rule Set for Storage Exceptions > PV anomaly. Consulte Manage alerts in ACK. |
Consulte la sección de montaje de discos en FAQ about disk PVs. |
|
Uso de disco del host > 85 % |
Critical |
|
>= 85 % |
— |
Se activa cuando el espacio libre en disco del nodo es inferior al 15 %. Configure esta regla en Alert Rule Set for Resource Exceptions > Node - Disk usage >= 85%. Consulte Manage alerts in ACK. |
Escale horizontalmente el nodo o amplíe su disco. Consulte FAQ about disk PVs. |
Estado anómalo del nodo
|
Descripción |
Severidad |
PromQL |
Umbral |
Ventana |
Descripción de la regla |
Resolución de problemas común |
|
Nodo en estado NotReady durante 3 minutos |
Critical |
|
> 0 |
3 min |
Se activa cuando un nodo permanece en estado NotReady durante 3 minutos. Configure esta regla en Alert Rule Set for Node Exceptions > Node changes to the unschedulable state. Consulte Manage alerts in ACK. |
Determine si el estado NotReady es esperado (por ejemplo, por reemplazo o mantenimiento del nodo). Si no lo es, compruebe si los pods de la aplicación están afectados y evíctelos si es necesario. Revise las condiciones del nodo para identificar causas como presión de memoria o disco lleno. |
Uso anómalo de recursos del host
Las métricas de recursos del host miden los recursos de máquinas físicas o virtuales. Uso = uso de recursos de todos los procesos / capacidad máxima del host.
| Descripción | Severidad | PromQL | Umbral | Ventana | Descripción de la regla | Resolución de problemas común |
|---|---|---|---|---|---|---|
| Uso de memoria del host > 85 % | Warning | (100 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100) >= 85 |
>= 85 % | — |
Se activa cuando el uso de memoria del host supera el 85 %. Configure esta regla en
Alert Rule Set for Resource Exceptions
>
Node - Memory usage >= 85%
. Consulte
Manage alerts in ACK
. Umbral predeterminado: 85 %; ajústelo según sea necesario.
Nota
Las reglas de alerta de ACK son proporcionadas por Cloud Monitor, con métricas consistentes con las reglas de Prometheus. |
Libere recursos: revise la asignación de recursos de los pods con cost analysis y ajuste las solicitudes de memoria con resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster. |
| Uso de memoria del host > 90 % | Critical | (100 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100) >= 90 |
>= 90 % | — | Se activa cuando el uso de memoria del host supera el 90 %. | Libere recursos con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster. |
| Uso de CPU del host > 85 % | Warning | 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) >= 85 |
>= 85 % | 2 min |
Se activa cuando el uso de CPU del host supera el 85 %. Configure esta regla en
Alert Rule Set for Resource Exceptions
>
Node - CPU usage >= 85%
.
Nota
ACK utiliza métricas de ECS de CloudMonitor, equivalentes a esta regla de Prometheus. Umbral predeterminado: 85 %; ajústelo según sea necesario. Consulte Manage alerts in ACK. |
Libere recursos con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster. |
| Uso de CPU del host > 90 % | Critical | 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) >= 90 |
>= 90 % | 2 min | Se activa cuando el uso de CPU del host supera el 90 %. | Libere recursos con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster. |
Recursos anómalos del nodo
Las métricas de recursos del nodo miden el consumo de recursos de los contenedores en relación con la capacidad asignable del nodo, no con la capacidad física de la máquina.
Recursos consumidos (numerador) : Total de recursos de todos los contenedores en el nodo, incluyendo memoria del conjunto de trabajo, caché de páginas, entre otros.
Recursos asignables (denominador) : Recursos disponibles para los contenedores después de restar las reservas del nodo. Consulte Node resource reservation policy .
La programación de pods se basa en las solicitudes de recursos, no en el uso real.
|
Descripción |
Severidad |
PromQL |
Umbral |
Ventana |
Descripción de la regla |
Resolución de problemas común |
|
Uso de CPU del nodo > 85 % |
Warning |
|
>= 85 % |
1 min |
Se activa cuando el uso de CPU del nodo supera el 85 % de los recursos asignables. Fórmula: Uso de recursos del nodo / Total de recursos asignables en el nodo. |
Libere recursos con cost analysis y resource profiling para distribuir los pods entre los nodos. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster. |
|
Tasa de asignación de recursos de CPU del nodo > 85 % |
Normal |
|
>= 85 % |
— |
Se activa cuando la tasa de asignación de recursos de CPU supera el 85 % de los recursos asignables. Fórmula: Total de solicitudes de recursos de pods programados / Total de recursos asignables en el nodo. |
Recursos insuficientes para programar más pods. Compruebe si hay desperdicio de recursos (uso real muy por debajo de las solicitudes) con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster. |
|
Tasa de sobreventa de CPU del nodo > 300 % |
Warning |
|
>= 300 % |
— |
Se activa cuando la tasa de sobreventa de CPU supera el 300 % de los recursos asignables. Fórmula: Total de límites de recursos de pods programados / Total de recursos asignables en el nodo. El umbral de 300 % es el valor predeterminado recomendado; ajústelo según sea necesario. |
Los límites totales de CPU superan ampliamente los recursos asignables. Durante picos de tráfico, la contención y la limitación pueden ralentizar las respuestas. Ajuste adecuadamente las solicitudes y límites de CPU con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster. |
|
Uso de memoria del nodo > 85 % |
Warning |
|
>= 85 % |
— |
Se activa cuando el uso de memoria del nodo supera el 85 % de los recursos asignables. Fórmula: Uso de recursos del nodo / Total de recursos asignables en el nodo. |
Libere recursos con cost analysis y resource profiling para distribuir los pods entre los nodos. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster. |
|
Tasa de asignación de recursos de memoria del nodo > 85 % |
Normal |
|
>= 85 % |
— |
Se activa cuando la tasa de asignación de recursos de memoria supera el 85 % de los recursos asignables. Fórmula: Total de solicitudes de recursos de pods programados / Total de recursos asignables en el nodo. |
Recursos insuficientes para programar más pods. Compruebe si hay desperdicio de recursos (uso real muy por debajo de las solicitudes) con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster. |
|
Tasa de sobreventa de memoria del nodo > 300 % |
Warning |
|
>= 300 % |
— |
Se activa cuando la tasa de sobreventa de memoria supera el 300 % de los recursos asignables. Fórmula: Total de límites de recursos de pods programados / Total de recursos asignables en el nodo. El umbral de 300 % es el valor predeterminado recomendado; ajústelo según sea necesario. |
Los límites totales de memoria superan ampliamente los recursos asignables. Durante picos de tráfico, la memoria puede alcanzar el límite del nodo y desencadenar terminaciones OOM que interrumpen las cargas de trabajo. Ajuste adecuadamente las solicitudes y límites de memoria con cost analysis y resource profiling. Escale horizontalmente los nodos; consulte Scale nodes in an ACK cluster. |
Excepciones de red
|
Descripción |
Severidad |
PromQL |
Umbral |
Ventana |
Descripción de la regla |
Resolución de problemas común |
|
El recuento de solicitudes de CoreDNS cae a cero |
Critical |
|
<= 0 |
1 min |
Detectable únicamente en clústeres administrados ACK (ediciones Pro y Basic). |
Compruebe si los pods de CoreDNS del clúster se ejecutan correctamente. |
|
Excepción panic en CoreDNS |
Critical |
|
> 0 |
3 min |
Detectable únicamente en clústeres administrados ACK (ediciones Pro y Basic). |
Compruebe si los pods de CoreDNS del clúster se ejecutan correctamente. |
|
Certificado del controlador Ingress por vencer en 14 días |
Warning |
|
< 14 días |
— |
Requiere que el componente del controlador Ingress de ACK esté instalado con la función Ingress habilitada. |
Renueve el certificado del controlador Ingress. |
Excepciones de Auto Scaling
| Descripción | Severidad | PromQL | Umbral | Ventana | Descripción de la regla | Resolución de problemas común |
|---|---|---|---|---|---|---|
| Recuento de réplicas HPA en el máximo | Warning | max(kube_horizontalpodautoscaler_spec_max_replicas) by (namespace, horizontalpodautoscaler) - max(kube_horizontalpodautoscaler_status_current_replicas) by (namespace, horizontalpodautoscaler) <= 0 |
Diferencia <= 0 | — |
Se activa cuando las réplicas actuales del HPA alcanzan el máximo configurado.
Nota
Habilite primero las métricas de |
Compruebe si la directiva HPA cumple con lo esperado. Si la carga de trabajo sigue siendo alta, aumente maxReplicas u optimice el rendimiento de la aplicación. |
Siguientes pasos
Consulte datos de Prometheus desde la consola o la API: Query Prometheus monitoring data using PromQL.
Localice problemas de red de contenedores: Use KubeSkoop to locate network issues.
Problemas comunes de Alibaba Cloud Prometheus: Observability FAQ