Bereitstellen des Protokollierungsagent für Linux

Sie können den Protokollierungsagent einsetzen, um Infrastruktur- und Anwendungsprotokolle von Linux wie RHEL8, RHEL9, Debian und Ubuntu zu sammeln und an eine IBM Cloud Logs weiterzuleiten. Weitere Informationen zu unterstützten Linux finden Sie unter Protokollierungsagent für nicht-gestartete Umgebungen.

Diese Anweisungen sind für Red Hat Linux Systeme, können aber auch für andere Linux RPM-basierte Server verwendet werden.

Führen Sie die folgenden Schritte aus, um einen Agenten in einer unterstützten Linux-Umgebung einzusetzen.

Definieren Sie die Authentifizierungsmethode für den Agenten

Wählen Sie die Art der Identität und die Authentifizierungsmethode für den Agenten. Erstellen Sie dann ein vertrauenswürdiges Profil oder einen API-Schlüssel. Die Rolle, die für das Senden von Protokollen an IBM Cloud Logs erforderlich ist, ist Sender.

Sie können eine Dienst-ID oder ein vertrauenswürdiges Profil als Identität verwenden, die vom Agenten zur Authentifizierung beim Dienst IBM® Cloud Logs verwendet wird. Weitere Informationen finden Sie unter Erteilen von IAM-Berechtigungen für die Ingestion.

Wählen Sie eine der folgenden Optionen aus:

Option 1: Authentifizierung mit einem vertrauenswürdigen Profil

Erstellen Sie ein vertrauenswürdiges Profil. Weitere Informationen finden Sie unter Erzeugen eines vertrauenswürdigen Profils für die Aufnahme.

Option 2: Authentifizierung mit einem Dienst-ID-API-Schlüssel

Generieren Sie einen API-Schlüssel für die Dienst-ID-Authentifizierung. Weitere Informationen finden Sie unter Generieren eines API-Schlüssels für die Aufnahme.

Laden Sie die erforderlichen RPM- oder DEB-Pakete herunter

Führen Sie die folgenden Schritte aus:

  1. Laden Sie die erforderlichen RPM- oder DEB-Pakete herunter.

    Informationen zur aktuellen Version des Protokollierungsagent finden Sie in den Versionshinweisen des Agenten.

  2. Überprüfen Sie die Prüfsumme, indem Sie den folgenden Befehl ausführen:

    sha256sum -c <sha256_filename>
    

    Dabei ist <sha256_filename> der Dateiname der heruntergeladenen *.sha256 Datei.

  3. Wenn Sie die neueste Version des Agenten installieren, ist die Datei post-config.sh Teil des RPM- oder DEB-Pakets und kann unter /opt/fluent-bit/bin/post-config.sh gefunden werden. Wenn Sie eine frühere Version als 1.6.2 verwenden, müssen Sie die Datei post-config.sh mit diesem Schritt herunterladen.

    Dieser Schritt ist nur erforderlich, wenn Sie die Website Protokollierungsagent 1.6.1 oder eine frühere Version verwenden. Sie gilt nicht für die Protokollierungsagent 1.6.2 oder nachfolgende Versionen.

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

Einrichten und Bereitstellen der Protokollierungsagent

Führen Sie die folgenden Schritte aus:

  1. Melden Sie sich bei Ihrer Linux Umgebung an.

  2. Installieren Sie den Agenten.

    • Für RHEL laufen:

      rpm -ivh <rpm_filename>
      
    • Für Debian und Ubuntu laufen:

      dpkg -i <deb_filename>
      

    Dabei ist <rpm_filename> oder <deb_filename> der Name der heruntergeladenen *.rpm oder *.deb Datei.

  3. Führen Sie das Konfigurationsscript aus.

    /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>]
    

    Wo

    -t <target_path>

    Geben Sie den Pfad zum Senden von Daten an eine IBM Cloud Logs-Instanz an. Wenn keine Angaben gemacht werden, ist der Wert standardmäßig /logs/v1/singles.

    -a <auth_mode>

    Geben Sie IAMAPIKey oder VSITrustedProfile an.

    -k <iam_api_key>

    Geben Sie den Cloud Identity and Access Management API-Schlüssel an (erforderlich für den Modus IAMAPIKey). Befolgen Sie die Anweisungen unter Generierung eines API-Schlüssels.

    Weitere Informationen über Cloud Identity and Access Management API-Schlüssel finden Sie unter Verwaltung von API-Schlüsseln.

    -d <trusted_profile_id>

    Geben Sie die vertrauenswürdige Profil-ID an (erforderlich für den Modus " VSITrustedProfile ). Wenn Sie vertrauenswürdige Profile verwenden, setzen Sie diese auf die ID, die unter Einrichten von Berechtigungen für die Aufnahme konfiguriert wurde. Sie müssen die Instanz mit aktiviertem Metadatendienst erstellen und das vertrauenswürdige Profil mit Ihrer Instanz verknüpfen, indem Sie beim Erstellen die ID angeben. Weitere Informationen finden Sie unter Erstellen von virtuellen Serverinstanzen.

    Weitere Informationen zu vertrauenswürdigen Profilen finden Sie unter Erstellen eines vertrauenswürdigen Profils.

    --send-directly-to-icl Abgelehnt

    Setzen Sie diesen Parameter, um die Protokolle direkt an IBM Cloud Logs zu senden.

    -h <target_host>

    Der Host für die IBM Cloud Logs Ingestion, zu finden im Endpoints Abschnitt Ihrer IBM Cloud Logs Instanz Overview. Verwenden Sie den Ingress-Endpunkt. Für weitere Informationen siehe Eingangsendpunkte

    -i <IAM_environment>

    Gibt an, ob ein öffentlicher oder privater Endpunkt für die IAM-Authentifizierung verwendet wird. Production gibt an, dass der öffentliche Endpunkt verwendet werden soll. PrivateProduction gibt an, dass der private Endpunkt verwendet werden soll. Production ist der Standardwert.

    Wenn Ihr System keinen Zugang zum öffentlichen Internet hat, müssen Sie " PrivateProduction verwenden, um den privaten Endpunkt zu nutzen.

    -p <target_port>

    Verwenden Sie 443, um Protokolle direkt an IBM Cloud Logs zu senden.

    -s <vsi_secure_access_enabled>

    (Optional) Setzen Sie dies auf true, wenn Sie den sicheren Zugriff in Ihrem VSI aktiviert haben. Sie ist standardmäßig auf false eingestellt. Zum Beispiel -s true.

    --application-name <name>

    Der Anwendungsname definiert die Umgebung, die Protokolle erstellt und an IBM Cloud Logs sendet. Wenn keine Angaben gemacht werden, ist der Wert standardmäßig ${HOSTNAME}.

    --subsystem-name <name>

    Der Name des Subsystems ist der Dienst oder die Anwendung, die Protokolle erstellt und an IBM Cloud Logs sendet. Wenn keine Angaben gemacht werden, ist der Wert standardmäßig not-found.

    Führen Sie das Skript aus, um die Konfiguration mit Ihren Parameteränderungen zu aktualisieren.

Protokollierungsagent standardkonfiguration

Protokollierungsagent wird mit einer Standardkonfiguration geliefert, die eine vordefinierte Eingangsquelle und Filter enthält. Dieses Standard-Setup ist so konfiguriert, dass es Protokolle von gängigen Speicherorten sammelt und sie mit grundlegenden Metadaten anreichert.

Standard-Eingangsquelle

Protokollierungsagent ist vorkonfiguriert, um Protokolldateien im Verzeichnis /var/log/ und seinen Unterverzeichnissen zu überwachen. Nachfolgend finden Sie ein Beispiel für die Standardeinstellung 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

Standardfilter

Die Standardkonfiguration umfasst zwei Filter, die Protokolldatensätze mit Metadaten anreichern und zur leichteren Verarbeitung organisieren:

  • Filter modifizieren: Fügt Metadatenfelder wie Subsystemname, Anwendungsname, Hostname und Plattform hinzu.

  • Nest-Filter: Gruppiert Metadatenfelder unter einem einzigen meta Schlüssel.

Nachfolgend finden Sie ein Beispiel für die Standardeinstellung 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.

Protokollierungsagent konfigurationsanpassung

Diese Standardeinstellungen bilden die Grundlage für die Protokollerfassung und -anreicherung. Um den Agenten an Ihre Bedürfnisse anzupassen, können Sie die Dateien inputs.conf, filters.conf und outputs.conf im Verzeichnis /etc/fluent-bit/ ändern.

Zusätzliche Metadatenfelder hinzufügen

Sie können zusätzliche Metadatenfelder zu den weitergeleiteten Protokollen hinzufügen.

Führen Sie die folgenden Schritte aus:

  1. Bearbeiten Sie die Datei fluent-bit.conf im Ordner /etc/fluent-bit/.

  2. Fügen Sie Ihre benutzerdefinierten Metadaten mit dieser Struktur hinzu: ' 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
    

    Wo

    • <meta.key_name> ist der Name des hinzuzufügenden Metadatenfeldes (z. B. " meta.env) und " <your_custom_value> ist der Wert, der dem Feld zugewiesen werden soll (z. B. der Name Ihrer Umgebung).

    Wenn Sie z. B. region als Metadaten oder die Version als neues Feld hinzufügen möchten, würde die Konfiguration in etwa so aussehen:

    [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. Speichern Sie die Konfigurationsdatei.

  4. Starten Sie den Agenten neu, um die Änderungen zu übernehmen.

    systemctl daemon-reload && systemctl restart fluent-bit
    

Dateien einbeziehen oder ausschließen

Sie müssen die Protokolldateien konfigurieren, die der Protokollierungsagent überwacht.

Führen Sie die folgenden Schritte aus:

  1. Bearbeiten Sie die Datei fluent-bit.conf im Ordner /etc/fluent-bit/.

  2. Ändern Sie den Abschnitt INPUT.

    Geben Sie den Pfad mit den Verzeichnissen und Dateien an, die Sie überwachen möchten.

    Geben Sie in den Exclude_Path die Verzeichnisse und Dateien ein, die Sie von der Überwachung ausschließen möchten.

    [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. Ändern Sie den Abschnitt SERVICE.

    Legen Sie storage.path auf einen Speicherort im Dateisystem, um Streams und Daten zu speichern.

  4. Speichern Sie die Konfigurationsdatei.

  5. Starten Sie den Agenten neu, um die Änderungen zu übernehmen.

    systemctl daemon-reload && systemctl restart fluent-bit
    

Überprüfen Sie, ob die Protokolle an Ihr Ziel übermittelt werden

Führen Sie die folgenden Schritte aus:

  1. Gehen Sie zur Web-UI für Ihre IBM Cloud LogsInstanz..

  2. Wenn Ihr Agent korrekt konfiguriert ist, können Sie die Protokolle über die Standard-Dashboard-Ansicht einsehen.

    Wenn Sie z. B. den applicationName auf den Hostnamen in Ihrem Agenten setzen, können Sie den Filter Anwendungsname in einer Ansicht auf den Namen Ihres Hosts setzen.

Agent aktualisieren

Sie können den Agenten aktualisieren, indem Sie die gewünschten Agentenpakete herunterladen und den entsprechenden Befehl für Ihre Umgebung ausführen. Informationen über die aktuelle Version von Protokollierungsagent finden Sie in den Versionshinweisen des Agenten.

  • Für RHEL laufen:

    rpm -Uvh <rpm_filename>
    
  • Für Debian und Ubuntu laufen:

    dpkg -i <deb_filename>
    

Dabei ist <rpm_filename> oder <deb_filename> der Name der heruntergeladenen *.rpm oder *.deb Datei.

Bei einer Neuinstallation oder einem Upgrade des Agenten bleiben Ihre bestehenden Konfigurationsdateien unverändert.

Starten Sie den Dienst nach der Aktualisierung neu:

systemctl daemon-reload && systemctl restart fluent-bit

Agenten deinstallieren

Sie können einen installierten Agenten entfernen, indem Sie den entsprechenden Befehl in einem Terminal als sudo-Benutzer ausführen.

  • Für RHEL, CentOS, und Fedora Linux laufen:

    sudo yum erase draios-agent
    
  • Für Debian und Ubuntu laufen:

    sudo apt-get remove draios-agent