Observer les clusters

Cette page explique comment utiliser les options de journalisation et de surveillance disponibles avec le mode privé d'Anthos.

Cette page s'adresse aux administrateurs de plates-formes.

Tableaux de bord de surveillance

Des exemples de tableaux de bord pour la surveillance des métriques des clusters et des nœuds sont disponibles dans le centre de gestion Anthos.

Onglet Monitoring.

Le bouton Grafana Monitoring Dashboard (tableau de bord de surveillance Grafana) ouvre l'application Grafana hébergée sur le cluster d'administrateur. L'accès à Grafana est contrôlé via le centre de gestion. Si vous êtes connecté au Centre de gestion, aucune connexion supplémentaire n'est requise.

Une fois la connexion établie, une liste d'exemples de tableaux de bord est disponible pour la démonstration.

Tableaux de bord Grafana

Journaux de requête

Le bouton Journaux Loki Grafana permet d'ouvrir Grafana Explorer, où les journaux, y compris les journaux système Kubernetes, peuvent être interrogés. Les journaux sont libellés comme décrit dans la section suivante.

Libellés de journaux

Type de journal Étiquettes
Journaux de conteneur
  • Cluster=CLUSTER_NAME
  • resources=k8s_container
  • namespace=NAMESPACE_NAME
  • node=NODE_NAME
  • pod=POD_NAME
  • container=CONTAINER_NAME
  • Autres libellés Kubernetes
Journaux de nœud journald
  • Cluster=CLUSTER_NAME
  • resources=k8s_node
  • node=NODE_NAME
  • identifier=SYSLOG_IDENTIFIER
  • Machine=MACHINE_ID
Journaux d'audit
  • Cluster=CLUSTER_NAME
  • resource=k8s_audit
  • level=LEVEL
  • vert=VERB

Tous les libellés Kubernetes et un libellé de cluster sont inclus en tant que libellés de journal.

Exemples de requêtes

  • La requête suivante sélectionne les journaux du conteneur :

    {cluster="admin", namespace="kube-system", resources="k8s_container", container="kube-apiserver"}
    

    Journaux de conteneur de requête Grafana

  • La requête suivante sélectionne les journaux Journald du nœud :

    {cluster="admin", resources="k8s_node"}
    

    Journaux de nœuds de requête Grafana

  • La requête suivante sélectionne les journaux d'audit :

    {cluster="admin", resources="k8s_audit"}
    

    Journaux d'audit de requête Grafana

Configurer une ressource StorageClass personnalisée

Le mode privé d'Anthos utilise PersistentVolumeClaims pour provisionner de l'espace afin de stocker des métriques, des journaux, des tableaux de bord et des alertes. Lorsque vous créez un cluster, le cluster crée automatiquement une ressource personnalisée LogMon. Pour remplacer la valeur par défaut StorageClass, procédez comme suit :

  1. Exécutez la commande suivante pour ouvrir la ressource personnalisée LogMon dans un éditeur de ligne de commande :

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. Dans la ressource personnalisée LogMon, mettez à jour storageClassName sous le champ spec :

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              storageClassName: anthos-system # configure the new storage class here 
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              storageClassName: anthos-system # configure the new storage class here
    
  3. Pour enregistrer les modifications apportées à la ressource personnalisée LogMon, enregistrez et quittez l'éditeur de ligne de commande.

Configurer la taille de l'espace de stockage

Lorsque vous créez un cluster, le cluster crée automatiquement une ressource personnalisée LogMon. Pour ignorer la taille de stockage des métriques, journaux, tableaux de bord et alertes, procédez comme suit :

  1. Exécutez la commande suivante pour ouvrir la ressource personnalisée LogMon dans un éditeur de ligne de commande :

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. Dans la ressource personnalisée LogMon, mettez à jour l'élément storageSize sous le champ spec :

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              components:
                loki:
                   storageSize: 20Gi # configure the new storage size for logs here
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              components:
                alertmanager:
                   storageSize: 1Gi # configure the new storage size for alerts here
                grafana:
                   storageSize: 1Gi # configure the new storage size for dashboards here
                prometheus:
                   storageSize: 20Gi # configure the new storage size for metrics here
    ````
    
  3. Pour enregistrer les modifications apportées à la ressource personnalisée LogMon, enregistrez et quittez l'éditeur de ligne de commande.

Configurer la durée de conservation

Pour configurer la durée de conservation des journaux des agents Prometheus et Loki exécutés dans le cluster, procédez comme suit :

  1. Exécutez la commande suivante pour ouvrir la ressource personnalisée LogMon dans un éditeur de ligne de commande :

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. Dans la ressource personnalisée LogMon, mettez à jour l'élément retentionTime sous le champ spec :

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              retentionPolicy:
                retentionTime: 720h # configure the new retention time for logs here
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              retentionPolicy:
                retentionTime: 720h # configure the new retention time for metrics here
    
  3. Pour enregistrer les modifications apportées à la ressource personnalisée LogMon, enregistrez et quittez l'éditeur de ligne de commande.

Configurer une sortie supplémentaire "fluent-bit"

L'exportation de journaux vers d'autres destinations en plus de Loki exécuté dans le cluster est possible. Consultez la liste des destinations acceptées. Pour configurer la destination de sortie des journaux supplémentaires, procédez comme suit 

  1. Créez un ConfigMap dans l'espace de noms kube-system avec le libellé logmon: system_logs. La configuration de sortie supplémentaire utilise la même syntaxe que les plug-ins de sortie fluent-bit, et doit être ajoutée au fichier output.conf sous le champ data. Consultez les exemples de fichiers de configuration.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # The name should match the configmap name specified in step 3.
      name: <customized-system-logs-fluent-bit-output-config>
      # Don't change the namespace
      namespace: kube-system
      labels:
        # This label is required.
        logmon: system_logs
    data:
      # The file name must be output.conf
      output.conf: |
        # Add a customized fluent-bit output plugin configuration here
    
  2. Exécutez la commande suivante pour ouvrir la ressource personnalisée LogMon dans un éditeur de ligne de commande :

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. Dans la ressource personnalisée LogMon, ajoutez le champ additionalOutput sous le champ spec/system_logs/outputs.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          additionalOutput:
            fluentbitConfigmaps:
            # The name should match the configmap name created in step 1.
            - "<customized-system-logs-fluent-bit-output-config>"
            # Scheme: []v1.VolumeMount. Add volumeMounts if necessary
            volumeMounts:
            - ...
            - ...
            # Scheme: []v1.Volume. Add volumes if necessary
            volumes:
            - ...
            - ...
    
  4. Pour enregistrer les modifications apportées à la ressource personnalisée LogMon, enregistrez et quittez l'éditeur de ligne de commande.