Bereitstellung von Protokollierungsagent v1.6.x für OpenShift Cluster

Sie können ein Helm Diagramm verwenden, um die Protokollierungsagent v1.6.x bereitzustellen, um Infrastruktur- und Anwendungsprotokolle von einem OpenShift Cluster zu einer IBM Cloud Logs Instanz zu sammeln und weiterzuleiten.

Sie können auch die Terraform IBM Module (TIM) für Protokollierungsagent verwenden, um den Logs Agent auf unterstützten OpenShift Clustern einzusetzen und zu konfigurieren. Dieses Modul automatisiert die Helm-basierte Bereitstellung und die wichtigsten Konfigurationseinstellungen durch die Verwendung von Infrastructure as Code ( IaC ) Automation.

Führen Sie die folgenden Schritte aus, um einen Agenten auf einem OpenShift-Cluster bereitzustellen:

Vorbereitende Schritte

  • Stellen Sie sicher, dass Sie Zugriff auf einen Red Hat OpenShift on IBM Cloud ( OpenShift )-Cluster mit Berechtigungen zum Erstellen von Namensräumen und zum Bereitstellen des Agenten haben.

  • Installieren Sie die folgenden CLIs:

    • Die CLI IBM Cloud dient zur Anmeldung bei IBM Cloud und zur Verwaltung von IBM Cloud-Diensten, wie z. B. der Erstellung eines API-Schlüssels.

    • Die Openshift-Befehlszeilenschnittstelle zur Verwaltung des Clusters über die Befehlszeile. Weitere Informationen.

    • Die neueste Version der Version 3 Helm CLI

  • Lesen Sie mehr über die Protokollierungsagent.

  • Überprüfen Sie die verfügbaren Agentenversionen. Weitere Informationen finden Sie unter "Verfügbare Agentenversionen prüfen ". Beachten Sie, dass die Version des Helm-Diagramms mit der Version des Agenten übereinstimmt. Wenn Sie beispielsweise die Version 1.3.0 des Agenten verwenden, gibt es ein Helm-Diagramm mit der Version 1.3.0, das zu dieser Version gehört.

Schritt 1. Definieren Sie die Authentifizierungsmethode für den Agenten

Wählen Sie die Art der Identität und die Authentifizierungsmethode für den Agenten aus. 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 IBM® Cloud Logs-Dienst verwendet wird. Weitere Informationen finden Sie unter "Erteilen von IAM-Berechtigungen für die Aufnahme ".

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 "Erstellen eines vertrauenswürdigen Profils für die Aufnahme ".

Option 2: Authentifizierung mit einem API-Schlüssel für die Service-ID

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

Schritt 2. Konfigurieren der Helm-Diagrammwertedatei für die Protokollierungsagent

Führen Sie die folgenden Schritte aus:

  1. Erstellen Sie eine Datei namens logs-values.yaml mit folgendem Inhalt:

    Diese Datei enthält die Konfigurationen, die für Ihre Bereitstellung spezifisch sind.

    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. Aktualisieren Sie die Felder in der yaml-Datei mit Werten, die für Ihre Umgebung spezifisch sind.

    Helm tabelle der erforderlichen Parameter
    Feldname Beschreibung
    image.version Die Version des zu implementierenden Agenten finden Sie in Schritt 1
    clusterName Der Name des Clusters – dies wird das Tag kubernetes.cluster_name in alle Logzeilen einfügen
    env.ingestionHost Der öffentliche oder private Endpunkt für den Zugriff auf die IBM Cloud Logs-Instanz zum Empfangen der Protokolle
    env.ingestionPort Der Eingangs-Endpunkt-Port
    Öffentlicher Eingangs-Endpunkt = 443
    Privater Eingangs-Endpunkt (VPE) = 443
    Privater Eingangs-Endpunkt (CSE) = 3443
    env.iamMode TrustedProfile oder IAMAPIKey, je nach der in Schritt 1 gewählten Authentifizierungsmethode
    env.trustedProfileID Wenn iamMode TrustedProfile ist, geben Sie die Trusted Profile ID an, andernfalls ist dies nicht erforderlich (zum Beispiel: Profile-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ).
    env.iamEnvironment Gibt den korrekten IAM-Authentifizierungsendpunkt vor. Gültige Werte sind Production, PrivateProduction oder Custom. Falls nicht angegeben, ist der Standardwert Production.
    env.iamHost Wenn iamEnvironment Custom ist, geben Sie den IAM-Host an (z. B. private.eu-de.iam.cloud.ibm.com), andernfalls ist dies nicht erforderlich.
    scc.create Senden Sie eine E-Mail an true, um die Sicherheitsbeschränkungen in Openshift zu erstellen

Schritt 3. Installieren Sie die Karte Helm

Wenn Sie iamMode als IAMAPIKey verwenden, muss der Apikey in einem Kubernetes Geheimnis mit dem Namen logs-agent und dem Schlüsselnamen IAM_API_KEY vorhanden sein. Das Geheimnis kann mit Hilfe der Helm Karte erstellt werden, indem die Option --set secret.iamAPIKey=<your iamAPIKey> bei der Installation des Steuergeräts angegeben wird. Wenn das Geheimnis manuell erstellt wurde oder wenn Sie iamMode=TrustedProfile verwenden, dann fügen Sie diese Option nicht hinzu.

Führen Sie die folgenden Schritte aus:

  1. Melden Sie sich am Cluster an.

    Red Hat OpenShift on IBM Cloud ist in IBM Cloud Identity and Access Management (IAM) integriert. Mit IAM können Sie Benutzer und Services authentifizieren, indem Sie ihre IAM-Identitäten verwenden und Aktionen mit Zugriffsrollen und -richtlinien autorisieren. Wenn Sie sich als Benutzer über die Konsole Red Hat OpenShift authentifizieren, wird Ihre IAM-Identität verwendet, um ein Red Hat OpenShift Login-Token zu generieren, mit dem Sie sich bei der Befehlszeile anmelden können. Sie können die Anmeldung in Ihrem Cluster automatisieren, indem Sie einen IAM-API-Schlüssel für die IAM-Service-ID erstellen, die für den Befehl oc login verwendet werden soll. Weitere Informationen finden Sie unter Zugriff auf Red Hat OpenShift-Cluster.

    Führen Sie beispielsweise die Schritte unter "Verwenden einer Service-ID zum Anmelden bei Clustern " aus, um sich bei Ihrem Cluster anzumelden.

  2. Führen Sie einen Probelauf mit Helm durch, um die Ressourcen zu sehen, die durch das Diagramm Helm erstellt werden.

    Wenn Sie iamMode = TrustedProfile verwenden, lautet der vollständige Befehl:

    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
    

    Wenn Sie iamMode = IAMAPIKey verwenden, lautet der vollständige Befehl:

    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
    

    Dabei gilt:

    • <install-name> ist der Name der Helm-Installation (logs-agent)
    • <chart-version> ist die Version der Ruderkarte. Die Diagrammversion von Helm sollte mit der Bildversion des Agenten übereinstimmen. Weitere Informationen finden Sie unter Helm chart versions.
    • <PATH> ist der Verzeichnispfad, in dem sich die Datei logs-values.yaml befindet.
    • <APIKey-value> ist der IAM-API-Schlüssel, der mit der in Schritt 1 eingerichteten ServiceID verknüpft ist
    • Fügen Sie --hide-secret hinzu, um den API-Schlüssel nach Ausführung des Befehls in den Ausgabedaten auszublenden.

    Wenn Sie den Inhalt der Steuerkarte vor Ort einsehen möchten, können Sie die Steuerkarte mit dem folgenden Befehl auf Ihren Computer herunterladen: helm pull oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version>. Die heruntergeladene tgz-Datei enthält die Inhalte der Tabelle.

    Sie können beispielsweise den folgenden Befehl in dem Verzeichnis ausführen, in dem die Datei logs-values.yaml verfügbar ist:

    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. Sobald die zu erstellenden Ressourcen verifiziert sind, führen Sie die Installation von Helm ohne die Option --dry-run aus

    Wenn Sie iamMode = TrustedProfile verwenden, lautet der vollständige Befehl:

    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
    

    Wenn Sie iamMode = IAMAPIKey verwenden, lautet der vollständige Befehl:

    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>
    

    Dabei gilt:

    • <install-name> ist der Name der Helm-Installation (logs-agent)
    • <chart-version> ist die Version der Ruderkarte. Die Diagrammversion von Helm sollte mit der Bildversion des Agenten übereinstimmen. Weitere Informationen finden Sie unter Helm chart versions.
    • <PATH> ist der Verzeichnispfad, in dem sich die Datei logs-values.yaml befindet.
    • <APIKey-value> ist der IAM-API-Schlüssel, der mit der in Schritt 1 eingerichteten ServiceID verknüpft ist

Schritt 4. Überprüfen Sie, ob der Agent erfolgreich bereitgestellt wurde

Wenn der Agent bereitgestellt wird, überprüfen Sie, ob die folgenden Ressourcen erstellt wurden:

  • Der Namespace ibm-observe.

    Führen Sie den folgenden Befehl aus, um die Namensräume im Cluster aufzulisten:

    oc get namespace
    

    Sie können auch den folgenden Befehl ausführen, um nach dem ibm-observe-Namensraum zu suchen:

    oc get namespace | grep ibm-observe
    
  • Eine Konfigurationskarte logs-agent im Namensraum ibm-observe.

    Führen Sie den folgenden Befehl aus, um die Details der Agent-Konfiguration anzuzeigen.

    oc get configmap logs-agent -n ibm-observe
    

    Sie können auch den folgenden Befehl verwenden:

    oc describe configmaps logs-agent -n ibm-observe
    
  • Ein Daemonset logs-agent im Namensraum ibm-observe.

    Führen Sie den folgenden Befehl aus, um den Daemonset anzuzeigen:

    oc get ds -n ibm-observe
    
  • Rufen Sie die Liste der Agenten-Pods mit dem folgenden Befehl ab:

    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>
    

    Die Spalte READY zeigt für alle Pods 1/1 mit einer STATUS von Running an. Vergewissern Sie sich, dass für jeden Knoten in Ihrem Cluster ein Agenten-Pod bereit ist.

    Um zu überprüfen, wie viele Mitarbeiter in Ihrem Cluster verfügbar sind, können Sie den folgenden Befehl ausführen:

    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
    

    Die Anzahl der Elemente in jeder dieser beiden Listen muss gleich sein, und Sie können die IP-Adressen in den Knotennamen mit den Werten in der Spalte " NODE " der Pod-Liste abgleichen.

    Wenn Ihre Knoten nicht nach ihrer IP benannt sind, können Sie die Option -o wide anhängen und stattdessen die Werte in der Spalte INTERNAL-IP vergleichen.

    Um die Protokolle eines Pods anzuzeigen, führen Sie oc logs <POD_NAME>> -n ibm-observe

Schritt 5. Überprüfen Sie, ob die Protokolle an Ihr Ziel geliefert werden

Führen Sie die folgenden Schritte aus:

  1. Gehen Sie zur Web-Benutzeroberfläche für Ihre IBM Cloud Logs-Instanz.

  2. Wenn Ihr Agent richtig konfiguriert ist, können Sie Protokolle über die Standard-Dashboard-Ansicht anzeigen. Die Protokollierungsagent-Tags protokollieren Datensätze mit einem Kubernetes-Objekt, das den Clusternamen enthält.

    kubernetes.cluster_name:<CLUSTER_NAME>
    

    Sie können die Abfrage kubernetes.cluster_name:<YOUR_CLUSTER_NAME> in Ihrer IBM Cloud Logs-Instanz ausführen, um nach Protokollen zu suchen, die von Ihrem Cluster generiert werden.