Déployer les clusters Agent de journalisation v1.6.x pour OpenShift
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 OpenShift 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 OpenShift 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 d' OpenShift s :
Avant de commencer
-
Assurez-vous d'avoir accès à un cluster d' Red Hat OpenShift on IBM Cloud s (
OpenShift) 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 :
-
L'interface de ligne de commande ( IBM Cloud ) pour se connecter à l' IBM Cloud et gérer les services d' IBM Cloud, comme la création d'une clé API.
-
L'interface en ligne de commande Openshift pour gérer le cluster à partir de la ligne de commande. En savoir plus.
-
La dernière version de l' Helm CLI version 3
-
-
En savoir plus sur l' Agent de journalisation.
-
Vérifiez les versions d'agent disponibles. Pour plus d'informations, voir Vérification des versions d'agent disponibles. Notez que la version du tableau d' Helm s correspondra à la version de l'agent. Par exemple, si vous utilisez la version 1.3.0 de l'agent, un tableau d' Helm s avec la version 1.3.0 accompagne 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. Ensuite, créez un profil de confiance ou une clé API. Le rôle requis pour envoyer des logs à 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 Accorder des 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ération d'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ération d'une clé API pour l'ingestion.
Étape 2. Configuration du fichier de valeurs de la charte d' Helm s 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 scc: # true here enables creation of Security Context Constraints in Openshift create: true -
Mettez à jour les champs du fichier yaml avec des valeurs spécifiques à votre environnement.
Helm graphique paramètres requis 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.scc.createDéfinissez-le sur trueafin de créer les contraintes de sécurité dans Openshift
É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 l' iamMode=TrustedProfile, n'incluez pas cette
option.
Procédez comme suit :
-
Connectez-vous au cluster.
Red Hat OpenShift on IBM Cloud est intégré à la gestion des identités et des accès ( IBM Cloud Identity and Access Management, IAM). Avec IAM, vous pouvez authentifier des utilisateurs et des services en utilisant leurs identités IAM et autoriser des actions avec des rôles et des règles d'accès. Lorsque vous vous authentifiez en tant qu'utilisateur via la console Red Hat OpenShift, votre identité IAM est utilisée pour générer un jeton de connexion Red Hat OpenShift que vous pouvez utiliser pour vous connecter à la ligne de commande. Vous pouvez automatiser la connexion à votre cluster en créant une clé d'API IAM ou un ID de service à utiliser pour la commande
oc login. Pour plus d'informations, voir Accéder aux clusters d' Red Hat OpenShift.Par exemple, suivez les étapes décrites dans la section Utilisation d'un identifiant de service pour se connecter aux clusters pour vous connecter à votre cluster.
-
Effectuer un test à blanc ( Helm ) pour voir les ressources qui seront créées par le tableau d' Helm.
Si vous utilisez l'
iamMode=TrustedProfile, la commande complète est :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 l'
iamMode=IAMAPIKey, la commande complète est :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 de la carte de barre. La version du graphique d' Helm s doit correspondre à la version de l'image de l'agent. Pour plus d'informations, consultez Helm versions de graphiques.<PATH>est le chemin d'accès au répertoire où se trouve le fichier d'logs-values.yaml.<APIKey-value>est la clé API IAM associée à la configuration ServiceID à 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 du tableau de barre localement, vous pouvez le télécharger sur votre ordinateur en utilisant la commande :
helm pull oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version>. Le fichier tgz téléchargé contient le contenu du graphique.Par exemple, vous pouvez exécuter la commande suivante à partir du répertoire où le fichier
logs-values.yamlest disponible :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 les ressources à créer vérifiées, lancez l'installation d' Helm, sans l'option d'
--dry-runSi vous utilisez l'
iamMode=TrustedProfile, la commande complète est :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 l'
iamMode=IAMAPIKey, la commande complète est :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 de la carte de barre. La version du graphique d' Helm s doit correspondre à la version de l'image de l'agent. Pour plus d'informations, consultez Helm versions de graphiques.<PATH>est le chemin d'accès au répertoire où se trouve le fichier d'logs-values.yaml.<APIKey-value>est la clé API IAM associée à la configuration ServiceID à l'étape 1
Étape 4. Vérifier que l'agent est 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.Pour lister les espaces de noms dans le cluster, exécutez la commande suivante :
oc get namespaceVous pouvez également exécuter la commande suivante pour rechercher l'espace de noms
ibm-observe:oc get namespace | grep ibm-observe -
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.
oc get configmap logs-agent -n ibm-observeVous pouvez également utiliser la commande suivante :
oc describe configmaps logs-agent -n ibm-observe -
Un ensemble de démons (daemonset)
logs-agentdans l'espace de nomsibm-observe.Exécutez la commande suivante pour afficher le daemonset :
oc get ds -n ibm-observe -
Récupérez la liste des pods d'agents en utilisant la commande suivante :
oc 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 «
READY» affiche «1/1» pour tous les pods, avec une «STATUS» de «Running». Vérifiez qu'un pod agent est prêt pour chaque nœud de votre cluster.Pour vérifier combien de travailleurs sont disponibles dans votre cluster, vous pouvez exécuter la commande suivante :
oc 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 identique, et vous pouvez faire correspondre les adresses IP dans les noms de nœuds avec les valeurs dans la colonne «
NODE» de la liste des 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 module, exécutez la commande suivante
oc logs <POD_NAME>> -n ibm-observe
Étape 5. Vérifier que les journaux sont livrés à votre destination cible
Procédez comme suit :
-
Accédez à l'interface utilisateur Web de votre instance d' IBM Cloud Logs.
-
Lorsque votre agent est correctement configuré, vous pouvez voir les journaux via la vue du tableau de bord par défaut. L' Agent de journalisation e les enregistrements du journal 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 d' IBM Cloud Logs, afin de rechercher les journaux générés par votre cluster.