Consulta y visualización de alertas abiertas

Después de crear reglas de alertas en tu proyecto de dispositivo aislado de Google Distributed Cloud (GDC), puedes consultar y ver alertas en los paneles desde la interfaz de usuario (IU) de la instancia de supervisión del sistema del proyecto o consultar alertas desde la API de HTTP de Observabilidad de GDC.

Consulta y visualiza alertas en los paneles

Puedes ver las alertas en los paneles de la instancia de Grafana de Instancia de supervisión del sistema del proyecto platform-obs

La instancia de supervisión del sistema incluye métricas, registros y alertas a nivel del proyecto para realizar procesos de supervisión, como la supervisión de la red y la supervisión del servidor.

Antes de comenzar

Antes de consultar y ver alertas en los paneles, debes obtener acceso a la instancia de supervisión del sistema. Para obtener más información, consulta Cómo obtener acceso a los paneles.

Para acceder y visualizar las alertas, 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.

Extremo de la instancia de supervisión del sistema

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.

En el panel Alerts - Overview, se muestra información sobre la cantidad de alertas para una fuente de datos específica y un gráfico de líneas del historial de alertas, en el que se indica la cantidad de alertas abiertas por hora para la fuente de datos.

Figura 1. El panel Alerts - Overview en la IU de Grafana

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:

Ignora las alertas de registros de auditoría de rechazo de Loki en el clúster de administrador raíz

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:

  1. Asegúrate de cumplir con los requisitos.
  2. Abre la CLI.
  3. 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.