En esta página, se muestra cómo crear políticas de alertas para los clústeres de Google Distributed Cloud.
Antes de comenzar
Debes contar con los siguientes permisos para crear políticas de alertas:
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.update
Tendrás estos permisos si tienes una de las siguientes funciones:
monitoring.alertPolicyEditor
monitoring.editor
- Editor del proyecto
- Propietario del proyecto
Para crear una política de alertas basada en registros con Google Cloud CLI, también debes tener el rol serviceusage.serviceUsageConsumer
.
Para verificar tus roles, ve a la página de IAM en la consola de Google Cloud.
Crea una política de ejemplo: El servidor de la API no está disponible
En este ejercicio, crearás una política de alertas para los servidores de la API de Kubernetes. Con esta política implementada, puedes configurarla para recibir notificaciones siempre que el servidor de API de un clúster no esté disponible.
Descarga el archivo de configuración de la política: apiserver-unavailable.json.
Crea la política:
gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG
Reemplaza POLICY_CONFIG por la ruta de acceso del archivo de configuración que acabas de descargar.
Visualiza tus políticas de alertas:
Console
En la consola de Google Cloud, ve a la página Supervisión.
A la izquierda, selecciona Alertas.
En Políticas, puedes ver una lista de tus políticas de alertas.
En la lista, selecciona El servidor de la API de clústeres de Anthos no está disponible (crítico) para ver los detalles de tu nueva política. En Condiciones, puedes ver una descripción de la política. Por ejemplo:
Policy violates when ANY condition is met Anthos cluster API server uptime is absent for 5m
gcloud
gcloud alpha monitoring policies list
El resultado muestra información detallada sobre la política. Por ejemplo:
combiner: OR conditions: - conditionAbsent: aggregations: - alignmentPeriod: 60s crossSeriesReducer: REDUCE_MEAN groupByFields: - resource.label.project_id - resource.label.location - resource.label.cluster_name - resource.label.namespace_name - resource.label.container_name - resource.label.pod_name perSeriesAligner: ALIGN_MAX duration: 300s filter: resource.type = "k8s_container" AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver") trigger: count: 1 displayName: Anthos cluster API server uptime is absent for 5m name: projects/…/alertPolicies/…/conditions/… displayName: Anthos cluster API server unavailable (critical) enabled: true mutationRecord: mutateTime: … mutatedBy: … name: projects/…/alertPolicies/…
Crea políticas de alertas adicionales
En esta sección, se proporcionan descripciones y archivos de configuración para un conjunto de políticas de alertas recomendadas.
Para crear una política, sigue los mismos pasos que usaste en el ejercicio anterior:
Haz clic en el vínculo de la columna de la derecha para descargar el archivo de configuración.
De manera opcional, ajusta las condiciones para que se adapten mejor a tus necesidades específicas, por ejemplo, puedes agregar filtros adicionales para un subconjunto de clústeres o ajustar los valores de umbral para equilibrar el ruido y la importancia.
Ejecuta
gcloud alpha monitoring policies create
para crear la política.
Disponibilidad de los componentes del plano de control
Nombre de la alerta | Descripción | Definición de la política de alertas en Cloud Monitoring |
---|---|---|
Servidor de la API no disponible (crítico) | La métrica de tiempo de actividad del servidor de la API no está disponible | apiserver-unavailable.json |
El programador no está disponible (crítico) | La métrica de tiempo de actividad del programador no está disponible | scheduler-unavailable.json |
El administrador del controlador no está disponible (crítico) | La métrica de tiempo de actividad del administrador del controlador no está disponible | controller-manager-unavailable.json |
Sistema de Kubernetes
Nombre de la alerta | Descripción | Definición de la política de alertas en Cloud Monitoring |
---|---|---|
Bucle de falla del Pod (advertencia) | El Pod se reinicia constantemente y podría estar en un estado de bucle de fallas | pod-crash-looping.json |
El Pod no está listo durante más de una hora (crítico) | El pod ha pasado más de una hora en estado no listo | pod-not-ready-1h.json |
El uso de CPU de los contenedores supera el 80% (advertencia) | El uso de CPU de los contenedores supera el 80% del límite | container-cpu-usage-high-reaching-limit.json |
El uso de memoria de los contenedores supera el 85% (advertencia) | El uso de memoria de los contenedores supera el 85% del límite | container-memory-usage-high-reaching-limit.json |
Uso alto del volumen persistente (crítico) | El volumen continuo reclamado tiene menos del 3% de espacio libre. | persistent-volume-usage-high.json |
El uso de CPU del nodo supera el 80% (advertencia) | El uso de CPU del nodo supera el 80% del total asignable durante 5 minutos | node-cpu-usage-high.json |
El uso del disco del nodo supera el 85% (advertencia) | Menos del 15% está disponible por punto de activación de disco durante 10 minutos | node-disk-usage-high.json |
El uso de memoria del nodo supera el 80% (advertencia) | El uso de memoria del nodo supera el 80% del total asignable durante 5 min | node-memory-usage-high.json |
El nodo no está listo durante más de una hora (crítico) | El nodo ha pasado más de una hora en estado no listo | node-not-ready-1h.json |
Rendimiento de Kubernetes
Nombre de la alerta | Descripción | Definición de la política de alertas en Cloud Monitoring |
---|---|---|
La proporción de errores del servidor de la API supera el 20% (crítico) | El servidor de la API muestra errores 5xx o 429 en más del 20% de todas las solicitudes por verbo durante 15 min | apiserver-error-ratio-high.json |
El cambio de líder de ETCD o la falla de la propuesta son demasiado frecuentes (advertencia) | Los cambios de líder etcd o las fallas de propuestas ocurren con demasiada frecuencia |
etcd-leader-changes-or-proposal-failures-frequent.json |
El servidor de ETCD no está en quórum (crítico) | No se confirmaron propuestas de servidor etcd durante 5 minutos, por lo que es posible que se haya perdido el quórum |
etcd-server-not-in-quorum.yaml |
El almacenamiento de ETCD supera el límite del 90% (advertencia) | El uso de almacenamiento de etcd supera el 90% del límite |
etcd-storage-usage-high.json |
Políticas de alertas con PromQL
Las consultas de las políticas de alertas también se pueden expresar en PromQL en lugar de MQL.
Por ejemplo, la versión de PromQL de la política API server error ratio exceeds 20
percent (critical)
está disponible para descargar: apiserver-error-ratio-high-promql.json.
Para obtener más información, consulta Cómo usar Managed Service para Prometheus en la documentación de Google Distributed Cloud y Políticas de alertas con PromQL en la documentación de Cloud Monitoring.
Recibe notificaciones
Después de crear una política de alertas, puedes definir uno o más canales de notificación para la política. Hay varios tipos de canales de notificación. Por ejemplo, puedes recibir notificaciones por correo electrónico, un canal de Slack o una app para dispositivos móviles. Puedes elegir los canales que se adapten a tus necesidades.
Para obtener instrucciones sobre cómo configurar canales de notificación, consulta Administra canales de notificaciones.