Interroger et afficher les alertes ouvertes

La surveillance des alertes dans Google Distributed Cloud (GDC) avec isolation physique vous permet de suivre et de résoudre les problèmes liés aux notifications actives dans votre projet après avoir créé des règles d'alerte. Vous pouvez inspecter la gravité, la durée, l'état et les étiquettes des alertes dans la console GDC. Pour les scripts, les jobs Cron et les intégrations personnalisées, interrogez le point de terminaison HTTP Cortex Alertmanager de votre projet avec curl.

Avant de commencer

Pour obtenir les autorisations nécessaires pour interroger et visualiser les alertes, demandez à l'administrateur de votre projet IAM de vous accorder l'un des rôles Project Cortex Alertmanager 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 de Role pour PA and AO persona.

Persona Objet Cluster Rôle Espace de noms Groupe/Utilisateur Configuration
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs Groupe 1
PA grafana org-admin project-cortex-alertmanager-viewer platform-obs Utilisateur 2
AO alertmanager org-admin project-cortex-alertmanager-viewer PROJECT_NAMESPACE Groupe 1
AO alertmanager org-admin project-cortex-alertmanager-viewer PROJECT_NAMESPACE 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 l'élément NAMESPACE où ce RoleBinding sera appliqué.
RULE_NAME Nom unique de cette ressource RoleBinding dans l'espace de noms. Exemple :pa-cortex-alertmanager-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 de l'Group auquel appartient l'utilisateur PA/AO. Exemple :pa-group
ZONE Nom de la zone

Configuration 1

Cette configuration accorde à un groupe d'utilisateurs les autorisations nécessaires pour accéder aux alertes PA/AO dans le cluster org. Après avoir défini cette configuration, consultez la section Console de ce document pour afficher les alertes dans la console GDC.

  • Commande kubectl

    Voici le format de commande générique :

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n `NAMESPACE` --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: NAMESPACE
    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 au persona PA et cible l'objet grafana dans le cluster org-admin. Il accorde le rôle project-cortex-alertmanager-viewer dans l'espace de noms platform-obs à un User.

  • Commande kubectl

    Voici le format de commande générique :

    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 à partir de l'espace de noms de votre projet :

Console

Affichez les alertes en cours dans un projet à partir de 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 en fonction 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 : l'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 CLI gdcloud.
  2. Définissez la propriété gdcloud core/organization_console_url :

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. Connectez-vous 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 via 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 étendez l'URL à l'aide de la spécification d'API Alertmanager standard (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 la commande. La réponse de l'API est au format JSON.