En esta página se proporcionan instrucciones detalladas sobre cómo consultar y visualizar alertas abiertas mediante la consola de GDC y la herramienta curl
para el endpoint de Cortex, con el fin de identificar problemas y solucionarlos.
Después de crear reglas de alerta basadas en registros y métricas de entornos de dispositivos aislados de Google Distributed Cloud (GDC), puedes empezar a monitorizar las alertas abiertas de tu proyecto. Puedes visualizar y filtrar las alertas que activan los eventos de tu sistema en la consola de GDC o acceder a ellas directamente desde Cortex mediante la herramienta curl
para disfrutar de flexibilidad en las secuencias de comandos y la automatización.
Puedes acceder a las alertas abiertas de una de estas dos formas:
- Consola de GDC: visualiza los datos de las alertas en paneles integrados que contienen información como el número de alertas de 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 intuitiva para filtrar y analizar las alertas de los componentes de tu sistema.
- Endpoint de Alertmanager de Cortex: para casos prácticos 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 endpoint HTTP para el acceso programático. Este acceso te permite exportar datos, automatizar tareas, configurar tareas cron y crear integraciones personalizadas.
Antes de empezar
Para obtener los permisos que necesitas para consultar y visualizar alertas, pide a tu administrador de gestión de identidades y accesos del proyecto que te conceda uno de los roles de Alertmanager de Project Cortex asociados en el espacio de nombres de tu proyecto. En función del nivel de acceso y de los permisos que necesites, puedes obtener los roles de editor o de lector de este recurso en un proyecto.
Para obtener los permisos que necesitas para exportar registros, pide al administrador de gestión de identidades y accesos de tu proyecto que te conceda el rol Lector 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 Preparar permisos de gestión de identidades y accesos.
Endpoint de Grafana
Para el operador de aplicaciones:
Abre la siguiente URL para acceder al endpoint de tu proyecto:
https://GDC_URL/PROJECT_NAMESPACE/grafana
Haz los cambios siguientes:
- GDC_URL: la URL de tu organización en GDC.
- PROJECT_NAMESPACE: el espacio de nombres de tu proyecto.
La interfaz de usuario del proyecto contiene paneles de control predeterminados, como el panel de control Alertas - Resumen, que incluye información sobre las alertas. Consultar alertas desde la interfaz de usuario te permite obtener información sobre las alertas de tu proyecto de forma visual y ver los recursos de forma integrada para estar al tanto de los problemas y solucionarlos rápidamente.
Para administradores de plataforma:
Abre la siguiente URL para acceder al endpoint de tu proyecto de platform-obs
:
https://GDC_URL/platform-obs/grafana
Sustituye GDC_URL por la URL de tu organización en GDC.
La interfaz de usuario de la instancia de monitorización del sistema contiene paneles de control predeterminados, como el panel Alertas - Resumen, que incluye información sobre las alertas de observabilidad de los datos. Consultar alertas desde la interfaz de usuario te permite obtener información sobre las alertas de tu proyecto de forma visual y ver los recursos de forma integrada para estar al tanto de los problemas y solucionarlos rápidamente.
Imagen 1. El panel de control Alerts - Overview (Alertas - Vista general) en la interfaz de usuario de Grafana.
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:
Consola
Para ver las alertas abiertas de un proyecto en la consola de GDC, sigue estos pasos:
- Inicia sesión en la consola de GDC.
- En la consola de GDC, selecciona tu proyecto.
- En el menú de navegación, selecciona Operaciones > Alertas.
- 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 puede filtrar las alertas por otros nombres o valores de propiedad.
- Haga clic en el nombre de una alerta para ver sus detalles.
Endpoint de Cortex
En esta sección se describe cómo acceder a las alertas mediante tu endpoint de Cortex Alertmanager.
Identificar tu endpoint de Cortex
La siguiente URL es el endpoint de la instancia de Cortex de tu proyecto:
https://GDC_URL/PROJECT_NAMESPACE/cortex/alertmanager/
Haz los cambios siguientes:
GDC_URL
: la URL de tu organización en GDC.PROJECT_NAMESPACE
: el espacio de nombres de tu proyecto.Por ejemplo, el endpoint de Cortex del proyecto
platform-obs
de la organizaciónorg-1
eshttps://org-1/platform-obs/cortex/alertmanager/
.
Autenticar la solicitud curl
- Descarga e instala la CLI de gdcloud.
Define la propiedad gdcloud
core/organization_console_url
:gdcloud config set core/organization_console_url https://GDC_URL
Inicia sesión con el proveedor de identidades configurado:
gdcloud auth login
Usa tu nombre de usuario y contraseña para autenticarte e iniciar sesión.
Si el inicio de sesión se realiza correctamente, puedes usar el encabezado de autorización en tu solicitud cURL mediante el comando
gdcloud auth print-identity-token
. Para obtener más información, consulta gdcloud auth.
Llamar al endpoint de Cortex
Para acceder al endpoint de Cortex con la herramienta curl
, sigue estos pasos:
- Autentica la solicitud
curl
. Usa
curl
para llamar al endpoint de Cortex y amplía la URL con la especificación estándar de la API Alertmanager (https://prometheus.io/docs/prometheus/latest/querying/api/#alertmanagers) para consultar las alertas.A continuación, se muestra un ejemplo de 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 resultado después del comando. La respuesta de la API está en formato JSON.
Alertmanager
Alertmanager te permite monitorizar las notificaciones de alertas de las aplicaciones cliente. Puedes inspeccionar y silenciar alertas con Alertmanager, así como filtrar o agrupar alertas:
Imagen 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 alerta preinstaladas en Prometheus:
Nombre | Descripción |
---|---|
KubeAPIDown (crítico) | KubeAPI ha desaparecido del descubrimiento de destinos de Prometheus durante 15 minutos. |
KubeClientErrors (advertencia) | La proporción de errores del cliente del servidor de la API de Kubernetes es superior a 0,01 durante 15 minutos. |
KubeClientErrors (crítico) | La proporción de errores de cliente del servidor de la API de Kubernetes es superior a 0,1 durante 15 minutos. |
KubePodCrashLooping (advertencia) | El pod ha estado en un bucle de fallos durante más de 15 minutos. |
KubePodNotReady (advertencia) | El pod lleva más de 15 minutos en un estado no preparado. |
KubePersistentVolumeFillingUp (crítico) | Bytes libres de un PersistentVolume reclamado < 0,03. |
KubePersistentVolumeFillingUp (advertencia) | Bytes libres de un PersistentVolume reclamado < 0,15. |
KubePersistentVolumeErrors (crítico) | El volumen persistente está en la fase Failed o Pending durante cinco minutos. |
KubeNodeNotReady (advertencia) | El nodo no está listo desde hace 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 de nodos es superior al 60%. |
NodeFilesystemSpaceFillingUp (crítico) | El uso del sistema de archivos de nodos es superior al 85%. |
CertManagerCertExpirySoon (advertencia) | Un certificado caduca en 21 días. |
CertManagerCertNotReady (crítico) | Un certificado no está listo para servir tráfico después de 10 minutos. |
CertManagerHittingRateLimits (crítico) | Se ha alcanzado un límite de frecuencia al crear y renovar certificados durante cinco minutos. |
DeploymentNotReady (crítico). | Una implementación en el clúster de administrador de la organización lleva más de 15 minutos en un estado no preparado. |
Ejemplo de alertmanagerConfigurationConfigmaps
La sintaxis de las configuraciones de los ConfigMaps que alertmanagerConfigurationConfigmaps
enumera debe seguir las directrices de 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>
Configuración de regla de ejemplo
# 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>
Consultar alertas de la API HTTP
La plataforma Observabilidad expone un endpoint de API HTTP para consultar y leer métricas, alertas y otros datos de series temporales de tu proyecto para monitorizar el sistema.Consulta las alertas de consultas directamente desde la API HTTP Observability para configurar tareas automatizadas, adaptar las respuestas y crear integraciones según tu caso práctico. Por ejemplo, puedes insertar el resultado en otro comando, exportar detalles a formatos de archivo de texto o configurar una tarea cron de Linux. Puedes llamar a la API HTTP Observability 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 al endpoint de la API HTTP de Observabilidad desde la CLI mediante la especificación de la API para consultar alertas.
Consulta las alertas de consultas directamente desde la API HTTP Observability para configurar tareas automatizadas, adaptar las respuestas y crear integraciones según tu caso práctico. Por ejemplo, puedes insertar el resultado en otro comando, exportar detalles a formatos de archivo de texto o configurar una tarea cron de Linux. Puedes llamar a la API HTTP Observability 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 al endpoint de la API HTTP de Observabilidad desde la CLI mediante la especificación de la API de Alertmanager para consultar métricas.
Antes de empezar
Para obtener los permisos que necesitas para acceder al endpoint de la API HTTP de Observabilidad, pide al administrador de gestión de identidades y accesos de tu proyecto que te conceda el rol Lector de Alertmanager de Project Cortex (project-cortex-alertmanager-viewer
) en el espacio de nombres de tu proyecto.
El administrador de gestión de identidades y accesos del proyecto puede concederte 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 la plataforma (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 aplicaciones (AO) - Lector 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
Una vez que se haya creado la vinculación de rol, podrás acceder al Alertmanager correspondiente con tu nombre de usuario de inicio de sesión.
Verificar el enlace de rol
kubectl --kubeconfig $HOME/org-1-admin-kubeconfig get rolebinding -n platform-obs
Para obtener información sobre cómo definir enlaces de roles desde la consola de GDC, consulta Conceder acceso a recursos.
Endpoint de Cortex
La siguiente URL es el endpoint de Cortex para acceder a las alertas:
https://GDC_URL/PROJECT_NAME/cortex/alertmanager/
Haz los cambios siguientes:
- GDC_URL: la URL de tu organización en GDC.
- PROJECT_NAME: el nombre de tu proyecto.
Llamar al endpoint de la API
Sigue estos pasos para acceder al endpoint de la API Cortex desde la CLI y consultar alertas:
- Asegúrate de que cumples los requisitos previos.
- Abre la CLI.
Usa la herramienta
curl
para llamar a la URL del endpoint de Cortex y amplía 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.