Consulte cómo configurar el reenvío de registros del plano de control de Supervisor a sistemas de supervisión externos, como Grafana Loki o Elastic Search, mediante Fluent Bit.

Los registros del plano de control de Supervisor se reenvían automáticamente al servidor syslog configurado en el dispositivo vCenter Server mediante Fluent Bit. Fluent Bit es un reenviador y procesador de métricas y registros ligero de código abierto que proporciona configuraciones para admitir varios tipos de datos de registro, filtros y mejoras de etiquetas de registro.

Durante la activación o la actualización de Supervisor, rsyslog sigue reenviando los registros de arranque a los servidores syslog que están configurados en el dispositivo vCenter Server. Una vez que las máquinas virtuales del plano de control de Supervisor están en funcionamiento, Fluent Bit se convierte en el reenviador de registros predeterminado para los registros del plano de control de Supervisor.

Como administrador de vSphere, puede utilizar Fluent Bit para lo siguiente:

  • Reenviar registros del plano de control y registros del sistema de Supervisor a las principales plataformas externas de supervisión de registros, como Loki, Elastic Search, Grafana y otras plataformas compatibles con Fluent Bit.

  • Actualizar o restablecer la configuración de reenvío de registros para el plano de control de Supervisor mediante la API de k8s.
Fluent Bit se ejecuta como un DeamonSet en los nodos del plano de control de Supervisor. Expone el ConfigMap fluentbit-config-custom en el espacio de nombres vmware-system-logging que los administradores de vSphere pueden editar para configurar el reenvío de registros a plataformas externas mediante la definición de servidores de registro.
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

Personalizar el reenvío de registros de Fluent Bit

Siga los pasos para personalizar la configuración de reenvío de registros de Fluent Bit:

  1. Inicie sesión en el plano de control de Supervisor como administrador de vCenter Single Sign-On.
    > kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected]
    > kubectl config use-context <supervisor-cluster-vip>
  2. Actualice o agregue una salida de syslog en la sección outputs-custom.conf de ConfigMap fluentbit-config-custom, que reenviará todos los registros del sistema de la máquina virtual del plano de control a un servidor externo.
    [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. Aplique los cambios al ConfigMap 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. Supervise el pod de Fluent Bit para aplicar automáticamente los cambios de configuración y consulte los registros de Supervisor en el servidor syslog. Si el DaemonSet de Fluentbit se ejecuta con un error después de actualizar la configuración, repare o restablezca la configuración en el ConfigMap fluentbit-config-custom para asegurarse de que el DaemonSet de Fluentbit esté en buen estado.

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

Reenviar registros de auditoría del servidor de API de Kubernetes a un servidor Grafana Loki

Siga los pasos para configurar el reenvío de registros a un servidor Grafana Loki externo:

  1. Inicie sesión en el plano de control de Supervisor como administrador de vCenter Single Sign-On.
    > kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected]
    > kubectl config use-context <supervisor-cluster-vip>
  2. Actualice o agregue un resultado de Loki en la sección outputs-custom.conf del ConfigMap fluentbit-config-custom, que reenviará todos los registros del sistema de la máquina virtual del plano de control al servidor de registros de 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. Aplique los cambios al ConfigMap 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. Supervise el pod de Fluent Bit para aplicar automáticamente los cambios de configuración y consulte los registros de Supervisor en el servidor syslog. Si el DaemonSet de Fluentbit se ejecuta con un error después de actualizar la configuración, repare o restablezca la configuración en el ConfigMap fluentbit-config-custom para asegurarse de que el DaemonSet de Fluentbit esté en buen estado.

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

Reenviar registros a Elastic Search

Siga los pasos para configurar el reenvío de registros a un servidor de Elastic Search externo:
  1. Inicie sesión en el plano de control de Supervisor como administrador de vCenter Single Sign-On.
    > kubectl vsphere login --server=<supervisor-cluster-vip> -u [email protected]
    > kubectl config use-context <supervisor-cluster-vip>
  2. Actualice o agregue un resultado de Elastic Search en la sección outputs-custom.conf del ConfigMap fluentbit-config-custom, que reenviará todos los registros del sistema de la máquina virtual del plano de control al servidor de registro ES.
    [OUTPUT]
           Name es
           Alias system_output_es
           Match system*
           Host <es-server-host>
           Port <es-server-port>
           Index supervisor
           Type controlplanevm
  3. Aplique los cambios al ConfigMap 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. Supervise el pod de Fluent Bit para aplicar automáticamente los cambios de configuración y consulte los registros de Supervisor en el servidor syslog.

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

Reenviar registros de auditoría de la API de Kubernetes a un servidor syslog

Siga los pasos para configurar el reenvío de registros de auditoría de la API de Kubernetes a un servidor syslog externo:

  1. Agregue kubectl-plugin-vsphere y authproxy en el ConfigMap 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. Agregue el filtro kubectl-plugin-vsphere y authproxy al ConfigMap 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. Agregue los resultados de kubectl-plugin-vsphere al servidor syslog al ConfigMap 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. Incluya los archivos anteriores en el ConfigMap fluentbit-config, en el espacio de nombres 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