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é à livrer une implémentation alternative de l'agent Logging, fluent-bit. À partir de Container-Optimized OS 109, l'agent Logging 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 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 Logging

Les images x86 Container-Optimized OS 105 et 109 proposent deux implémentations de l'agent Logging: fluentd (ancien) et fluent-bit. Container-Optimized OS 105 utilise fluentd par défaut 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 du jalon 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, certains services systemd sélectionnés les journaux d'audit, les erreurs de journal, etc. Consultez les ressources spécifiques à Container-Optimized OS source de la configuration (images x86 et images Arm) pour une configuration complète de la journalisation par défaut.

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 démarre, l'agent Logging est défini dans le système d'exploitation Container-Optimized OS, Source du service stackdriver-logging systemd 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 de système d'exploitation intégré 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é avec 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. La configuration des deux agents compatibles. Cela ne pose pas de problème si vous vous appuyez uniquement intégrée aux images de l'OS. Toutefois, si vous avez un de journalisation personnalisée, vous risquez de rencontrer des problèmes lors de la migration vers des images basées sur une architecture différente ou une version plus récente de Container-Optimized OS.

Références

  • Ancien agent Logging de Google Cloud Observability documentation. 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 Google Cloud Observability Page d'accueil de l'observabilité Google Cloud documentation; peut être utile pour le contexte.