En esta página se muestra cómo crear políticas de alertas para clústeres de Google Distributed Cloud.
Antes de empezar
Para crear políticas de alertas, debes tener los siguientes permisos:
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.update
Tendrá estos permisos si tiene alguno de los siguientes roles:
monitoring.alertPolicyEditor
monitoring.editor
- Editor del proyecto
- Propietario del proyecto
Para crear una política de alertas basada en registros con la CLI de Google Cloud, también debes tener el rol serviceusage.serviceUsageConsumer
.
Para consultar tus roles, ve a la página IAM en la consola de Google Cloud Google Cloud.
Crear una política de ejemplo: servidor de API no disponible
En este ejercicio, crearás una política de alertas para los servidores de la API de Kubernetes. Con esta política, puedes configurar notificaciones para cuando el servidor de la 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
Sustituye POLICY_CONFIG por la ruta del archivo de configuración que acabas de descargar.
Para ver tus políticas de alertas, haz lo siguiente:
Consola
En la Google Cloud consola, ve a la página Monitorización.
A la izquierda, selecciona Alertas.
En Políticas, puedes ver una lista de tus políticas de alertas.
En la lista, selecciona Servidor de la API del clúster de Anthos no 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/…
Crear políticas de alertas adicionales
En esta sección se proporcionan descripciones y archivos de configuración de un conjunto de políticas de alertas recomendadas.
Para crear una política, sigue los mismos pasos que en el ejercicio anterior:
Haga clic en el enlace de la columna de la derecha para descargar el archivo de configuración.
Si quiere, puede ajustar las condiciones para que se adapten mejor a sus necesidades específicas. Por ejemplo, puede añadir filtros adicionales para un subconjunto de clústeres o ajustar los valores de umbral para encontrar el equilibrio entre el ruido y la criticidad.
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 políticas 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 |
Scheduler no disponible (crítico) | La métrica de tiempo de actividad del programador no está disponible | scheduler-unavailable.json |
Controller Manager no disponible (crítico) | La métrica de tiempo de actividad de Controller Manager no está disponible | controller-manager-unavailable.json |
Sistema de Kubernetes
Nombre de la alerta | Descripción | Definición de políticas de alertas en Cloud Monitoring |
---|---|---|
El pod se reinicia continuamente (advertencia) | El pod se reinicia continuamente y puede que esté en un bucle de fallos | pod-crash-looping.json |
El pod no está listo durante más de una hora (crítico) | El pod está en un estado no preparado durante más de una hora | pod-not-ready-1h.json |
El uso de la CPU del contenedor supera el 80 % (advertencia) | El uso de CPU del contenedor supera el 80% del límite | container-cpu-usage-high-reaching-limit.json |
El uso de la memoria del contenedor supera el 85 % (advertencia) | El uso de memoria del contenedor supera el 85% del límite | container-memory-usage-high-reaching-limit.json |
Uso elevado de volumen persistente (crítico) | El volumen persistente reclamado tiene menos del 3 % de espacio libre | persistent-volume-usage-high.json |
El uso de CPU de los nodos 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 % de espacio libre por punto de montaje 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 minutos | node-memory-usage-high.json |
El nodo no está listo durante más de una hora (crítico) | El nodo no está listo durante más de una hora | node-not-ready-1h.json |
Rendimiento de Kubernetes
Nombre de la alerta | Descripción | Definición de políticas 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 devuelve errores 5xx o 429 en más del 20% de todas las solicitudes por verbo durante 15 minutos | apiserver-error-ratio-high.json |
Cambio de líder de ETCD o fallo de propuesta demasiado frecuentes (advertencia) | El etcd líder cambia o las propuestas fallan con demasiada frecuencia |
etcd-leader-changes-or-proposal-failures-frequent.json |
El servidor ETCD no tiene quórum (crítico) | No se han confirmado propuestas de servidor etcd durante 5 minutos, por lo que es posible que hayan perdido el quórum. |
etcd-server-not-in-quorum.yaml |
El almacenamiento de etcd supera el límite del 90 % (advertencia) | El uso del 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 en MQL.
Por ejemplo, la versión PromQL de la política API server error ratio exceeds 20
percent (critical)
se puede descargar: apiserver-error-ratio-high-promql.json.
Para obtener más información, consulta la documentación sobre Uso de Managed Service para Prometheus de Google Distributed Cloud y la documentación sobre políticas de alertas basadas en PromQL de Cloud Monitoring.
Recibir notificaciones
Después de crear una política de alertas, puedes definir uno o varios canales de notificación para la política. Hay varios tipos de canales de notificaciones. Por ejemplo, puedes recibir notificaciones por correo electrónico, en un canal de Slack o en una aplicación móvil. Puedes elegir los canales que mejor se adapten a tus necesidades.
Para obtener instrucciones sobre cómo configurar los canales de notificación, consulta el artículo Gestionar canales de notificación.