Cloud Logging

Cette page explique comment utiliser Cloud Logging pour collecter et interroger des journaux à partir de clusters Google Kubernetes Engine (GKE).

Présentation

Lorsque Logging est activé dans votre cluster, vos journaux sont stockés dans une banque de données persistante dédiée. Votre projet Google Cloud contient plusieurs journaux pertinents pour un cluster GKE. En voici quelques-uns : le journal d'activité d'administration, le journal d'accès aux données et le journal des événements.

Un journal correspond à une collection d'entrées de journal. Chaque entrée de journal s'applique à un certain type de ressource. Voici les types de ressources les plus pertinents pour les clusters GKE :

Type de ressource Nom à afficher
k8s_cluster Cluster Kubernetes
gke_cluster Opérations du cluster GKE
gke_container Conteneur GKE
gke_nodepool Opérations du pool de nœuds GKE

Pour en savoir plus sur les entrées de journal qui s'appliquent aux types de ressources "Cluster Kubernetes" et "Opérations du cluster GKE", consultez la page Journaux d'audit.

Bien que GKE lui-même enregistre des journaux, ceux-ci ne sont pas stockés de manière permanente. Ainsi, les journaux de conteneurs GKE sont supprimés lorsque leur pod hôte est supprimé, lorsque le disque sur lequel ils sont stockés manque d'espace ou lorsqu'ils sont remplacés par des journaux plus récents. Les journaux système sont régulièrement supprimés afin de libérer de l'espace pour les nouveaux journaux. Les événements de cluster sont supprimés au bout d'une heure.

Pour les journaux de conteneurs et les journaux système, GKE déploie un agent de journalisation par nœud qui lit les journaux de conteneurs, ajoute des métadonnées utiles, puis les stocke. L'agent de journalisation recherche les journaux de conteneurs dans les sources suivantes :

  • Journaux de sortie et d'erreur standards des processus conteneurisés
  • Journaux d'exécution de kubelet et du conteneur
  • Journaux des composants système, tels que les scripts de démarrage de VM

Pour les événements, GKE utilise un déploiement dans l'espace de noms kube-system qui collecte automatiquement les événements et les envoie vers Logging.

La journalisation Logging est compatible avec le format JSON. Les journaux sont stockés jusqu'à 30 jours.

Avant de commencer

Pour vous préparer à cette tâche, procédez comme suit :

  • Assurez-vous d'avoir activé l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Assurez-vous d'avoir installé le SDK Cloud.
  • Définissez votre ID de projet par défaut :
    gcloud config set project [PROJECT_ID]
  • Si vous utilisez des clusters zonaux, définissez votre zone de calcul par défaut :
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Si vous utilisez des clusters régionaux, définissez votre région de calcul par défaut :
    gcloud config set compute/region [COMPUTE_REGION]
  • Installez la dernière mise à jour de gcloud :
    gcloud components update

Activer la journalisation

Vous pouvez créer un cluster sur lequel Logging est activé, ou activer Logging dans un cluster existant.

Créer un cluster avec Logging

gcloud

Lorsque vous créez un cluster, l'indicateur --enable-cloud-logging est automatiquement spécifié, ce qui active Logging dans le cluster.

Pour désactiver ce comportement par défaut, utilisez l'indicateur --no-enable-cloud-logging.

Console

  1. Dans Cloud Console, accédez à la page Kubernetes Engine > Clusters Kubernetes :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur Créer un cluster.

  3. Configurez le cluster selon vos besoins.

  4. Cliquez sur Options avancées. Dans la section Fonctionnalités supplémentaires, sélectionnez l'option Activer le service Stackdriver Logging.

  5. Cliquez sur Créer.

Activer la journalisation pour un cluster existant

gcloud

Pour activer la journalisation pour un cluster existant, exécutez la commande suivante, où [CLUSTER_NAME] correspond au nom du cluster.

gcloud container clusters update [CLUSTER_NAME] --logging-service logging.googleapis.com

console

  1. Dans Cloud Console, accédez à la page Kubernetes Engine > Clusters Kubernetes :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur Modifier.

  3. Passez la valeur du menu déroulant Stackdriver Logging à Activé.

  4. Cliquez sur Enregistrer.

Afficher les journaux

Vous pouvez afficher les journaux dans la visionneuse de journaux Stackdriver de Google Cloud Console.

Pour en savoir plus sur l'affichage des journaux, en particulier la création de requêtes de base et avancées, consultez la page Afficher les journaux de la documentation de Logging.

Exemples de requêtes

  • Interroger les journaux des pods portant un libellé nginx-deployment :

    resource.type="container"
    resource.labels.pod_id:"nginx-deployment-"
  • Interroger les journaux dans l'espace de noms prod pour les entrées de gravité WARNING ou supérieure :

    resource.type="container"
    resource.labels.namespace_id="prod"
    severity>WARNING

    Pour en savoir plus sur les niveaux de gravité, consultez la section Log Severity (gravité dans les journaux).

  • Interroger les journaux d'un conteneur spécifique, my-container, dans un pod spécifique, my-pod, avec une charge utile de type texte :

    resource.type="container"
    resource.labels.container_name="my_container"
    resource.labels.pod_id="my_pod"
    textPayload:"abracadabra"

Limites

Les entrées sur plusieurs lignes (comportant des caractères de saut de ligne) peuvent ne pas être traitées correctement. Pour éviter ce problème, encapsulez vos entrées de journaux dans des chaînes JSON à une seule ligne.

Désactiver la journalisation

gcloud

Pour désactiver les anciens Logging and Monitoring sur un cluster existant, exécutez la commande suivante, où [CLUSTER_NAME] est le nom du cluster.

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none

Si vous exécutez Cloud Operations pour GKE dans votre cluster, vous devez désactiver la surveillance et la journalisation, en utilisant gcloud beta pour définir les options suivantes dans votre cluster :

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none

Console

  1. Dans Cloud Console, accédez à la page Kubernetes Engine > Clusters Kubernetes :

    Accéder à la page "Clusters Kubernetes"

  2. Cliquez sur le bouton Modifier correspondant au cluster que vous souhaitez modifier.

  3. Passez la valeur du menu déroulant Stackdriver Logging à Désactivé.

  4. Cliquez sur Enregistrer.

Étape suivante

  • Pour en savoir plus sur les tarifs de la suite d'opérations Google Cloud, consultez la page Tarification.
  • Pour en savoir plus sur Cloud Logging, consultez la documentation Cloud Logging.
  • Pour en savoir plus sur les ressources et les services de la suite d'opérations Google Cloud, consultez la page Ressources et services contrôlés.