Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Utiliser les métriques Policy Controller

Cette page explique comment surveiller des règles à l'aide de métriques.

Policy Controller inclut plusieurs métriques liées à l'utilisation des règles. Par exemple, des métriques enregistrent le nombre de contraintes et de modèles de contraintes, ainsi que le nombre de violations d'audit détectées. Pour créer et enregistrer ces métriques, Policy Controller utilise OpenCensus. Vous pouvez configurer Policy Controller pour exporter ces métriques vers Prometheus ou Cloud Monitoring. Le paramètre par défaut pour exporter des métriques les exporte à la fois vers Prometheus et Cloud Monitoring.

Configurer l'exportation des métriques

Dans Anthos Config Management 1.12.0 et versions ultérieures, vous pouvez configurer la manière dont Policy Controller exporte ses métriques. Vous pouvez choisir Prometheus, Cloud Monitoring ou les deux lors de l'installation de Policy Controller. Par défaut, Policy Controller tente d'exporter les métriques à la fois vers Prometheus et Cloud Monitoring.

Dans les versions d'Anthos Config Management antérieures à la version 1.12.0, Policy Controller n'exporte les métriques que vers Prometheus.

Exporter des métriques vers Cloud Monitoring

Si Policy Controller s'exécute dans un environnement Google Cloud doté d'un compte de service par défaut, Policy Controller exporte automatiquement les métriques dans Cloud Monitoring dans Anthos Config Management versions 1.12.0 et ultérieures.

Si GKE Workload Identity ou Workload Identity Identity est activé, procédez comme suit:

  1. Liez le compte de service Kubernetes gatekeeper-admin dans l'espace de noms gatekeeper-system à un compte de service Google doté du rôle de rédacteur de métriques :

    gcloud iam service-accounts add-iam-policy-binding \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \
        GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet.
    • GSA_NAME : compte de service Google disposant du rôle IAM "Rédacteur de métriques Monitoring" (roles/monitoring.metricWriter).

    Cette action nécessite une autorisation iam.serviceAccounts.setIamPolicy sur le projet.

  2. Annotez le compte de service Kubernetes à l'aide de l'adresse e-mail du compte de service Google :

    kubectl annotate serviceaccount \
        --namespace gatekeeper-system \
        gatekeeper-admin \
        iam.gke.io/gcp-service-account=GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
    
  3. Redémarrez le pod gatekeeper-controller-manager:

    kubectl rollout restart deployment gatekeeper-controller-manager -n gatekeeper-system
    

Pour obtenir des exemples d'affichage de ces métriques, consultez la page Lire les métriques OpenCensus dans Cloud Monitoring.

Exporter des métriques vers Prometheus

Policy Controller exporte par défaut les métriques pour Prometheus sur le port 8675. Vous pouvez également configurer Cloud Monitoring pour extraire des métriques personnalisées de Prometheus. Pour en savoir plus, consultez la page Prometheus géré.

Afficher les métriques

Les métriques Policy Controller sont exportées vers votre projet Cloud Monitoring au format Prometheus. Par conséquent, vous pouvez interroger des métriques à l'aide de l'API Cloud Monitoring et d'un tableau de bord dans la console Google Cloud. Vous pouvez modifier ce tableau de bord pour répondre à vos besoins commerciaux et opérationnels.

Pour interroger l'API Cloud Monitoring, utilisez Prometheus Query Language (PromQL) (langage de requête de facto pour les métriques Kubernetes) ou Monitoring Query Language (MQL) (langage de requête de métriques propriétaire de Google).

Pour créer le tableau de bord Policy Controller, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Tableaux de bord.

    Accéder aux tableaux de bord

  2. Sur la page de présentation des tableaux de bord, cliquez sur l'onglet Bibliothèque d'exemples. Cet onglet affiche tous les tableaux de bord que vous pouvez importer.

  3. Dans la colonne Catégories, sélectionnez Anthos Config Management.

  4. Dans le tableau Exemples d'Anthos Config Management, cochez la case Policy Controller.

  5. Cliquez sur Import (Importer).

  6. Pour créer le tableau de bord, cliquez sur Confirmer dans la fenêtre de confirmation.

Pour afficher et modifier le tableau de bord de Policy Controller, procédez comme suit:

  1. Sur la page de présentation des tableaux de bord, sélectionnez l'onglet Liste des tableaux de bord.
  2. Sélectionnez le tableau de bord Policy Controller.
  3. Pour personnaliser le tableau de bord, cliquez sur Modifier le tableau de bord.
  4. Apportez les modifications nécessaires, puis cliquez sur Enregistrer. Pour en savoir plus sur la personnalisation des tableaux de bord, consultez la page Filtrer un tableau de bord dans la documentation Cloud Monitoring.

Créer des alertes

Pour recevoir des notifications lorsque vos métriques atteignent certains seuils, créez des règles d'alerte dans Cloud Monitoring.

Intégration tierce

À l'aide de l'API Cloud Monitoring, tout outil d'observabilité tiers peut ingérer des métriques Policy Controller.

Par exemple, si vous utilisez des tableaux de bord Grafana, ajoutez l'API Cloud Monitoring en tant que source de données dans Grafana. Pour en savoir plus, consultez Google Cloud Monitoring dans la documentation de Grafana.

Métriques disponibles

Si Policy Controller est activé sur votre cluster, vous pouvez interroger les métriques suivantes (toutes précédées du préfixe OpenCensus/) :

Nom Type Étiquettes Description
OpenCensus/audit_duration_seconds Cumulé Distribution de la durée du cycle d'audit
OpenCensus/audit_last_run_time Jauge Horodatage de l'époch depuis la dernière exécution d'audit, exprimé en secondes avec virgule flottante
OpenCensus/constraint_template_ingestion_count Cumulé état Nombre total d'actions d'ingestion de modèle de contrainte
OpenCensus/constraint_template_ingestion_duration_seconds Cumulé état Distribution de la durée d'ingestion de modèle de contrainte
OpenCensus/constraint_templates Jauge état Nombre actuel de modèles de contraintes
OpenCensus/validation_request_count Compteur admission_status Décompte de requêtes d'admission du serveur d'API
OpenCensus/validation_request_duration_seconds Cumulé admission_status Distribution de la durée des requêtes d'admission
OpenCensus/violations Jauge enforcement_action Nombre de violations des règles d'audit détectées au cours du dernier cycle d'audit
OpenCensus/watch_manager_intended_watch_gvk Jauge Nombre de GroupVersionKinds uniques que Policy Controller est censé surveiller. Cette métrique est une combinaison de ressources et de contraintes synchronisées. Non mis en œuvre actuellement.
OpenCensus/watch_manager_watched_gvk Jauge Nombre de GroupVersionKinds uniques que Policy Controller surveille réellement. Cette métrique est censée être convergente pour être égale à OpenCensus/watch_manager_intended_watch_gvk. Non mis en œuvre actuellement.

Étapes suivantes