En esta página, se proporcionan instrucciones detalladas para consultar y visualizar alertas abiertas con la consola de GDC y la herramienta curl
para el extremo de Cortex, de modo que puedas conocer los problemas y resolverlos.
Después de crear reglas de alertas basadas en registros y métricas de los entornos de dispositivos aislados de Google Distributed Cloud (GDC), puedes comenzar a supervisar las alertas abiertas de tu proyecto. Puedes visualizar y filtrar las alertas que activan los eventos del sistema en la consola de GDC, o bien acceder a ellas directamente desde Cortex con la herramienta curl
para una programación y automatización flexibles.
Puedes acceder a las alertas abiertas con uno de los siguientes dos métodos:
- Consola de GDC: Visualiza los datos de las alertas en paneles integrados que contienen información como la cantidad de alertas para una fuente de datos específica, el nivel de gravedad, la duración, el estado, el mensaje y las etiquetas. La consola de GDC proporciona una interfaz fácil de usar para filtrar y analizar las alertas de los componentes del sistema.
- Extremo de Cortex Alertmanager: Para casos de uso más avanzados, consulta directamente la instancia de Cortex de tu proyecto con la herramienta
curl
en una línea de comandos. Cortex almacena las alertas de Alertmanager de tu proyecto y proporciona un extremo HTTP para el acceso programático. Este acceso te permite exportar datos, automatizar tareas, configurar trabajos cron y crear integraciones personalizadas.
Antes de comenzar
Para obtener los permisos que necesitas para consultar y visualizar alertas, pídele al administrador de IAM del proyecto que te otorgue uno de los roles asociados de Alertmanager de Project Cortex en el espacio de nombres de tu proyecto. Según el nivel de acceso y los permisos que necesites, es posible que obtengas roles de editor o visualizador para este recurso en un proyecto.
Para obtener los permisos que necesitas para exportar registros, pídele al administrador de IAM del proyecto que te otorgue el rol de Visualizador de Grafana del proyecto (project-grafana-viewer
). Este proceso de control de acceso basado en roles te permite acceder a las visualizaciones de datos de forma segura. Para obtener más información sobre estos roles, consulta Prepara los permisos de IAM.
Extremo de Grafana
Para el operador de la aplicación (AO):
Abre la siguiente URL para acceder al extremo de tu proyecto:
https://GDC_URL/PROJECT_NAMESPACE/grafana
Reemplaza lo siguiente:
- GDC_URL: URL de tu organización en GDC.
- PROJECT_NAMESPACE: Es el espacio de nombres de tu proyecto.
La IU del proyecto contiene paneles predeterminados, como el panel Alerts - Overview, con información sobre las alertas. Consultar alertas desde la IU te permite recuperar visualmente la información de alertas de tu proyecto y obtener una vista integrada de los recursos para conocer los problemas y resolverlos rápidamente.
Para el administrador de la plataforma (PA):
Abre la siguiente URL para acceder al extremo de tu proyecto de platform-obs
:
https://GDC_URL/platform-obs/grafana
Reemplaza GDC_URL por la URL de tu organización en GDC.
La interfaz de usuario (IU) de la instancia de supervisión del sistema contiene paneles predeterminados, como el panel Alerts - Overview, con información sobre las alertas para la observabilidad de los datos. Consultar alertas desde la IU te permite recuperar visualmente la información de alertas de tu proyecto y obtener una vista integrada de los recursos para conocer los problemas y resolverlos rápidamente.
Figura 1. El panel Alerts - Overview en la IU de Grafana
Cómo ver y filtrar alertas abiertas
Selecciona uno de los siguientes métodos para consultar y filtrar las alertas abiertas del espacio de nombres de tu proyecto:
Console
Sigue estos pasos para ver las alertas abiertas en un proyecto desde la consola de GDC:
- Accede a la consola de GDC.
- En la consola de GDC, selecciona tu proyecto.
- En el menú de navegación, selecciona Operations > Alerting.
- Selecciona la pestaña Alertas.
- Consulta la lista de alertas.
- En la sección Alertas abiertas, haz clic en Filtrar para mostrar solo las alertas abiertas. También puedes filtrar las alertas por otros nombres o valores de propiedades.
- Haz clic en el nombre de una alerta para ver sus detalles.
Extremo de Cortex
En esta sección, se describe cómo acceder a las alertas con tu extremo de Cortex Alertmanager.
Identifica tu extremo de Cortex
La siguiente URL es el extremo de la instancia de Cortex de tu proyecto:
https://GDC_URL/PROJECT_NAMESPACE/cortex/alertmanager/
Reemplaza lo siguiente:
GDC_URL
: Es la URL de tu organización en GDC.PROJECT_NAMESPACE
: Es el espacio de nombres de tu proyecto.Por ejemplo, el extremo de Cortex para el proyecto
platform-obs
en la organizaciónorg-1
eshttps://org-1/platform-obs/cortex/alertmanager/
.
Autentica la solicitud de curl
- Descarga y, luego, instala la CLI de gdcloud.
Configura la propiedad
core/organization_console_url
de gdcloud:gdcloud config set core/organization_console_url https://GDC_URL
Accede con el proveedor de identidad configurado:
gdcloud auth login
Usa tu nombre de usuario y contraseña para autenticarte y acceder.
Cuando el acceso sea exitoso, podrás usar el encabezado de autorización en tu solicitud de cURL a través del comando
gdcloud auth print-identity-token
. Para obtener más información, consulta gcloud auth.
Llama al extremo de Cortex
Completa los siguientes pasos para acceder al extremo de Cortex con la herramienta curl
:
- Autentica la solicitud de
curl
. Usa
curl
para llamar al extremo de Cortex y extender la URL con la especificación estándar de la API de Alertmanager (https://prometheus.io/docs/prometheus/latest/querying/api/#alertmanagers) para consultar alertas.El siguiente es un ejemplo de una solicitud
curl
:curl https://GDC_URL/PROJECT_NAME/cortex/alertmanager/api/v1/alertmanagers \ -H "Authorization: Bearer $(gdcloud auth print-identity-token \ --audiences=https://GDC_URL)"
Obtendrás el siguiente resultado después de ejecutar el comando. La respuesta de la API está en formato JSON.
Alertmanager
Alertmanager te permite supervisar las notificaciones de alerta de las aplicaciones cliente. Puedes inspeccionar y silenciar alertas con Alertmanager, y filtrar o agrupar alertas:
Figura 2. Opción de menú para consultar los registros de auditoría de Alertmanager.
Políticas de alertas predefinidas
En la siguiente tabla, se enumeran las reglas de alertas preinstaladas en Prometheus:
Nombre | Descripción |
---|---|
KubeAPIDown (crítico) | KubeAPI desapareció del descubrimiento de objetivos de Prometheus durante 15 minutos. |
KubeClientErrors (advertencia) | Proporción de errores del cliente del servidor de la API de Kubernetes > 0.01 durante 15 minutos. |
KubeClientErrors (crítico) | Proporción de errores del cliente del servidor de la API de Kubernetes > 0.1 durante 15 minutos. |
KubePodCrashLooping (advertencia) | El Pod ha estado en un estado de bucle de fallas durante más de 15 minutos. |
KubePodNotReady (advertencia) | El Pod está en estado no listo durante más de 15 minutos. |
KubePersistentVolumeFillingUp (crítico) | Bytes disponibles de un PersistentVolume reclamado < 0.03. |
KubePersistentVolumeFillingUp (advertencia) | Bytes disponibles de un PersistentVolume reclamado < 0.15. |
KubePersistentVolumeErrors (crítico) | El volumen persistente está en la fase Con errores o Pendiente durante cinco minutos. |
KubeNodeNotReady (advertencia) | El nodo no se ha leído durante más de 15 minutos. |
KubeNodeCPUUsageHigh (crítico) | El uso de CPU del nodo es superior al 80%. |
KubeNodeMemoryUsageHigh (crítico) | El uso de memoria del nodo es superior al 80%. |
NodeFilesystemSpaceFillingUp (advertencia) | El uso del sistema de archivos del nodo es superior al 60%. |
NodeFilesystemSpaceFillingUp (crítico) | El uso del sistema de archivos del nodo es superior al 85%. |
CertManagerCertExpirySoon (advertencia) | Un certificado vence en 21 días. |
CertManagerCertNotReady (crítico) | Un certificado no está listo para entregar tráfico después de 10 minutos. |
CertManagerHittingRateLimits (crítico) | Se alcanzó un límite de frecuencia de creación y renovación de certificados durante cinco minutos. |
DeploymentNotReady (crítico). | Una Deployment en el clúster de administrador de la organización se encuentra en un estado de no listo desde hace más de 15 minutos. |
Muestra de alertmanagerConfigurationConfigmaps
La sintaxis de los archivos de configuración en ConfigMaps que enumera alertmanagerConfigurationConfigmaps
debe seguir https://prometheus.io/docs/alerting/latest/configuration/
apiVersion: observability.gdc.goog/v1alpha1
kind: ObservabilityPipeline
metadata:
# Choose namespace that matches the project's namespace
namespace: kube-system
name: observability-config
# Configure Alertmanager
alerting:
# Storage size for alerting data within organization
# Permission: PA
localStorageSize: 1Gi
# Permission: PA & AO
# alertmanager config must be under the key "alertmanager.yml" in the configMap
alertmanagerConfig: <configmap-for-alertmanager-config>
# Permission: PA
volumes:
- <volume referenced in volumeMounts>
# Permission: PA
volumeMounts:
- <volumeMount referenced in alertmanagerConfig>
Ejemplo de configuración de reglas
# Configures either an alert or a target record for precomputation
apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringRule
metadata:
# Choose namespace that contains the metrics that rules are based on
# Note: alert/record will be produced in the same namespace
namespace: g-fleetns-a
name: alerting-config
spec:
# Rule evaluation interval
interval: <duration>
# Configure limit for number of alerts (0: no limit)
# Optional, Default: 0 (no limit)
limit: <int>
# Configure record rules
recordRules:
# Define which timeseries to write to (must be a valid metric name)
- record: <string>
# Define PromQL expression to evaluate for this rule
expr: <string>
# Define labels to add or overwrite
# Optional, Map of {key, value} pairs
labels:
<labelname>: <labelvalue>
# Configure alert rules
alertRules:
# Define alert name
- alert: <string>
# Define PromQL expression to evaluate for this rule
# https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
expr: <string>
# Define when an active alert moves from pending to firing
# Optional, Default: 0s
for: <duration>
# Define labels to add or overwrite
# Required, Map of {key, value} pairs
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to alert
# additional labels are optional
labels:
severity: <enum: [error, critical, warning, info]>
code:
resource: <Short name of the related operable component>
<labelname>: <tmpl_string>
# Define annotations to add
# Optional, Map of {key, value} pairs
# Recommended annotations:
# message: value of Message field in UI
# expression: value of Rule field in UI
# runbookurl: URL for link in Actions to take field in UI
annotations:
<labelname>: <tmpl_string>
# Configures either an alert or a target record for precomputation
apiVersion: logging.gdc.goog/v1alpha1
kind: LoggingRule
metadata:
# Choose namespace that contains the logs that rules are based on
# Note: alert/record will be produced in the same namespace
namespace: g-fleetns-a
name: alerting-config
spec:
# Choose which log source to base alerts on (Operational/Audit/Security Logs)
# Optional, Default: Operational
source: <string>
# Rule evaluation interval
interval: <duration>
# Configure limit for number of alerts (0: no limit)
# Optional, Default: 0 (no limit)
limit: <int>
# Configure record rules
recordRules:
# Define which timeseries to write to (must be a valid metric name)
- record: <string>
# Define LogQL expression to evaluate for this rule
# https://grafana.com/docs/loki/latest/rules/
expr: <string>
# Define labels to add or overwrite
# Optional, Map of {key, value} pairs
labels:
<labelname>: <labelvalue>
# Configure alert rules
alertRules:
# Define alert name
- alert: <string>
# Define LogQL expression to evaluate for this rule
expr: <string>
# Define when an active alert moves from pending to firing
# Optional, Default: 0s
for: <duration>
# Define labels to add or overwrite
# Required, Map of {key, value} pairs
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to alert
# additional labels are optional
labels:
severity: <enum: [error, critical, warning, info]>
code:
resource: <Short name of the related operable component>
<labelname>: <tmpl_string>
# Define annotations to add
# Optional, Map of {key, value} pairs
# Recommended annotations:
# message: value of Message field in UI
# expression: value of Rule field in UI
# runbookurl: URL for link in Actions to take field in UI
annotations:
<labelname>: <tmpl_string>
Alertas de consultas desde la API de HTTP
La plataforma de Observabilidad expone un extremo de API de HTTP para consultar y leer métricas, alertas y otros datos de series temporales de tu proyecto para la supervisión del sistema.Consulta alertas directamente desde la API de HTTP de Observability para configurar tareas automatizadas, adaptar respuestas y crear integraciones según tu caso de uso. Por ejemplo, puedes insertar el resultado en otro comando, exportar detalles a formatos de archivo de texto o configurar un trabajo cron de Linux. Puedes llamar a la API de Observability HTTP desde la interfaz de línea de comandos (CLI) o un navegador web, y obtener el resultado en formato JSON.
En esta sección, se explica cómo llamar extremo de API de HTTP de Observability desde la CLI con la especificación de la API depara consultar alertas.
Consulta alertas directamente desde la API de HTTP de Observability para configurar tareas automatizadas, adaptar respuestas y crear integraciones según tu caso de uso. Por ejemplo, puedes insertar el resultado en otro comando, exportar detalles a formatos de archivo de texto o configurar un trabajo cron de Linux. Puedes llamar a la API de Observability HTTP desde la interfaz de línea de comandos (CLI) o un navegador web, y obtener el resultado en formato JSON.
En esta sección, se explica cómo llamar extremo de API de HTTP de Observability desde la CLI con la especificación de la API de Alertmanager para consultar métricas.
Antes de comenzar
Para obtener los permisos que necesitas para acceder extremo de API de HTTP de Observabilidad, pídele al administrador de IAM del proyecto que te otorgue el rol de Visualizador de Alertmanager de Project Cortex (project-cortex-alertmanager-viewer
) en el espacio de nombres de tu proyecto.
El administrador de IAM del proyecto puede otorgarte acceso creando una vinculación de rol:
a. Administrador raíz del operador de infraestructura (IO) - Project Cortex Alertmanager Viewer
:
kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding
io-cortex-alertmanager-viewer-binding -n infra-obs
--user=fop-infrastructure-operator@example.com
--role=project-cortex-alertmanager-viewer
b. Administrador raíz de Platform-Admin (PA) - Project Cortex Alertmanager Viewer
:
kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding
pa-cortex-alertmanager-viewer-binding -n platform-obs
--user=fop-platform-admin@example.com
--role=project-cortex-alertmanager-viewer
c. Administrador raíz del operador de la aplicación (AO) - Visualizador de Alertmanager de Project Cortex: Proyecto: $AO_PROJECT Nombre de usuario del AO: $AO_USER
kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding
project-cortex-alertmanager-viewer-binding -n $AO_PROJECT
--user=$AO_USER
--role=project-cortex-alertmanager-viewer
Después de crear la vinculación del rol, puedes acceder al Alertmanager correspondiente con tu nombre de usuario de acceso.
Verifica la vinculación de rol
kubectl --kubeconfig $HOME/org-1-admin-kubeconfig get rolebinding -n platform-obs
Para obtener información sobre cómo configurar vinculaciones de roles desde la consola de GDC, consulta Otorga acceso a los recursos.
Extremo de Cortex
La siguiente URL es el extremo de Cortex para acceder a las alertas:
https://GDC_URL/PROJECT_NAME/cortex/alertmanager/
Reemplaza lo siguiente:
- GDC_URL: URL de tu organización en GDC.
- PROJECT_NAME: el nombre del proyecto.
Llama extremo de API
Sigue estos pasos para acceder extremo de API de Cortex desde la CLI y consultar alertas:
- Asegúrate de cumplir con los requisitos.
- Abre la CLI.
Usa la herramienta
curl
para llamar a la URL del extremo de Cortex y extender la URL con el estándar https://prometheus.io/docs/prometheus/latest/querying/api/#alertmanagers para consultar alertas. Por ejemplo:curl https://console.org-1.zone1.google.gdch.test/alice/cortex/alertmanager/api/v1/alertmanagers
Obtendrás el resultado en la CLI después del comando. El formato de respuesta de la API es JSON.