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:
-
Erstellen Sie eine Datei namens
logs-values.yamlmit 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 -
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.versionDie Version des zu implementierenden Agenten finden Sie in Schritt 1 clusterNameDer Name des Clusters – dies wird das Tag kubernetes.cluster_namein alle Logzeilen einfügenenv.ingestionHostDer öffentliche oder private Endpunkt für den Zugriff auf die IBM Cloud Logs-Instanz zum Empfangen der Protokolle env.ingestionPortDer Eingangs-Endpunkt-Port
Öffentlicher Eingangs-Endpunkt =443
Privater Eingangs-Endpunkt (VPE) =443
Privater Eingangs-Endpunkt (CSE) =3443env.iamModeTrustedProfileoderIAMAPIKey, je nach der in Schritt 1 gewählten Authentifizierungsmethodeenv.trustedProfileIDWenn iamModeTrustedProfileist, geben Sie die Trusted Profile ID an, andernfalls ist dies nicht erforderlich (zum Beispiel:Profile-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).env.iamEnvironmentGibt den korrekten IAM-Authentifizierungsendpunkt vor. Gültige Werte sind Production,PrivateProductionoderCustom. Falls nicht angegeben, ist der StandardwertProduction.env.iamHostWenn iamEnvironmentCustomist, geben Sie den IAM-Host an (z. B.private.eu-de.iam.cloud.ibm.com), andernfalls ist dies nicht erforderlich.scc.createSenden 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:
-
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 loginverwendet 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.
-
Führen Sie einen Probelauf mit Helm durch, um die Ressourcen zu sehen, die durch das Diagramm Helm erstellt werden.
Wenn Sie
iamMode=TrustedProfileverwenden, 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-namespaceWenn Sie
iamMode=IAMAPIKeyverwenden, 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-secretDabei 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 Dateilogs-values.yamlbefindet.<APIKey-value>ist der IAM-API-Schlüssel, der mit der in Schritt 1 eingerichteten ServiceID verknüpft ist- Fügen Sie
--hide-secrethinzu, 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.yamlverfü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 -
Sobald die zu erstellenden Ressourcen verifiziert sind, führen Sie die Installation von Helm ohne die Option
--dry-runausWenn Sie
iamMode=TrustedProfileverwenden, 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-namespaceWenn Sie
iamMode=IAMAPIKeyverwenden, 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 Dateilogs-values.yamlbefindet.<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 namespaceSie 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-agentim Namensraumibm-observe.Führen Sie den folgenden Befehl aus, um die Details der Agent-Konfiguration anzuzeigen.
oc get configmap logs-agent -n ibm-observeSie können auch den folgenden Befehl verwenden:
oc describe configmaps logs-agent -n ibm-observe -
Ein Daemonset
logs-agentim Namensraumibm-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 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>Die Spalte
READYzeigt für alle Pods1/1mit einerSTATUSvonRunningan. 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 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+558d959Die 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 wideanhängen und stattdessen die Werte in der SpalteINTERNAL-IPvergleichen.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:
-
Gehen Sie zur Web-Benutzeroberfläche für Ihre IBM Cloud Logs-Instanz.
-
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.