Déployer l'Agent de journalisation pour Linux

Vous pouvez déployer le Agent de journalisation pour collecter et acheminer les journaux d'infrastructure et d'application des environnements Linux tels que RHEL8, RHEL9, Debian et Ubuntu vers une instance IBM Cloud Logs Pour plus d'informations sur les environnements Linux pris en charge, voir Agent de journalisation pour les environnements non démarrés.

Ces instructions concernent les systèmes Red Hat Linux mais peuvent être utilisées pour d'autres serveurs basés sur Linux RPM.

Effectuez les étapes suivantes pour déployer un agent dans un environnement Linux pris en charge.

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

Télécharger les paquets RPM ou DEB nécessaires

Procédez comme suit :

  1. Téléchargez les paquets RPM ou DEB nécessaires.

    Pour plus d'informations sur la version actuelle de Agent de journalisation, consultez les notes de mise à jour de l'agent.

  2. Validez la somme de contrôle en exécutant la commande suivante :

    sha256sum -c <sha256_filename>
    

    <sha256_filename> est le nom du fichier de téléchargement *.sha256.

  3. Si vous installez la dernière version de l'agent, le fichier post-config.sh fait partie du paquetage RPM ou DEB et se trouve à l'adresse /opt/fluent-bit/bin/post-config.sh. Si vous utilisez une version antérieure à 1.6.2, vous devez télécharger le fichier post-config.sh en suivant cette étape.

    Cette étape n'est nécessaire que si vous utilisez le site Agent de journalisation 1.6.1 ou une version antérieure. Il ne s'applique pas au site Agent de journalisation 1.6.2 ni aux versions ultérieures.

    wget https://logs-router-agent-config.s3.us.cloud-object-storage.appdomain.cloud/post-config.sh
    
    chmod +x post-config.sh
    

Mettre en place et déployer la configuration Agent de journalisation

Procédez comme suit :

  1. Connectez-vous à votre environnement Linux.

  2. Installez l'agent.

    • Pour l'exécution de RHEL :

      rpm -ivh <rpm_filename>
      
    • Pour Debian et Ubuntu exécuter :

      dpkg -i <deb_filename>
      

    <rpm_filename> ou <deb_filename> est le nom du fichier téléchargé *.rpm ou *.deb.

  3. Exécutez le script de configuration.

    /opt/fluent-bit/bin/post-config.sh -h <target_host> -p <target_port> [-t <target_path>] -a <auth_mode> -k <iam_api_key> [-s <vsi_secure_access_enabled>] [-i <IAM_environment>] [--subsystem-name <name>] [--application-name <name>]
    

    -t <target_path>

    Spécifiez le chemin d'accès pour envoyer des données à une instance IBM Cloud Logs. Si elle n'est pas fournie, la valeur par défaut est /logs/v1/singles.

    -a <auth_mode>

    Spécifiez IAMAPIKey ou VSITrustedProfile.

    -k <iam_api_key>

    Spécifiez la Cloud Identity and Access Management clé API (requise pour le mode IAMAPIKey). Veillez à suivre les instructions données dans Générer une clé API.

    Pour plus d'informations sur les clés API, voir Gestion des clés API.

    -d <trusted_profile_id>

    Indiquez l'ID du profil de confiance (obligatoire pour le mode " VSITrustedProfile ). Lors de l'utilisation de profils de confiance, l'ID est celle configurée dans la section Configuration des autorisations pour l'ingestion. Vous devez créer l'instance avec le service de métadonnées activé et lier le profil de confiance à votre instance en spécifiant l'ID lors de la création. Pour plus d'informations, voir Création d'instances de serveurs virtuels.

    Pour plus d'informations sur les profils de confiance, voir Création d'un profil de confiance.

    --send-directly-to-icl Déclassé

    Ce paramètre permet d'envoyer les journaux directement à IBM Cloud Logs.

    -h <target_host>

    L'hôte pour l'ingestion IBM Cloud Logs, trouvé dans la section Endpoints de votre IBM Cloud Logs instance Overview. Utiliser le point de terminaison d'entrée. Pour plus d'informations, voir Points d'entrée

    -i <IAM_environment>

    Indique si un point de terminaison public ou privé est utilisé pour l'authentification IAM. Production indique qu'il faut utiliser le point de terminaison public. PrivateProduction ' indique qu'il faut utiliser le point de terminaison privé. Production est la valeur par défaut.

    Si votre système n'a pas accès à l'internet public, vous devez utiliser " PrivateProduction pour utiliser le point de terminaison privé.

    -p <target_port>

    Utilisez 443 pour envoyer les journaux directement à IBM Cloud Logs.

    -s <vsi_secure_access_enabled>

    (Facultatif) Définissez ce paramètre sur true si l'accès sécurisé est activé dans votre ISV. Il sera réglé par défaut sur false. Par exemple, -s true.

    --application-name <name>

    Le nom de l'application définit l'environnement qui produit et envoie les journaux à IBM Cloud Logs. Si elle n'est pas fournie, la valeur par défaut est ${HOSTNAME}.

    --subsystem-name <name>

    Le nom du sous-système correspond au service ou à l'application qui produit et envoie les journaux à IBM Cloud Logs. Si elle n'est pas fournie, la valeur par défaut est not-found.

    Exécutez le script pour mettre à jour la configuration en fonction des modifications apportées aux paramètres.

Agent de journalisation configuration par défaut

Agent de journalisation est livré avec une configuration par défaut qui comprend une source d'entrée et des filtres prédéfinis. Cette configuration par défaut permet de collecter les journaux à partir d'emplacements communs et de les enrichir de métadonnées de base.

Source d'entrée par défaut

Agent de journalisation est préconfiguré pour surveiller les fichiers journaux dans le répertoire /var/log/ et ses sous-répertoires. Voici un exemple de la valeur par défaut inputs.conf:

[INPUT]
  Name              tail
  Tag               host.*
  Path              /var/log/**/*.log
  Path_Key          file
  Exclude_Path      /var/log/at/**
  DB                /var/lib/fluent-bit/fluent-bit.DB
  Buffer_Chunk_Size 32KB
  Buffer_Max_Size   256KB
  Mem_Buf_Limit     30MB
  Skip_Long_Lines   On
  Refresh_Interval  10
  storage.type      filesystem
  storage.pause_on_chunks_overlimit on

Filtres par défaut

La configuration par défaut comprend deux filtres qui enrichissent les enregistrements de métadonnées et les organisent pour en faciliter le traitement :

  • Modifier le filtre: Ajoute des champs de métadonnées tels que le nom du sous-système, le nom de l'application, le nom d'hôte et la plate-forme.

  • Filtre de nidification: Regroupe les champs de métadonnées sous une seule clé meta.

Voici un exemple de la valeur par défaut filters.conf:

[FILTER]
  Name modify
  Match *
  Add subsystemName    ${SUBSYSTEM_NAME}
  Add applicationName  ${APPLICATION_NAME}
  Add meta.hostname    ${HOSTNAME}
  Add meta.environment prod   # Sample values: prod, staging, dev, qa
  Add meta.platform    linux

[FILTER]
  Name nest
  Match *
  Operation nest
  Wildcard meta.*
  Nest_under meta
  Remove_prefix meta.

Agent de journalisation configuration personnalisation

Ces valeurs par défaut constituent une base pour la collecte et l'enrichissement des journaux. Pour configurer l'agent selon vos besoins, vous pouvez modifier les fichiers inputs.conf, filters.conf, et outputs.conf situés dans le répertoire /etc/fluent-bit/.

Ajouter des champs de métadonnées supplémentaires

Vous pouvez ajouter des champs de métadonnées supplémentaires aux journaux acheminés.

Procédez comme suit :

  1. Modifiez le fichier fluent-bit.conf dans le dossier /etc/fluent-bit/.

  2. Ajoutez vos métadonnées personnalisées en utilisant la structure suivante : " Add <meta.key_name> <your_custom_value>

    [FILTER]
      Name modify
      Match *
      Add subsystemName    ${SUBSYSTEM_NAME}
      Add applicationName  ${APPLICATION_NAME}
      Add meta.hostname    ${HOSTNAME}
      Add meta.env         prod   # Sample values: prod, staging, dev, qa
      Add meta.platform    linux
    

    • <meta.key_name> est le nom du champ de métadonnées à ajouter (par exemple, " meta.env) et " <your_custom_value> est la valeur à attribuer au champ (par exemple, le nom de votre environnement).

    Par exemple, si vous souhaitez ajouter region en tant que métadonnées ou la version en tant que nouveau champ, la configuration sera la suivante :

    [FILTER]
      Name modify
      Match *
      Add subsystemName    ${SUBSYSTEM_NAME}
      Add applicationName  ${APPLICATION_NAME}
      Add meta.hostname    ${HOSTNAME}
      Add meta.env         prod
      Add meta.platform    linux
      Add meta.region      us-east
      Add version          my-version
    
  3. Sauvegardez le fichier de configuration.

  4. Redémarrez l'agent pour appliquer les modifications.

    systemctl daemon-reload && systemctl restart fluent-bit
    

Inclure ou exclure des fichiers

Vous devez configurer les fichiers journaux que le Agent de journalisation surveille.

Procédez comme suit :

  1. Modifiez le fichier fluent-bit.conf dans le dossier /etc/fluent-bit/.

  2. Modifier la section INPUT.

    Définissez le chemin d'accès avec les répertoires et les fichiers que vous souhaitez surveiller.

    Définissez le chemin d'accès Exclude_Path avec les répertoires et les fichiers que vous souhaitez exclure de la surveillance.

    [INPUT]
      Name              tail
      Tag               *
      Path              /var/log/*.log
      Path_Key          file
      Exclude_Path      /var/log/audit.log
      DB                /var/lib/fluent-bit/fluent-bit.DB
      Buffer_Chunk_Size 32KB
      Buffer_Max_Size   256KB
      Skip_Long_Lines   On
      Refresh_Interval  10
      storage.type      filesystem
      storage.pause_on_chunks_overlimit on
    
  3. Modifier la section SERVICE.

    Définissez le storage.path à un emplacement du système de fichiers pour stocker les flux et les données.

  4. Sauvegardez le fichier de configuration.

  5. Redémarrez l'agent pour appliquer les modifications.

    systemctl daemon-reload && systemctl restart fluent-bit
    

Vérifier que les journaux sont livrés à votre destination cible

Procédez comme suit :

  1. Accédez à l'interface web de votre instance IBM Cloud Logs..

  2. Lorsque votre agent est correctement configuré, vous pouvez consulter les journaux dans la vue par défaut du tableau de bord.

    Par exemple, si vous définissez le nom de l applicationName comme étant le nom de l'hôte dans votre agent, vous pouvez définir le filtre du nom de l'application dans une vue comme étant le nom de votre hôte.

Mise à jour de l'agent

Vous pouvez mettre à jour l'agent en téléchargeant les paquets d'agent souhaités et en exécutant la commande appropriée pour votre environnement. Pour plus d'informations sur la version actuelle de Agent de journalisation, consultez les notes de mise à jour de l'agent.

  • Pour l'exécution de RHEL :

    rpm -Uvh <rpm_filename>
    
  • Pour Debian et Ubuntu exécuter :

    dpkg -i <deb_filename>
    

<rpm_filename> ou <deb_filename> est le nom du fichier téléchargé *.rpm ou *.deb.

Lors de la réinstallation ou de la mise à jour de l'agent, les fichiers de configuration existants restent inchangés.

Redémarrer le service après la mise à jour :

systemctl daemon-reload && systemctl restart fluent-bit

Désinstallation de l'agent

Vous pouvez supprimer un agent installé en exécutant la commande appropriée à partir d'un terminal en tant qu'utilisateur sudo.

  • Pour RHEL, CentOS, et Fedora Linux s'exécutent :

    sudo yum erase draios-agent
    
  • Pour Debian et Ubuntu exécuter :

    sudo apt-get remove draios-agent