Configuration de la journalisation pour Kubernetes avec Elasticsearch, Fluentd et Kibana
Vous pouvez configurer la journalisation centralisée pour votre déploiement Kubernetes à l'aide d'Elasticsearch, de Fluentd et de Kibana (EFK).
Utilisation de cette sélection d'outils :- Fluentd collecte les journaux des pods en cours d'exécution dans le cluster et les transmet à Elasticsearch.
- Magasins Elasticsearch, index et journaux de recherche.
- Kibana se connecte à Elasticsearch pour générer des requêtes et visualiser les résultats.
Utilisez ce document comme point de départ pour votre solution de journalisation centralisée. Vous pouvez utiliser d'autres logiciels, produits ou guides pour personnaliser davantage votre solution de journalisation afin de répondre à vos besoins métier.
Before you begin
- Assurez-vous d'avoir installé un cluster Kubernetes avec Helm.
- Assurez-vous que la ligne de commande kubectl (CLI kubectl) est installée.
Procurez-vous les exemples de fichier de configuration de déploiement de charte Helm dans le répertoire sample_values de votre projet Git de charte Helm HCL Commerce cloné.
Selon votre type de déploiement, activez la journalisation JSON pour vos services HCL Commerce à l'aide des variables de configuration de Vault ou de conteneur Docker common.enableJsonLogging.
Procedure
-
Créez un espace de nom pour votre pile EFK.
kubectl create namespace log -
Ajoutez le référentiel Helm Bitnami.
helm repo add bitnami https://charts.bitnami.com/bitnami -
Déployez une instance d'Elasticsearch pour l'utilisation de la journalisation.
- Déployez Elasticsearch à l'aide de l'exemple de fichier de configuration log-elasticsearch-values.yaml à partir du répertoire sample_values de votre projet Git de charte Helm HCL Commerce cloné.
helm install elasticsearch bitnami/elasticsearch -n log -f log-elasticsearch-values.yaml --version "15.3.0" - Surveillez le déploiement et assurez-vous que tous les pods sont en bon état.
- Déployez Elasticsearch à l'aide de l'exemple de fichier de configuration log-elasticsearch-values.yaml à partir du répertoire sample_values de votre projet Git de charte Helm HCL Commerce cloné.
-
Déployez Kibana.
- Déployez Kibana à l'aide de l'exemple de fichier de configuration log-kibana-values.yaml à partir du répertoire sample_values de votre projet Git de charte Helm HCL Commerce cloné.
helm install kibana bitnami/kibana -n log -f log-kibana-values.yaml --version "8.1.3" - Surveillez le déploiement et assurez-vous que tous les pods sont en bon état.
- Déployez Kibana à l'aide de l'exemple de fichier de configuration log-kibana-values.yaml à partir du répertoire sample_values de votre projet Git de charte Helm HCL Commerce cloné.
-
Configurez et déployez Fluentd.
- Créez une mappe de configuration avec l'exemple de mappe de configuration log-forwarder-configmap.yaml.
kubectl apply -f log-forwarder-configmap.yaml -n logNote: Si vous utilisez un autre espace de nom quelog, vous devez mettre à jour la valeur utilisée dans cet exemple de fichier.Remplacez "log" dans la ligne ci-dessous par l'espace de nom créé à l'étape #1.host fluentd-0.fluentd-headless.log.svc.cluster.local - Déployez Fluentd à l'aide de l'exemple de fichier de configuration log-fluentd-values.yaml à partir du répertoire sample_values de votre projet Git de charte Helm HCL Commerce cloné.
helm install fluentd bitnami/fluentd -n log -f log-fluentd-values.yaml --version "3.7.4" - Surveillez le déploiement et assurez-vous que tous les pods sont en bon état.
- Créez une mappe de configuration avec l'exemple de mappe de configuration log-forwarder-configmap.yaml.