Utiliser Cloud Logging avec Container-Optimized OS

Container-Optimized OS inclut un agent Logging qui exporte des les journaux système et de conteneur à Cloud Logging. Jusqu'au Container-Optimized OS 101, images Container-Optimized OS basées sur x86 utilisées un agent Logging conteneurisé basé sur fluentd. Container-Optimized OS 105 a commencé à proposer une autre implémentation d'agent de journalisation, fluent-bit. À partir de Container-Optimized OS 109, l'agent de journalisation fluent-bit est utilisé par défaut. L'ancien agent Logging, fluentd, sera supprimé dans Container-Optimized OS 113.

Toutes les versions des images de Container-Optimized OS basées sur l'architecture ARM sont équipées de la couche fluent-bit de l'agent Logging.

Activer l'agent Logging

L'agent Logging est désactivé par défaut. Vous pouvez activer cette fonctionnalité lors de la création d'une instance ou en mettant à jour une instance existante.

Conditions d'accès

Cloud Logging fournit IAM rôles que vous pouvez utiliser pour accorder l'accès approprié. Pour afficher vos journaux dans un projet, vous devez disposer du rôle roles/logging.viewer et les applications doivent disposer de l'autorisation pour écrire des journaux. Vous pouvez accorder cette autorisation en attribuant le rôle le rôle IAM roles/logging.logWriter au compte de service pour une application.

Pour en savoir plus sur les autorisations et les rôles, consultez la section Rôles prédéfinis.

Créer une instance avec un agent Logging activé

Console

À exécuter une instance Compute Engine sur Container-Optimized OS avec la journalisation fluent-bit l'agent actif, procédez comme suit:

  1. Ouvrez la page de création d'instance Compute Engine dans la console Google Cloud.

    Créer une instance Compute Engine

  2. Indiquez un Nom pour votre instance.

  3. Dans la section Disque de démarrage, sélectionnez une image Container-Optimized OS.

  4. Cliquez sur Gestion, sécurité, disques, mise en réseau et location unique pour développer les options supplémentaires.

  5. Dans l'onglet Gestion, faites défiler la page jusqu'à la section Métadonnées. Ajoutez une nouvelle entrée de métadonnées, avec Key défini sur google-logging-enabled et Value défini sur true.

  6. Vous pouvez éventuellement spécifier d'autres options pour votre cas d'utilisation. Pour en savoir plus, consultez la page Créer et configurer des instances.

  7. Cliquez sur Créer pour créer et démarrer l'instance.

gcloud

Pour exécuter une instance Compute Engine sur Container-Optimized OS à l'aide de la fonction l'agent actif, utilisez la commande gcloud compute instances create et incluez google-logging-enabled=true dans les métadonnées. Exemple :

gcloud compute instances create instance-name \
    --image image-name \
    --image-project cos-cloud \
    --zone compute-zone \
    --metadata google-logging-enabled=true

Remplacez les éléments suivants :

  • instance-name : nom de votre instance de VM.
  • image-name: nom de l'image Container-Optimized OS pour l'instance. Exemple :--image=cos-113-18244-85-29
  • compute-zone : zone de calcul de votre instance.

Pour plus d'informations sur la commande gcloud, consultez la documentation de référence sur gcloud compute instances create. Pour en savoir plus sur la création d'instances Container-Optimized OS, consultez la page Créer et configurer des instances.

Sélectionner l'agent de journalisation

Les images Container-Optimized OS 105 et 109 basées sur x86 incluent deux implémentations de l'agent de journalisation : fluentd (ancien) et fluent-bit. Container-Optimized OS 105 utilise fluentd par défaut, et Container-Optimized OS 109 utilise fluent-bit par défaut. Vous pouvez utiliser l'google-logging-use-fluentbit pour modifier le comportement par défaut.

Pour utiliser l'agent Logging fluent-bit sur Container-Optimized OS 105 Valeur google-logging-use-fluentbit définie sur true.

Pour utiliser l'agent Logging fluentd sur Container-Optimized OS 109, définissez Valeur google-logging-use-fluentbit définie sur false.

Activer l'agent Logging dans les métadonnées du projet

À partir de la étape 97, la journalisation peut être activée dans les métadonnées du projet :

  gcloud compute project-info add-metadata \
    --metadata google-logging-enabled=true

Journaux d'accès

Console

  1. Accédez à la page "Instances de VM".

    Accéder à la page "Instances de VM"

  2. Cliquez sur le nom de l'instance Container-Optimized OS à partir de laquelle vous souhaitez accéder aux journaux.

  3. Dans la section Journaux, cliquez sur Cloud Logging.

  4. L'explorateur de journaux s'ouvre pour l'instance donnée. Pour en savoir plus, consultez la page Utiliser l'explorateur de journaux.

gcloud

Pour accéder aux journaux, utilisez la commande gcloud logging read. Exemple :

gcloud logging read \
"resource.type=gce_instance AND resource.labels.instance_id=instance-id" \
    --limit 10 \
    --format json \
    --freshness 30d

Remplacez les éléments suivants :

  • instance-id : identifiant de votre instance de VM.

Cette commande tente de lire les journaux de l'instance de VM avec instance-id, en limitant à 10 journaux, au format JSON, des 30 derniers jours.

Pour plus d'informations sur la commande gcloud, consultez la documentation de référence sur gcloud logging read.

Fonctionnement

L'agent Logging est configuré par défaut pour envoyer les journaux de certains systèmes des services critiques et des conteneurs d'applications utilisateur backend. Par exemple, les journaux des conteneurs Docker, les services systemd sélectionnés, les journaux d'audit, les erreurs de journal, etc. Consultez la source de configuration spécifique à Container-Optimized OS (images x86 et images Arm) pour obtenir une configuration de journalisation par défaut complète.

Pour les images x86 de Container-Optimized OS 105 et versions antérieures, l'agent Logging est Ancien agent Logging conteneurisé de Google Cloud Observability La commande Docker qui démarre l'agent de journalisation est définie dans la source de Container-Optimized OS pour le service systemd stackdriver-logging. La version de l'agent conteneurisé en cours d'exécution est définie dans Container-Optimized OS répertoire source app-admin/stackdriver.

Pour les images Arm de toutes les versions et les images x86 pour Container-Optimized OS 109 et l'agent Logging est un package d'OS intégré appelé fluent-bit. L'agent est intégré à l'OS et mis à jour avec les images de l'OS.

Limitations connues

Compatibilité avec le pilote gcplogs

À partir du jalon 89, si l'agent de journalisation inclus dans Container-Optimized OS est activé et que le pilote de journalisation Docker gcplogs est activé pour un ou plusieurs conteneurs, les journaux d'avertissement peuvent être générés par l'agent Logging inclus. Cela peut générer du bruit dans les journaux et/ou augmenter les frais liés à Cloud Logging.

Une solution de contournement consiste à ne pas utiliser gcplogs comme pilote de journalisation Docker et d'utiliser à la place le pilote par défaut configuré par Container-Optimized OS. Notez que l'agent Logging inclus dans Container-Optimized OS exporte les journaux de conteneur vers Cloud Logging. Il n'est donc pas nécessaire d'utiliser les deux solutions simultanément.

Compatibilité de la configuration de l'agent Logging

L'agent Logging est un conteneur basé sur fluentd et basé sur x86 Des images Container-Optimized OS et un binaire fluent-bit sur des systèmes ARM Container-Optimized OS. Les configurations des deux agents ne sont pas compatibles. Cela ne pose pas de problème si vous vous appuyez uniquement intégrée aux images de l'OS. Toutefois, si vous disposez d'une configuration de journalisation personnalisée, vous risquez de rencontrer des erreurs lors de la migration de charges de travail vers des images basées sur une architecture différente ou vers une version plus récente de Container-Optimized OS.

Références

  • Documentation de l'ancien agent Logging de Google Cloud Observability L'agent Logging conteneurisé inclus dans Container-Optimized OS est un sous-ensemble de l'ancien agent Logging, Cette documentation peut donc fournir du contexte sur l'agent en général, en dehors du champ d'application de Container-Optimized OS.
  • Documentation sur Google Cloud Observability Page d'accueil de la documentation Google Cloud Observability. Peut être utile pour le contexte.