Si vous utilisez l'ancien agent Logging et que votre configuration est très personnalisée, nous vous recommandons de migrer vers Fluentd, qui est open source. Vous pouvez configurer Fluentd pour préserver le comportement de votre environnement d'agent Logging sans perturber la collecte de vos journaux par Cloud Logging. Ce document décrit le processus de migration.
Comparatif des fonctionnalités
Le tableau suivant compare les principales fonctionnalités de l'ancien agent Logging et de Fluentd en amont.
| Fonctionnalités | Ancien agent Logging | Fluentd en amont |
|---|---|---|
| Ingestion de journaux dans Cloud Logging | Oui | Oui |
| Journaux système standards (syslog) | Oui | Oui |
| Entrée d'application tierce préconfigurée | Oui | Oui † |
| Gestion des journaux structurés (JSON) et non structurés (texte) | Oui | Oui |
| Fusion des exceptions multilignes | Oui | Oui |
| Enrichissement des métadonnéesGoogle Cloud | Oui | Oui |
| Enrichissement des métadonnées Kubernetes | Oui | Oui |
| ID d'entrée de journal uniques | Oui | Oui |
| Transformation des champs de journaux | Oui | Oui |
| Mappage de la gravité | Oui | Oui |
| Authentification (ADC et clés de compte de service) | Oui | Oui |
| Protocoles de transport REST et gRPC | Oui | Oui |
| Intégration de la surveillance | Oui | Oui |
† Bien que le package google-fluentd-catch-all- config ne soit pas inclus dans l'installation standard de Fluentd et des plug-ins en amont, vous pouvez conserver la fonctionnalité d'entrée préconfigurée en suivant les étapes de migration décrites dans ce guide.
Avant de commencer
Avant de commencer la migration, assurez-vous de disposer des éléments suivants :
- Une instance de VM compatible dans un projetGoogle Cloud .
- Les identifiants d'instance de VM qui autorisent la communication avec Cloud Logging. Les instances de VM Compute Engine possèdent généralement par défaut les identifiants valides. Pour vérifier si vous disposez des identifiants corrects, exécutez les procédures décrites à la section Autoriser l'agent Logging.
Migrer vers Fluentd
Cette section décrit les étapes à suivre pour migrer vers la version Fluentd en amont, tout en conservant les fonctionnalités clés fournies par l'ancien agent Logging.
Pour migrer votre configuration, procédez comme suit :
- Arrêter l'ancien agent Logging
- Installer une version stable de fluentd-package
- Installer des plug-ins de plate-forme Google Cloud
- Migrer vos fichiers de configuration de plug-ins d'entrée
- Mettre à jour la configuration syslog
- Mettre à jour votre fichier de configuration Fluentd
- Vérifier que l'agent Fluentd s'exécute correctement
- Désinstaller l'ancien agent Logging
Éteindre l'ancien agent Logging
Avant d'installer l'agent Fluentd en amont, vous devez arrêter l'ancien agent Logging pour éviter les conflits. Pour éviter de perdre des journaux en attente lors de la migration, assurez-vous de vider tous les journaux mis en mémoire tampon à l'arrêt.
Pour arrêter l'ancien agent Logging de manière progressive :
- Ouvrez une connexion de terminal à votre instance de VM à l'aide de SSH ou d'un outil similaire, et assurez-vous de disposer d'un accès sudo.
Pour vider les journaux mis en mémoire tampon avant d'arrêter l'ancien agent Logging, activez l'option
flush_at_shutdown:Mettez à jour le fichier
/etc/google-fluentd/google-fluentd.confpour définir le flagflush_at_shutdownsurtrue:# Configure the agent to flush all buffer chunks on shutdown <match **> @type google_cloud flush_at_shutdown true </match>Redémarrez l'agent pour appliquer les modifications de la configuration :
sudo service google-fluentd restart
Arrêtez l'ancien agent Logging :
sudo service google-fluentd stop
Installer une version stable de fluentd-package
Installez une distribution stable de Fluentd (fluentd-package) dans vos instances de VM. Pour obtenir des instructions, consultez la documentation Fluentd Install fluent-package.
Installer les plug-ins de la plate-forme Google Cloud
Pour permettre à Fluentd d'interagir avec Cloud Logging et de gérer des formats de journaux spécifiques, installez les plug-ins suivants :
Si ce n'est pas déjà fait, installez les outils de compilation pour la compilation des extensions :
Debian ou Ubuntu
Exécutez la commande suivante sur Debian ou Ubuntu :
sudo apt-get update sudo apt-get install -y build-essentialCentOS ou RHEL
Exécutez la commande suivante sur CentOS ou RHEL :
sudo yum update sudo yum groupinstall -y "Development Tools"Installez le plug-in
fluent-plugin-google-cloud:sudo fluent-gem install fluent-plugin-google-cloudInstallez le plug-in
fluent-plugin-detect-exceptions:sudo fluent-gem install fluent-plugin-detect-exceptionsFacultatif : Si votre déploiement de l'ancien agent Logging collecte des journaux à partir d'applications s'exécutant dans un cluster Kubernetes, installez le plug-in
fluent-plugin-kubernetes_metadata_filter:sudo fluent-gem install fluent-plugin-kubernetes_metadata_filterFacultatif : Si votre ancien agent Logging collecte et expose des métriques au format Prometheus, installez les gems suivants :
sudo fluent-gem install prometheus-client -v 0.9.0 sudo fluent-gem install fluent-plugin-prometheus -v 1.4.0
Migrer vos fichiers de configuration de plug-in d'entrée
Pour migrer vos fichiers de configuration et de position existants pour votre installation Fluentd, procédez comme suit :
Créez des répertoires pour les fichiers de configuration et de position Fluentd :
# Create the destination directory for Fluentd configuration files sudo mkdir -p /etc/fluent/config.d # Create the destination directory for position files sudo mkdir -p /var/lib/fluent/posCopiez vos fichiers de configuration
google-fluentddans le répertoire de configuration de Fluentd :sudo cp /etc/google-fluentd/config.d/* /etc/fluent/config.d/Copiez tous les fichiers de position (
.pos) utilisés pargoogle-fluentddans le répertoire de fichiers de position pour Fluentd :sudo cp /var/lib/google-fluentd/pos/*.pos /var/lib/fluent/pos/Les fichiers de position sont utilisés pour suivre les positions de lecture dans les fichiers journaux. La migration permet à Fluentd de démarrer au même point que google-fluentd.
Mettez à jour le chemin
pos_filedans vos nouveaux fichiers de configuration Fluentd pour qu'il pointe vers le nouveau répertoire de fichiers de position :sudo sed -i 's#/var/lib/google-fluentd#/var/lib/fluent#g' /etc/fluent/config.d/*.confAccordez à l'utilisateur du service Fluentd ,
_fluentd, un accès en lecture et en écriture au répertoire/var/lib/fluent/:sudo chown -R _fluentd:_fluentd /var/lib/fluent/Accordez à l'utilisateur
_fluentdun accès en lecture aux fichiers syslog :sudo usermod -a -G adm _fluentd
Mettre à jour la configuration Syslog
Fluentd en amont s'exécute en tant qu'utilisateur non privilégié, qui ne peut pas se lier aux ports privilégiés dont le numéro est inférieur à 1024. Si votre ancienne configuration de l'agent Logging inclut la collecte syslog basée sur le réseau à l'aide de @type syslog sur port 514, vous devez ajuster la configuration.
Pour mettre à jour la configuration du port :
Remplacez l'intégralité du contenu du fichier
/etc/fluent/config.d/syslog_endpoint.confpar la configuration suivante :sudo tee /etc/fluent/config.d/syslog_endpoint.conf > /dev/null <<EOF <source> @type syslog port 5140 <transport tcp> </transport> bind 127.0.0.1 tag syslog </source> EOFCréez ou modifiez le fichier
/etc/rsyslog.d/40-fluentd-forward.confpour transférer les messages syslog vers le nouveau port Fluentd :sudo tee /etc/rsyslog.d/40-fluentd-forward.conf > /dev/null <<EOF # Forward all syslog messages to Fluentd on localhost:5140 via TCP *.* @@127.0.0.1:5140 EOFRedémarrez le service
rsyslogpour appliquer les modifications :sudo systemctl restart rsyslog.service
Mettre à jour le fichier de configuration Fluentd principal
Configurez l'agent Fluentd en amont en répliquant vos paramètres du fichier de configuration de l'agent, google-fluentd.conf, dans le fichier de configuration Fluentd principal, situé à l'adresse /etc/fluent/fluentd.conf.
Pour configurer l'agent Fluentd en amont, procédez comme suit :
Copiez l'intégralité du contenu du fichier
google-fluentd.confpour remplacer le fichier de configuration Fluentd en amont par défaut :sudo cp /etc/google-fluentd/google-fluentd.conf /etc/fluent/fluentd.confMettez à jour le
buffer_pathdans vos fichiers de configuration Fluentd pour qu'il pointe vers le nouveau répertoire Fluentd :sudo sed -i 's#/var/log/google-fluentd#/var/log/fluent#g' /etc/fluent/fluentd.confInspectez le fichier
fluentd.confpour vérifier que la configuration inclut les éléments suivants :@include config.d/*.confest présent pour importer toute la configuration de votre plug-in d'entrée.- Le bloc
<match **> @type google_cloudest configuré pour diffuser des journaux vers Cloud Logging. - Le
buffer_pathdu plug-in de sortie pointe désormais vers/var/lib/fluent/. - Toute directive
pos_filedans les plug-ins d'entrée pointe vers/var/lib/fluent/.
Exécutez un dry run pour vérifier votre configuration Fluentd :
sudo fluentd -c /etc/fluent/fluentd.conf --dry-runVérifiez si des alertes
errorouwarns'affichent dans le résultat. Vous devez résoudre les problèmes identifiés avant de continuer. Pour en savoir plus sur les modifications de syntaxe, consultez Compatibilité de la configuration pour Fluentd en amont.Redémarrez l'agent Fluentd :
sudo service fluentd restart
Valider le bon fonctionnement de l'agent Fluentd
Après avoir démarré Fluentd, vérifiez que les journaux sont bien envoyés à Cloud Logging :
Vérifiez que Fluentd s'exécute sans erreur :
$ sudo service fluentd statusL'état du service doit être actif (en cours d'exécution).
Vérifiez les journaux Fluentd et assurez-vous qu'il n'y a pas d'erreurs ni d'avertissements :
sudo tail -n 100 /var/log/fluent/fluentd.log | grep -iE "error|warn|failed|exception" || trueAucune erreur ni aucun avertissement ne doivent être listés.
Consultez Cloud Logging pour vérifier que les journaux sont reçus de votre instance de VM. Pour en savoir plus sur l'affichage de vos journaux, consultez Utiliser l'explorateur de journaux.
Désinstaller l'ancien agent Logging
Une fois que vous avez vérifié que le nouveau Fluentd envoie bien les journaux à Cloud Logging, supprimez l'ancien agent Logging et ses fichiers de configuration :
Debian ou Ubuntu
sudo apt-get remove --purge google-fluentd
CentOS ou RHEL
sudo yum remove google-fluentd