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 :

  1. Créez un fichier nommé logs-values.yaml avec 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
    
  2. Mettez à jour les champs du fichier yaml avec des valeurs spécifiques à votre environnement.

    Helm graphique paramètres requis
    Nom de zone Description
    image.version La version de l'agent à déployer voir Étape 1
    clusterName Le nom du cluster - ceci introduira la balise kubernetes.cluster_name dans toutes les lignes du journal
    env.ingestionHost Le point d'entrée public ou privé pour que l'instance d' IBM Cloud Logs reçoive les journaux
    env.ingestionPort Port d'entrée de l'
    Point d'entrée public = 443
    Point d'entrée privé (VPE) = 443
    Point d'entrée privé (CSE) = 3443
    env.iamMode TrustedProfile ou IAMAPIKey en fonction de la méthode d'authentification choisie à l'étape 1
    env.trustedProfileID Si iamMode est TrustedProfile, alors fournissez l'identifiant de profil de confiance, sinon cela n'est pas nécessaire (par exemple : Profile-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ).
    env.iamEnvironment Détermine le point de terminaison d'authentification IAM correct. Les valeurs valides sont Production, PrivateProduction ou Custom. Si elle est omise, la valeur par défaut est Production.
    env.iamHost Si iamEnvironment est Custom, alors indiquez l'hôte IAM (par exemple : private.eu-de.iam.cloud.ibm.com), sinon cela n'est pas nécessaire.
    scc.create Définissez-le sur true afin 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 :

  1. 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.

  2. 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-namespace
    

    Si 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-secret
    

    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
    • Ajoutez --hide-secret pour 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.yaml est 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
    
  3. Une fois les ressources à créer vérifiées, lancez l'installation d' Helm, sans l'option d' --dry-run

    Si 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-namespace
    

    Si 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 namespace
    

    Vous 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-agent dans l'espace de noms ibm-observe.

    Exécutez la commande suivante pour afficher les détails de la configuration de l'agent.

    oc get configmap logs-agent -n ibm-observe
    

    Vous pouvez également utiliser la commande suivante :

    oc describe configmaps logs-agent -n ibm-observe
    
  • Un ensemble de démons (daemonset) logs-agent dans l'espace de noms ibm-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 wide
    
    NAME                  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 nodes
    
    NAME           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+558d959
    

    Le 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 wide et comparer les valeurs dans la colonne INTERNAL-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 :

  1. Accédez à l'interface utilisateur Web de votre instance d' IBM Cloud Logs.

  2. 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.