Consulta y visualización de alertas abiertas

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 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 acceder a ellas directamente desde Cortex con la herramienta de 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 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 Alertmanager de Cortex: 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 Project Cortex Alertmanager 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.

En la siguiente tabla, se resumen los requisitos de Role para PA persona.

Arquetipo Objeto Clúster Rol Espacio de nombres Grupo/usuario Configuración
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs Grupo 1
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs Usuario 2

Reemplaza las siguientes variables según corresponda:

Variable Descripción
KUBECONFIG Necesitarás el archivo kubeconfig del clúster específico que contiene el NAMESPACE en el que se aplicará este RoleBinding.
RULE_NAME Nombre único de este recurso RoleBinding dentro del espacio de nombres. Por ejemplo, io-root-cortex-prometheus-viewer
NAMESPACE Es el espacio de nombres de Kubernetes en el que se creará y aplicará este RoleBinding. Busca la columna Namespace en la tabla anterior.
EMAIL_ADDRESS Es el identificador del usuario al que se le otorga el rol. A menudo, se trata de una dirección de correo electrónico. Por ejemplo, infrastructure-operator@example.com.
ROLE Nombre del Role que contiene los permisos que deseas otorgar al usuario. Busca los roles disponibles en la tabla anterior.
GROUP_NAME Nombre del Role que contiene los permisos que deseas otorgar al usuario. Por ejemplo, io-group
ZONE Nombre de la zona

Config. 1

Esta configuración es para el arquetipo PA, y tiene como objetivo el objeto grafana en el clúster org-admin. Otorga el rol project-cortex-alertmanager-viewer dentro del espacio de nombres platform-obs a un Group.

  • Comando de Kubectl

    Este es el formato genérico del comando:

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --group=`GROUP_NAME` --role=project-cortex-alertmanager-viewer
    

    Ejemplo:

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-alertmanager-viewer-binding --role=project-cortex-alertmanager-viewer --group=my-team --namespace=platform-obs
    
  • Ruta de acceso del archivo IAC

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`GROUP_NAME`/<YAML_FILE>
    
  • Archivo YAML

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: RULE_NAME
      namespace: platform-obs
    subjects:
    - kind: Group
      name: GROUP_NAME
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: project-cortex-alertmanager-viewer
      apiGroup: rbac.authorization.k8s.io
    

Config. 2

Esta configuración es para el arquetipo PA, y tiene como objetivo el objeto grafana en el clúster org-admin. Otorga el rol project-cortex-alertmanager-viewer dentro del espacio de nombres platform-obs a un User.

  • Comando de Kubectl

    Este es el formato genérico del comando:

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --user=`EMAIL_ADDRESS` --role=project-cortex-alertmanager-viewer
    

    Ejemplo:

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-alertmanager-viewer-binding --role=project-cortex-alertmanager-viewer --user=my-email@example.com --namespace=platform-obs
    
  • Ruta de acceso del archivo IAC

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`EMAIL_ADDRESS`/<YAML_FILE>
    
  • Archivo YAML

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: RULE_NAME
      namespace: platform-obs
    subjects:
    - kind: User
      name: EMAIL_ADDRESS
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: project-cortex-alertmanager-viewer
      apiGroup: rbac.authorization.k8s.io
    

    Para obtener más información sobre estos roles, consulta Prepara los permisos de IAM.

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:

  1. Accede a la consola de GDC.
  2. En la consola de GDC, selecciona tu proyecto.
  3. En el menú de navegación, selecciona Operations > Alerting.
  4. Selecciona la pestaña Alertas.
  5. Consulta la lista de alertas.
  6. En la sección Alertas abiertas, haz clic en Filtro para mostrar solo las alertas abiertas. También puedes filtrar las alertas por otros nombres o valores de propiedades.
  7. 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ón org-1 es https://org-1/platform-obs/cortex/alertmanager/.

Autentica la solicitud de curl

  1. Descarga y, luego, instala la CLI de gdcloud.
  2. Configura la propiedad core/organization_console_url de gdcloud:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. Accede con el proveedor de identidad configurado:

    gdcloud auth login
    
  4. 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:

  1. Autentica la solicitud de curl.
  2. 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 resultado después de ejecutar el comando. La respuesta de la API está en formato JSON.