Container-Optimized OS inclut un agent Logging qui exporte certains journaux système et de conteneurs vers Cloud Logging. Jusqu'à Container-Optimized OS 101, les images Container-Optimized OS basées sur x86 utilisaient un agent Logging conteneurisé basé sur fluentd. Container-Optimized OS 105 a commencé à fournir une autre implémentation de l'agent Logging, fluent-bit. À partir de Container-Optimized OS 109, l'agent Logging fluent-bit est celui par défaut. L'ancien agent Logging, fluentd, sera supprimé dans Container-Optimized OS 113.
Toutes les versions des images Container-Optimized OS basées sur Arm sont fournies avec l'agent Logging fluent-bit.
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 définit des rôles IAM
que vous pouvez utiliser pour accorder un accès approprié.
Pour afficher vos journaux dans un projet, vous devez disposer du rôle roles/logging.viewer et les applications doivent être autorisées à écrire des journaux. Vous pouvez accorder cette autorisation en attribuant le rôle IAM roles/logging.logWriter au compte de service d'une application.
Pour en savoir plus sur les autorisations et les rôles, consultez la page Rôles prédéfinis.
Créer une instance avec un agent Logging activé
Console
Pour exécuter une instance Compute Engine sur Container-Optimized OS avec l'agent Logging fluent-bit activé, procédez comme suit :
Ouvrez la page de création d'instance Compute Engine sur la console. Google Cloud
Indiquez un Nom pour votre instance.
Dans la section Disque de démarrage, sélectionnez une image Container-Optimized OS.
Cliquez sur Gestion, sécurité, disques, mise en réseau et location unique pour développer les options supplémentaires.
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-enabledet Value défini surtrue.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.
Cliquez sur Créer pour créer et démarrer l'instance.
gcloud
Pour exécuter une instance Compute Engine sur Container-Optimized OS avec l'agent Logging activé, 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 Container-Optimized OS 105 et 109 basées sur x86 sont fournies avec deux implémentations de l'agent Logging : fluentd (ancienne version) et fluent-bit.
Container-Optimized OS 105 utilise fluentd par défaut, tandis que Container-Optimized OS 109 utilise fluent-bit par défaut. Vous pouvez utiliser l'entrée de métadonnées google-logging-use-fluentbit pour modifier le comportement par défaut.
Pour utiliser l'agent Logging fluent-bit sur Container-Optimized OS 105, définissez la valeur google-logging-use-fluentbit sur true.
Pour utiliser l'agent Logging fluentd sur Container-Optimized OS 109, définissez la valeur google-logging-use-fluentbit 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
Accédez à la page "Instances de VM".
Cliquez sur le nom de l'instance Container-Optimized OS à partir de laquelle vous souhaitez accéder aux journaux.
Dans la section Journaux, cliquez sur Cloud Logging.
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 des journaux à partir de certains services critiques du système et de certains conteneurs d'applications utilisateur vers le backend de Cloud Logging. Par exemple, les journaux des conteneurs Docker, les services systemd sélectionnés, les journaux d'audit, les erreurs de journal, etc. Pour obtenir la configuration de journalisation par défaut complète, consultez la source de configuration spécifique à Container-Optimized OS (images x86 et images Arm) .
Pour les images x86 de Container-Optimized OS 105 et versions antérieures, l'agent Logging est l'ancien agent Logging conteneurisé de Google Cloud Observability. La commande Docker qui démarre l'agent Logging est définie dans la source Container-Optimized OS pour le service systemd stackdriver-logging. La version de l'agent conteneurisé en cours d'exécution est définie dans le répertoire app-admin/stackdriver de la source Container-Optimized OS .
Pour les images Arm de toutes les versions et les images x86 de Container-Optimized OS 109 et versions ultérieures, l'agent Logging est un package OS intégré appelé fluent-bit. L'agent est intégré au système d'exploitation et mis à jour en même temps que 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 sur les images Container-Optimized OS basées sur x86 et un binaire fluent-bit sur les images Container-Optimized OS basées sur Arm. Les configurations des deux agents ne sont pas compatibles. Cela ne pose pas de problème si vous ne vous appuyez que sur la configuration de journalisation par défaut intégrée aux images de l'OS. Toutefois, si vous disposez d'une configuration de journalisation personnalisée, vous risquez de rencontrer des problèmes 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 documentation. L'agent Logging conteneurisé inclus dans Container-Optimized OS est un sous-ensemble de l'ancien agent Logging. Cette documentation peut donc fournir un contexte plus général sur l'agent, en dehors du champ d'application de Container-Optimized OS.
- Documentation de Google Cloud Observability documentation. Page d'accueil de la documentation de Google Cloud Observability. Peut être utile pour le contexte.