Interroger et afficher les alertes ouvertes

Cette page fournit des instructions détaillées sur la façon d'interroger et de visualiser les alertes ouvertes à l'aide de la console GDC et de l'outil curl pour le point de terminaison Cortex afin de prendre connaissance des problèmes et de les résoudre.

Après avoir créé des règles d'alerte basées sur les journaux et les métriques des environnements Google Distributed Cloud (GDC) isolés, vous pouvez commencer à surveiller les alertes ouvertes de votre projet. Vous pouvez visualiser et filtrer les alertes déclenchées par les événements système dans la console GDC, ou y accéder directement depuis Cortex à l'aide de l'outil curl pour un script et une automatisation flexibles.

Vous pouvez accéder aux alertes ouvertes de l'une des deux manières suivantes :

  • Console GDC : visualisez les données d'alerte dans des panneaux intégrés contenant des informations telles que le nombre d'alertes pour une source de données spécifique, le niveau de gravité, la durée, l'état, le message et les libellés. La console GDC fournit une interface conviviale pour filtrer et analyser les alertes provenant des composants de votre système.
  • Point de terminaison Cortex Alertmanager : pour les cas d'utilisation plus avancés, interrogez directement l'instance Cortex de votre projet à l'aide de l'outil curl sur une ligne de commande. Cortex stocke les alertes Alertmanager de votre projet et fournit un point de terminaison HTTP pour l'accès programmatique. Cet accès vous permet d'exporter des données, d'automatiser des tâches, de configurer des tâches cron et de créer des intégrations personnalisées.

Avant de commencer

Pour obtenir les autorisations nécessaires pour interroger et visualiser les alertes, demandez à votre administrateur IAM de projet de vous accorder l'un des rôles Alertmanager Project Cortex associés dans l'espace de noms de votre projet. Selon le niveau d'accès et les autorisations dont vous avez besoin, vous pouvez obtenir des rôles d'éditeur ou de lecteur pour cette ressource dans un projet.

Le tableau suivant récapitule les exigences Role pour PA persona.

Persona Objet Cluster Rôle Espace de noms Groupe/Utilisateur Config
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs Groupe 1
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs Utilisateur 2

Remplacez les variables suivantes de manière appropriée :

Variable Description
KUBECONFIG Vous aurez besoin du fichier kubeconfig du cluster spécifique contenant le NAMESPACE auquel ce RoleBinding sera appliqué.
RULE_NAME Nom unique de cette ressource RoleBinding dans l'espace de noms. Exemple :io-root-cortex-prometheus-viewer
NAMESPACE Espace de noms Kubernetes dans lequel ce RoleBinding sera créé et appliqué. Recherchez la colonne Namespace dans le tableau précédent.
EMAIL_ADDRESS Identifiant de l'utilisateur auquel le rôle est attribué. Il s'agit souvent d'une adresse e-mail. Par exemple, infrastructure-operator@example.com.
ROLE Nom du Role contenant les autorisations que vous souhaitez accorder à l'utilisateur. Recherchez les rôles disponibles dans le tableau précédent.
GROUP_NAME Nom du Role contenant les autorisations que vous souhaitez accorder à l'utilisateur. Exemple :io-group
ZONE Nom de la zone

Configuration 1

Cette configuration est destinée à la persona PA, ciblant l'objet grafana dans le cluster org-admin. Il attribue le rôle project-cortex-alertmanager-viewer dans l'espace de noms platform-obs à un Group.

  • Commande Kubectl

    Voici le format générique des commandes :

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

    Exemple :

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-alertmanager-viewer-binding --role=project-cortex-alertmanager-viewer --group=my-team --namespace=platform-obs
    
  • Chemin d'accès au fichier IAC

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`GROUP_NAME`/<YAML_FILE>
    
  • Fichier 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
    

Configuration 2

Cette configuration est destinée à la persona PA, ciblant l'objet grafana dans le cluster org-admin. Il attribue le rôle project-cortex-alertmanager-viewer dans l'espace de noms platform-obs à un User.

  • Commande Kubectl

    Voici le format générique des commandes :

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

    Exemple :

    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
    
  • Chemin d'accès au fichier IAC

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`EMAIL_ADDRESS`/<YAML_FILE>
    
  • Fichier 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
    

    Pour en savoir plus sur ces rôles, consultez Préparer les autorisations IAM.

Afficher et filtrer les alertes ouvertes

Sélectionnez l'une des méthodes suivantes pour interroger et filtrer les alertes ouvertes de l'espace de noms de votre projet :

Console

Affichez les alertes ouvertes dans un projet depuis la console GDC :

  1. Connectez-vous à la console GDC.
  2. Dans la console GDC, sélectionnez votre projet.
  3. Dans le menu de navigation, sélectionnez Opérations > Alertes.
  4. Sélectionnez l'onglet Alertes.
  5. Affichez la liste des alertes.
  6. Dans la section Alertes ouvertes, cliquez sur Filtrer pour n'afficher que les alertes ouvertes. Vous pouvez également filtrer les alertes par d'autres noms ou valeurs de propriété.
  7. Cliquez sur le nom d'une alerte pour afficher ses détails.

Point de terminaison Cortex

Cette section explique comment accéder aux alertes à l'aide de votre point de terminaison Cortex Alertmanager.

Identifier votre point de terminaison Cortex

L'URL suivante est le point de terminaison de l'instance Cortex de votre projet :

  https://GDC_URL/PROJECT_NAMESPACE/cortex/alertmanager/

Remplacez les éléments suivants :

  • GDC_URL : URL de votre organisation dans GDC.
  • PROJECT_NAMESPACE : espace de noms de votre projet.

    Par exemple, le point de terminaison Cortex pour le projet platform-obs dans l'organisation org-1 est https://org-1/platform-obs/cortex/alertmanager/.

Authentifier la requête curl

  1. Téléchargez et installez la gdcloud CLI.
  2. Définissez la propriété gdcloud core/organization_console_url :

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. Se connecter avec le fournisseur d'identité configuré :

    gdcloud auth login
    
  4. Utilisez votre nom d'utilisateur et votre mot de passe pour vous authentifier et vous connecter.

    Une fois la connexion établie, vous pouvez utiliser l'en-tête d'autorisation dans votre requête curl à l'aide de la commande gdcloud auth print-identity-token. Pour en savoir plus, consultez gdcloud auth.

Appeler le point de terminaison Cortex

Pour accéder au point de terminaison Cortex à l'aide de l'outil curl, procédez comme suit :

  1. Authentifiez la requête curl.
  2. Utilisez curl pour appeler le point de terminaison Cortex et étendre l'URL à l'aide de la spécification standard de l'API Alertmanager (https://prometheus.io/docs/prometheus/latest/querying/api/#alertmanagers) pour interroger les alertes.

    Voici un exemple de requête curl :

      curl https://GDC_URL/PROJECT_NAME/cortex/alertmanager/api/v1/alertmanagers \
      -H "Authorization: Bearer $(gdcloud auth print-identity-token \
      --audiences=https://GDC_URL)"
    

    Vous obtenez le résultat suivant après l'exécution de la commande. La réponse de l'API est au format JSON.