Informazioni su come configurare l'inoltro dei registri del piano di controllo del Supervisore a sistemi di monitoraggio esterni, come Grafana Loki o Elastic Search, utilizzando Fluent Bit.

I registri del piano di controllo del Supervisore vengono inoltrati automaticamente al server syslog configurato per vCenter Server Appliance utilizzando Fluent Bit. Fluent Bit è un processore e un server di inoltro di metriche e registrazione leggero open source che fornisce configurazioni per supportare vari tipi di dati di registro, filtri e miglioramenti dei tag di registro.

Durante l'attivazione o l'aggiornamento del Supervisore, i registri del bootstrap vengono comunque inoltrati da rsyslog ai server syslog configurati per vCenter Server Appliance. Una volta che le macchine virtuali del piano di controllo del Supervisore sono in esecuzione, Fluent Bit diventa il server di inoltro predefinito per i registri del piano di controllo del Supervisore.

Un amministratore di vSphere può utilizzare Fluent Bit per:

  • Inoltrare i registri del piano di controllo del Supervisore e i registri del journal di sistema alle principali piattaforme di monitoraggio dei registri esterne come Loki, Elastic Search, Grafana e altre piattaforme supportate da Fluent Bit.

  • Aggiornare o reimpostare la configurazione di inoltro dei registri per il piano di controllo del Supervisore utilizzando l'API k8s.
Fluent Bit viene eseguito come DeamonSet nei nodi del piano di controllo del Supervisore. Espone la mappa di configurazione fluentbit-config-custom nello spazio dei nomi vmware-system-logging che gli amministratori di vSphere possono modificare per configurare l'inoltro dei registri alle piattaforme esterne definendo server dei registri.
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

Personalizzazione dell'inoltro dei registri di Fluent Bit

Eseguire i passaggi per personalizzare la configurazione dell'inoltro dei registri di Fluent Bit:

  1. Accedere al piano di controllo del Supervisore come amministratore di vCenter Single Sign-On.
    > kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected]
    > kubectl config use-context <supervisor-cluster-vip>
  2. Aggiornare o aggiungere un output syslog nella sezione outputs-custom.conf della mappa di configurazione fluentbit-config-custom, che inoltra tutti i registri di sistema della macchina virtuale del piano di controllo a un server esterno.
    [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. Applicare le modifiche alla mappa di configurazione fluentbit-config-custom.
    > 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. Monitorare il pod di Fluent Bit per applicare automaticamente le modifiche della configurazione ed eseguire una query relativa ai registri del Supervisore nel server syslog. Se il DaemonSet Fluent Bit causa un errore dopo il ricaricamento della configurazione aggiornata, riparare o reimpostare la configurazione nella mappa di configurazione fluentbit-config-custom per assicurarsi che il DaemonSet Fluent Bit sia integro.

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

Inoltro dei registri di controllo del server dell'API Kubernetes a un server Grafana Loki

Per configurare l'inoltro dei registri a un server Grafana Loki esterno, eseguire i passaggi seguenti:

  1. Accedere al piano di controllo del Supervisore come amministratore di vCenter Single Sign-On.
    > kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected]
    > kubectl config use-context <supervisor-cluster-vip>
  2. Aggiornare o aggiungere un output di Loki nella sezione outputs-custom.conf nella mappa di configurazione fluentbit-config-custom, che inoltra tutti i registri di sistema della macchina virtuale del piano di controllo al server dei registri Loki.
    [OUTPUT]
            Name loki
            Alias system_output_loki
            Match system*
            Host <loki-server-host>
            Port <loki-server-port>
            Labels $hostname,$appname,$filename,$procid,$labels
  3. Applicare le modifiche alla mappa di configurazione fluentbit-config-custom.
    > 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. Monitorare il pod di Fluent Bit per applicare automaticamente le modifiche della configurazione ed eseguire una query relativa ai registri del Supervisore nel server syslog. Se il DaemonSet Fluent Bit causa un errore dopo il ricaricamento della configurazione aggiornata, riparare o reimpostare la configurazione nella mappa di configurazione fluentbit-config-custom per assicurarsi che il DaemonSet Fluent Bit sia integro.

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

Inoltro dei registri a Elastic Search

Eseguire i passaggi per configurare l'inoltro dei registri a un server Elastic Search esterno:
  1. Accedere al piano di controllo del Supervisore come amministratore di vCenter Single Sign-On.
    > kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected]
    > kubectl config use-context <supervisor-cluster-vip>
  2. Aggiornare o aggiungere un output di Elastic Search nella sezione outputs-custom.conf nella mappa di configurazione fluentbit-config-custom, che inoltra tutti i registri di sistema della macchina virtuale del piano di controllo al server dei registri ES.
    [OUTPUT]
           Name es
           Alias system_output_es
           Match system*
           Host <es-server-host>
           Port <es-server-port>
           Index supervisor
           Type controlplanevm
  3. Applicare le modifiche alla mappa di configurazione fluentbit-config-custom.
    > 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. Monitorare il pod di Fluent Bit per applicare automaticamente le modifiche della configurazione ed eseguire una query relativa ai registri del Supervisore nel server syslog.

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

Inoltro dei registri di controllo dell'API Kubernetes a un server syslog

Eseguire i passaggi per configurare l'inoltro dei registri di controllo dell'API Kubernetes a un server syslog esterno:

  1. Aggiungere l'input kubectl-plugin-vsphere e authproxy alla mappa di configurazione fluentbit-config:
    [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. Aggiungere il filtro kubectl-plugin-vsphere e authproxy alla mappa di configurazione fluentbit-config:
    [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. Aggiungere l'output kubectl-plugin-vsphere al server syslog per la mappa di configurazione fluentbit-config:
    [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. Includere i file precedenti nella mappa di configurazione fluentbit-config nello spazio dei nomi vmware-system-logging.
    > 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