Déploiement du Agent de journalisation pour les clusters Kubernetes à l'aide d'une carte Helm
Vous pouvez utiliser une carte Helm pour déployer la carte Agent de journalisation v1.6.x afin de collecter et d'acheminer les journaux d'infrastructure et d'application d'un cluster Kubernetes vers une instance IBM Cloud Logs.
Vous pouvez également utiliser les modules Terraform IBM (TIM) pour le déploiement et la configuration de l'agent de journalisation sur les clusters pris en charge. Agent de journalisation pour déployer et configurer l'agent de logs sur les clusters Kubernetes pris en charge. Ce module automatise le déploiement basé sur Helm et les paramètres de configuration clés en utilisant l'automatisation de l'infrastructure en tant que code ( IaC ).
Effectuez les étapes suivantes pour déployer un agent sur un cluster Kubernetes:
Avant de commencer
-
Assurez-vous d'avoir accès au cluster Kubernetes avec les autorisations nécessaires pour créer des espaces de noms et déployer l'agent.
-
Installez les interfaces de ligne de commande suivantes :
-
Le IBM Cloud CLI pour se connecter au IBM Cloud et gérer les services IBM Cloud tels que la création d'une clé d'API.
-
L'interface de ligne de commande Kubernetes pour gérer le cluster à l'aide des commandes
kubectl. En savoir plus.
-
-
Découvrez le Agent de journalisation.
-
Vérifiez les versions de l'agent disponibles. Pour plus d'informations, voir Vérifier les versions disponibles de l'agent. Notez que la version du tableau Helm correspond à la version de l'agent - par exemple, si vous utilisez la version 1.3.0 de l'agent, il existe un tableau Helm avec la version 1.3.0 qui va de pair avec cette version.
Etape 1. Définir la méthode d'authentification de l'agent
Choisissez le type d'identité et la méthode d'authentification de l'agent. Créez ensuite un profil de confiance ou une clé API. Le rôle requis pour l'envoi des journaux à IBM Cloud Logs est Sender.
Vous pouvez utiliser un identifiant de service ou un profil de confiance comme identité utilisée par l'agent pour s'authentifier auprès du service IBM® Cloud Logs Pour plus d'informations, voir Octroi d'autorisations IAM pour l'ingestion.
Sélectionnez l'une des options suivantes :
Option 1 : Authentification à l'aide d'un profil de confiance
Créez un profil sécurisé. Pour plus d'informations, voir Générer un profil de confiance pour l'ingestion.
Option 2 : Authentification à l'aide d'une clé API d'identification de service
Générer une clé API pour l'authentification de l'ID de service. Pour plus d'informations, voir Générer une clé API pour l'ingestion.
Étape 2. Configuration du fichier de valeurs graphiques Helm pour le Agent de journalisation
Procédez comme suit :
-
Créez un fichier nommé
logs-values.yamlavec le contenu suivant :Ce fichier contient les configurations spécifiques à votre déploiement.
metadata: name: "logs-agent" image: version: "1.6.1" # required clusterName: "ENTER_CLUSTER_NAME" # Enter the name of your cluster. This information is used to improve the metadata and help with your filtering. env: # ingestionHost is a required field. For example: # ingestionHost: "<logs instance>.ingress.us-east.logs.cloud.ibm.com" ingestionHost: "" # required # If you are using private CSE proxy, then use port number "3443" # If you are using private VPE Gateway, then use port number "443" # If you are using the public endpoint, then use port number "443" ingestionPort: "" # required iamMode: "TrustedProfile" # trustedProfileID - trusted profile id - required for iam trusted profile mode trustedProfileID: "Profile-yyyyyyyy-xxxx-xxxx-yyyy-zzzzzzzzzzzz" # required if iamMode is set to TrustedProfile -
Mettez à jour les champs du fichier yaml avec des valeurs spécifiques à votre environnement.
Paramètres requis pour la carte deHelm Nom de zone Description image.versionLa version de l'agent à déployer voir Étape 1 clusterNameLe nom du cluster - ceci introduira la balise kubernetes.cluster_namedans toutes les lignes du journalenv.ingestionHostLe point d'entrée public ou privé pour que l'instance d' IBM Cloud Logs reçoive les journaux env.ingestionPortPort d'entrée de l'
Point d'entrée public =443
Point d'entrée privé (VPE) =443
Point d'entrée privé (CSE) =3443env.iamModeTrustedProfileouIAMAPIKeyen fonction de la méthode d'authentification choisie à l'étape 1env.trustedProfileIDSi iamModeestTrustedProfile, alors fournissez l'identifiant de profil de confiance, sinon cela n'est pas nécessaire (par exemple :Profile-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).env.iamEnvironmentDétermine le point de terminaison d'authentification IAM correct. Les valeurs valides sont Production,PrivateProductionouCustom. Si elle est omise, la valeur par défaut estProduction.env.iamHostSi iamEnvironmentestCustom, alors indiquez l'hôte IAM (par exemple :private.eu-de.iam.cloud.ibm.com), sinon cela n'est pas nécessaire.
Étape 3. Installer la carte Helm
Si vous utilisez le site iamMode comme IAMAPIKey, la clé doit être présente dans un secret Kubernetes nommé logs-agent avec le nom de clé IAM_API_KEY. Le secret peut être créé à l'aide de la
carte Helm en incluant l'option --set secret.iamAPIKey=<your iamAPIKey> lors de l'installation de la barre. Si le secret a été créé manuellement ou si vous utilisez iamMode=TrustedProfile, n'incluez pas cette
option.
Procédez comme suit :
-
Connectez-vous au cluster. Pour plus d'informations, voir Accéder à votre cluster.
-
Effectuez un Helm dry run pour voir les ressources qui seront créées par le Helm graphique.
Si vous utilisez la commande
iamMode=TrustedProfile, la commande complète est la suivante :helm install <install-name> --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespaceSi vous utilisez la commande
iamMode=IAMAPIKey, la commande complète est la suivante :helm install <install-name> --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value> --hide-secretoù :
<install-name>est le nom de l'installation d' Helm s (logs-agent)<chart-version>est la version du diagramme de barre. La version de la carte Helm doit correspondre à la version de l'image de l'agent. Pour plus d'informations, voir Helm versions graphiques.<PATH>est le chemin du répertoire où se trouve le fichierlogs-values.yaml.<APIKey-value>est l'apikey IAM associé au ServiceID établi à l'étape 1- Ajoutez
--hide-secretpour masquer la clé API dans les données de sortie après l'exécution de la commande.
Si vous souhaitez consulter le contenu de la carte de barre localement, vous pouvez télécharger la carte de barre sur votre ordinateur à l'aide de la commande :
helm pull oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version>. Le fichier tgz téléchargé contient le contenu de la carte.Par exemple, vous pouvez exécuter la commande suivante à partir du répertoire où se trouve le fichier
logs-values.yaml:helm install logs-agent --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version 1.6.0 --values ./logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<secret> --hide-secret -
Une fois que les ressources à créer sont vérifiées, exécutez l'installation de Helm sans l'option
--dry-runSi vous utilisez la commande
iamMode=TrustedProfile, la commande complète est la suivante :helm install <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespaceSi vous utilisez la commande
iamMode=IAMAPIKey, la commande complète est la suivante :helm install <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value>où :
<install-name>est le nom de l'installation d' Helm s (logs-agent)<chart-version>est la version du diagramme de barre. La version de la carte Helm doit correspondre à la version de l'image de l'agent. Pour plus d'informations, voir Helm versions graphiques.<PATH>est le chemin du répertoire où se trouve le fichierlogs-values.yaml.<APIKey-value>est l'apikey IAM associé au ServiceID établi à l'étape 1
Étape 4. Vérifier que l'agent a été déployé avec succès
Lorsque l'agent est déployé, vérifiez que les ressources suivantes sont créées :
-
L'espace de noms
ibm-observe.Exécutez la commande suivante pour dresser la liste des espaces de noms dans le cluster et vérifiez que l'espace de noms
logger-agents'affiche avec le statut actif.kubectl get namespace -
Une carte de configuration
logs-agentdans l'espace de nomsibm-observe.Exécutez la commande suivante pour afficher les détails de la configuration de l'agent.
kubectl get configmap logs-agent -n ibm-observeVous pouvez également utiliser :
kubectl describe configmaps logs-agent -n ibm-observe -
Un daemonset
logs-agentdans l'espace de nomsibm-observe.Exécutez la commande suivante pour afficher le daemonset.
kubectl get ds -n ibm-observe -
Vérifiez que les agents sont démarrés :
kubectl -n ibm-observe get ds logs-agent -
Récupérez la liste des agents pods en utilisant la commande suivante :
kubectl get pods -n ibm-observe -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES logs-agent-4lwvt 1/1 Running 0 2d5h 172.17.61.181 192.168.16.4 <none> <none> logs-agent-g7z87 1/1 Running 0 2d5h 172.17.0.48 192.168.32.4 <none> <none> logs-agent-nw56s 1/1 Running 0 2d5h 172.17.32.232 192.168.0.10 <none> <none>La colonne
READYindique1/1pour toutes les nacelles, avec unSTATUSdeRunning. Vérifiez qu'un module d'agent est prêt pour chaque nœud de votre cluster.Pour vérifier le nombre de travailleurs disponibles dans votre cluster, vous pouvez exécuter la commande suivante :
kubectl get nodesNAME STATUS ROLES AGE VERSION 192.168.0.10 Ready master,worker 8d v1.20.0+558d959 192.168.32.4 Ready master,worker 8d v1.20.0+558d959 192.168.16.4 Ready master,worker 8d v1.20.0+558d959Le nombre d'éléments dans chacune de ces deux listes doit être le même, et vous pouvez faire correspondre les adresses IP des noms de nœuds avec les valeurs de la colonne
NODEde la liste de pods.Si vos nœuds ne sont pas nommés par leur IP, vous pouvez ajouter l'option
-o wideet comparer les valeurs dans la colonneINTERNAL-IPà la place.Pour afficher les journaux d'un pod, exécutez
kubectl logs <POD_NAME>> -n ibm-observePour vérifier le diagramme de barre déployé, exécutez
helm list -n ibm-observe
Étape 5. Vérifier que les journaux sont livrés à votre destination cible
Procédez comme suit :
-
Accédez à l'interface web de votre instance IBM Cloud Logs..
-
Lorsque votre agent est correctement configuré, vous pouvez consulter les journaux dans la vue par défaut du tableau de bord. Le Agent de journalisation marque les enregistrements de log avec un objet kubernetes qui inclut le nom du cluster.
kubernetes.cluster_name:<CLUSTER_NAME>Vous pouvez exécuter la requête
kubernetes.cluster_name:<YOUR_CLUSTER_NAME>dans votre instance IBM Cloud Logs pour rechercher les journaux générés par votre cluster.