Erfahren Sie, wie Sie mit Fluent Bit die Weiterleitung der Protokolle der Supervisor-Control Plane an externe Überwachungssysteme wie Grafana Loki oder Elastic Search konfigurieren.

Protokolle der Supervisor-Control Plane werden mit Fluent Bit automatisch an den für die vCenter Server-Appliance konfigurierten Syslog-Server weitergeleitet. Fluent Bit ist ein leichtgewichtiger Open Source-Prozessor und -Forwarder für Protokolle und Metriken, der Konfigurationen zur Unterstützung verschiedener Protokolldatentypen, Filterung und Protokoll-Tag-Erweiterungen bereitstellt.

Während der Supervisor-Aktivierung oder einem -Upgrade werden Bootstrap-Protokolle weiterhin von rsyslog an die für die vCenter Server-Appliance konfigurierten Syslog-Server weitergeleitet. Sobald die VMs der Supervisor-Control Plane ausgeführt werden, wird Fluent Bit zur Standardprotokollweiterleitung für die Protokolle der Supervisor-Control Plane.

Als vSphere-Administrator können Sie Fluent Bit für Folgendes nutzen:

  • Weiterleiten der Protokolle und Systemjournalprotokolle der Supervisor-Control Plane an wichtige externe Protokollüberwachungsplattformen wie Loki, Elastic Search, Grafana und andere Plattformen, die von Fluent Bit unterstützt werden.

  • Aktualisieren oder Zurücksetzen der Konfiguration für die Protokollweiterleitung für die Supervisor-Control Plane über die k8s-API.
Fluent Bit wird als DeamonSet auf Knoten der Supervisor-Control Plane ausgeführt. Es stellt die ConfigMap fluentbit-config-custom unter dem Namespace vmware-system-logging bereit. Diese können vSphere-Administratoren bearbeiten, um die Protokollweiterleitung an externe Plattformen zu konfigurieren, indem sie Protokollserver definieren.
inputs-custom.conf: |
  [INPUT]
      Name              tail
      Alias             audit_apiserver_tail
      Tag               audit.apiserver.*
      Path              /var/log/vmware/audit/kube-apiserver.log
      DB                /var/log/vmware/fluentbit/flb_audit_apiserver.db
      Buffer_Max_Size   12MBb
      Mem_Buf_Limit     32MB
      Skip_Long_Lines   On
      Refresh_Interval  10
 
filters-custom.conf: |
  [FILTER]
      Name           record_modifier
      Alias          audit_apiserver_modifier
      Match          audit.apiserver.*
      Record         hostname ${NODE_NAME}
      Record         appname audit-kube-apiserver
      Record         filename kube-apiserver.log
 
outputs-custom.conf: |
  [OUTPUT]
     Name                 syslog
     Alias                audit_apiserver_output_syslog
     Match                audit.apiserver.*
     Host                 <syslog-server-host>
     Port                 <syslog-server-port>
     Mode                 tcp
     Syslog_Format        rfc5424
     Syslog_Message_key   log
     Syslog_Hostname_key  hostname
     Syslog_Appname_key   appname
     Syslog_Msgid_key     filename

Anpassen der Fluent Bit-Protokollweiterleitung

Führen Sie folgende Schritte aus, um die Konfiguration der Fluent Bit-Protokollweiterleitung anzupassen:

  1. Melden Sie sich bei der Supervisor-Control Plane als vCenter Single Sign-On-Administrator an.
    > kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected]
    > kubectl config use-context <supervisor-cluster-vip>
  2. Aktualisieren oder fügen Sie im Abschnitt outputs-custom.conf in der ConfigMap fluentbit-config-custom eine Syslog-Ausgabe hinzu, die alle Systemprotokolle der Control Plane-VM an einen externen Server weiterleitet.
    [OUTPUT]
         Name                 syslog
         Alias                syslog_system
         Match                system*
         Host                 <syslog-server-host>
         Port                 <syslog-server-port>
         Mode                 tcp
         Syslog_Format        rfc5424
         Syslog_Message_key   log
         Syslog_Hostname_key  hostname
         Syslog_Appname_key   appname
         Syslog_Msgid_key     filename
         # add the following if the mode is TLS
         Tls                  on
         Tls.verify           off
         Tls.ca_file          /etc/ssl/certs/vmca.pem
  3. Wenden Sie die Änderungen der ConfigMap fluentbit-config-custom an.
    > kubectl -n vmware-system-logging edit cm fluentbit-config-custom
     
    # use the below command if the change is stored in outputs-custom.conf file
    > kubectl -n vmware-system-logging create configmap fluentbit-config-custom --from-file=filters-custom.conf --from-file=inputs-custom.conf --from-file=outputs-custom.conf -o yaml --from-file=parsers-custom.conf --dry-run | kubectl replace -f -
    
  4. Überwachen Sie den Fluent Bit-Pod, um die Konfigurationsänderungen automatisch anzuwenden. Fragen Sie Supervisor-Protokolle auf dem Syslog-Server ab. Falls das Fluentbit-DaemonSet nach dem erneuten Laden der aktualisierten Konfiguration fehlerhaft ausgeführt wird, reparieren Sie die Konfiguration oder setzen Sie sie in der ConfigMap fluentbit-config-custom zurück, um sicherzustellen, dass das Fluentbit-DaemonSet fehlerfrei ist.

    > kubectl -n vmware-system-logging get pod
    > kubectl -n vmware-system-logging logs <fluentbit-pod-name>

Weiterleiten von Überwachungsprotokollen des Kubernetes-API-Servers an einen Grafana Loki-Server

Führen Sie folgende Schritte aus, um die Protokollweiterleitung an einen externen Grafana Loki-Server zu konfigurieren:

  1. Melden Sie sich bei der Supervisor-Control Plane als vCenter Single Sign-On-Administrator an.
    > kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected]
    > kubectl config use-context <supervisor-cluster-vip>
  2. Aktualisieren Sie eine Loki-Ausgabe im Abschnitt outputs-custom.conf in der ConfigMap fluentbit-config-custom bzw. fügen Sie eine Loki-Ausgabe hinzu. Dadurch werden alle Systemprotokolle der Control Plane-VM an den Loki-Protokollserver weitergeleitet.
    [OUTPUT]
            Name loki
            Alias system_output_loki
            Match system*
            Host <loki-server-host>
            Port <loki-server-port>
            Labels $hostname,$appname,$filename,$procid,$labels
  3. Wenden Sie die Änderungen der ConfigMap fluentbit-config-custom an.
    > kubectl -n vmware-system-logging edit cm fluentbit-config-custom
     
    # use the below command if the change is stored in outputs-custom.conf file
    > kubectl -n vmware-system-logging create configmap fluentbit-config-custom --from-file=filters-custom.conf --from-file=inputs-custom.conf --from-file=outputs-custom.conf -o yaml --from-file=parsers-custom.conf --dry-run | kubectl replace -f -
    
  4. Überwachen Sie den Fluent Bit-Pod, um die Konfigurationsänderungen automatisch anzuwenden. Fragen Sie Supervisor-Protokolle auf dem Syslog-Server ab. Falls das Fluentbit-DaemonSet nach dem erneuten Laden der aktualisierten Konfiguration fehlerhaft ausgeführt wird, reparieren Sie die Konfiguration oder setzen Sie sie in der ConfigMap fluentbit-config-custom zurück, um sicherzustellen, dass das Fluentbit-DaemonSet fehlerfrei ist.

    > kubectl -n vmware-system-logging get pod
    > kubectl -n vmware-system-logging logs <fluentbit-pod-name>

Weiterleiten von Protokollen an Elastic Search

Führen Sie folgende Schritte aus, um die Protokollweiterleitung an einen externen Elastic Search-Server zu konfigurieren:
  1. Melden Sie sich bei der Supervisor-Control Plane als vCenter Single Sign-On-Administrator an.
    > kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected]
    > kubectl config use-context <supervisor-cluster-vip>
  2. Aktualisieren Sie eine Elastic Search-Ausgabe im Abschnitt outputs-custom.conf in der ConfigMap fluentbit-config-custom bzw. fügen Sie eine Elastic Search-Ausgabe hinzu. Dadurch werden alle Systemprotokolle der Control Plane-VM an den Elastic Search-Protokollserver weitergeleitet.
    [OUTPUT]
           Name es
           Alias system_output_es
           Match system*
           Host <es-server-host>
           Port <es-server-port>
           Index supervisor
           Type controlplanevm
  3. Wenden Sie die Änderungen der ConfigMap fluentbit-config-custom an.
    > kubectl -n vmware-system-logging edit cm fluentbit-config-custom
     
    # use the below command if the change is stored in outputs-custom.conf file
    > kubectl -n vmware-system-logging create configmap fluentbit-config-custom --from-file=filters-custom.conf --from-file=inputs-custom.conf --from-file=outputs-custom.conf -o yaml --from-file=parsers-custom.conf --dry-run | kubectl replace -f -
    
  4. Überwachen Sie den Fluent Bit-Pod, um die Konfigurationsänderungen automatisch anzuwenden. Fragen Sie Supervisor-Protokolle auf dem Syslog-Server ab.

    > kubectl -n vmware-system-logging get pod
    > kubectl -n vmware-system-logging logs <fluentbit-pod-name>

Weiterleiten von API-Überwachungsprotokollen an einen Syslog-Server

Führen Sie folgende Schritte aus, um die Weiterleitung von Überwachungsprotokollen der Kubernetes-API an einen externen Syslog-Server zu konfigurieren:

  1. Fügen Sie die Eingaben kubectl-plugin-vsphere und authproxy zur ConfigMap fluentbit-config hinzu:
    [INPUT]
        Name              tail
        Tag               auth.kubectl-plugin.*
        Path              /var/log/containers/audit/kubectl-plugin-vsphere*.log
        DB                /var/log/vmware/fluentbit/flb_auth_kubectl-plugin.db
        Skip_Long_Lines   Off
        Refresh_Interval  10
     
    [INPUT]
        Name              tail
        Tag               auth.authproxy.*
        Path              /var/log/containers/audit/wcp-authproxy*.log
        DB                /var/log/vmware/fluentbit/flb_auth_authproxy.db
        Skip_Long_Lines   Off
        Refresh_Interval  10
  2. Fügen Sie die Filter kubectl-plugin-vsphere und authproxy zur ConfigMap fluentbit-config hinzu:
    [FILTER]
        Name           kubernetes
        Match          auth.*
        Kube_URL       https://localhost:6443
        Tls.verify     Off
        K8S-Logging.Parser On
        K8S-Logging.Exclude On
     
    [FILTER]
        Name           record_modifier
        Match          auth.*
        Operation      lift
        Nested_under   kubernetes
     
    [FILTER]
        Name           modify
        Match          auth.*
        Rename         container_name appname
        Rename         host hostname
        Rename         pod_name procid
    
  3. Fügen Sie die kubectl-plugin-vsphere für die Ausgabe an den Syslog-Server zur ConfigMap fluentbit-config hinzu:
    [OUTPUT]
        Name                 syslog
        Match                auth.*
        Host                 <syslog-server-host>
        Port                 <syslog-server-port>
        Mode                 tcp
        Syslog_Format        rfc5424
        Syslog_Message_key   log
        Syslog_Hostname_key  hostname
        Syslog_Appname_key   appname
        Syslog_Msgid_key     filename
  4. Fügen Sie die oben genannten Dateien in der ConfigMap fluentbit-config unter dem Namespace vmware-system-logging ein.
    > k -n vmware-system-logging edit cm fluentbit-config
    > k -n vmware-system-logging rollout restart ds fluentbit
    > k -n vmware-system-logging rollout status ds fluentbit