Después de crear reglas de alerta en el proyecto de dispositivo aislado de Google Distributed Cloud (GDC), puedes consultar y ver alertas en los paneles de control desde la interfaz de usuario (IU) de la instancia de monitorización del sistema del proyecto o consultar alertas desde la API HTTP de observabilidad de GDC.
Consultar y ver alertas en paneles de control
Puedes ver las alertas en los paneles de control de la
instancia de monitorización del sistema del proyecto platform-obs
.
La instancia de monitorización del sistema incluye métricas, registros y alertas a nivel de proyecto para llevar a cabo procesos de monitorización, como la monitorización de redes y servidores.
Antes de empezar
Antes de consultar y ver alertas en los paneles de control, debes obtener acceso a la instancia de monitorización del sistema. Para obtener más información, consulta Acceder a los paneles de control.
Para iniciar sesión y visualizar las alertas, 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.
Endpoint de instancia de monitorización del sistema
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.
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.