O Fluent Bit é um processador e encaminhador de log rápido e leve que permite coletar dados e logs de aplicativos de diferentes fontes, unificá-los e enviá-los para vários destinos. Implante o Tanzu Package for Fluent Bit para coletar e encaminhar logs de cluster do TKG 2 para o destino de sua escolha.

Requisitos do pacote

Obedeça aos seguintes requisitos para implantar o Pacote Tanzu para Fluent Bit.

Componentes do Fluent Bit

O pacote Fluent Bit instala um contêiner Fluent Bit no cluster. Para obter mais informações sobre esse contêiner, consulte https://fluentbit.io/. O pacote extrai os contêineres do registro público VMware especificado no Repositório de Pacotes.
Contêiner Tipo de recurso Réplicas Descrição
Bit Fluente DaemonSet 6 Coletor de log, agregador, encaminhador

Implantar o pacote Fluent Bit

Instale o pacote Fluent Bit.

  1. Crie a especificação fluentbit.yaml.
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: fluentbit-sa
      namespace: tkg-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: fluentbit-role-binding
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
      - kind: ServiceAccount
        name: fluentbit-sa
        namespace: tkg-system
    ---
    apiVersion: packaging.carvel.dev/v1alpha1
    kind: PackageInstall
    metadata:
      name: fluentbit
      namespace: tkg-system
    spec:
      serviceAccountName: fluentbit-sa
      packageRef:
        refName: fluentbit.tanzu.vmware.com
        versionSelection:
          constraints: 1.20.2+vmware.1-tkg.1-rc.2
      values:
      - secretRef:
          name: fluentbit-data-values
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: fluentbit-data-values
      namespace: tkg-system
    stringData:
      values.yml: |
        ---
        fluentbit:
          pspNames: "vmware-system-restricted"
    
  2. Instale o pacote Fluent Bit.
    kubectl apply -f fluentbit.yaml

Configurar o pacote Fluent Bit

Os valores de configuração para são definidos em fluent-bit-data-values.yaml.
Tabela 1. Configurações do pacote Fluent Bit
Parâmetro Descrição Tipo Padrão
logging.namespace Namespace onde o Fluent Bit será implantado seqüência de caracteres tanzu-system-logging
logging.service_account_name Nome da conta de serviço do Fluent Bit seqüência de caracteres bit fluente
logging.cluster_role_name Nome da função de cluster que concede permissões get, watch e list para o bit fluente seqüência de caracteres leitura de bits fluente
logging.image.name Nome da imagem do Fluent Bit seqüência de caracteres bit fluente
logging.image.tag Tag de imagem Fluent Bit. Esse valor pode precisar ser atualizado se você estiver atualizando a versão. seqüência de caracteres v1.6.9_vmware.1
logging.image.repository Localização do repositório com a imagem Fluent Bit. O padrão é o registro público VMware. Altere esse valor se você estiver usando um repositório privado (por exemplo, ambiente air-gapped). seqüência de caracteres projects.registry.vmware.com/tkg
logging.image.pullPolicy Política de pull de imagem de bit fluente seqüência de caracteres IfNotPresent
logging.update_strategy Estratégia de atualização a ser usada ao atualizar o DaemonSet seqüência de caracteres RollingUpdate
tkg.cluster_name Nome do cluster Tanzu Kubernetes seqüência de caracteres Nulo (parâmetro obrigatório)
tkg.instance_name Nome definido pelo usuário da instância do TKG, compartilhado pelo Cluster Supervisor e todos os clusters Tanzu Kubernetes em uma implantação. Você pode usar qualquer nome relacionado à instalação. seqüência de caracteres Nulo (parâmetro obrigatório)
Observação: Esse campo é obrigatório, mas arbitrário. É um nome que aparece nos logs.
fluent_bit.log_level Nível de log a ser usado para o Fluent Bit seqüência de caracteres informações
fluent_bit.output_plugin Definir o back-end para o qual o Fluent Bit deve liberar as informações que ele coleta seqüência de caracteres Nulo (parâmetro obrigatório)
fluent_bit.elasticsearch.host Endereço IP ou nome de host da instância de destino do Elasticsearch seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é uma pesquisa elástica)
fluent_bit.elasticsearch.port Porta TCP da instância de destino do Elasticsearch inteiro Nulo (parâmetro obrigatório quando output_plugin é uma pesquisa elástica)
fluent_bit.elasticsearch.buffer_size Especifique o tamanho do buffer usado para ler a resposta do serviço Elasticsearch. Define como ilimitado se for False seqüência de caracteres Falso
fluent_bit.elasticsearch.tls Especificar a configuração padrão do TLS para Elasticsearch seqüência de caracteres Desligado
fluent_bit.kafka.broker_service_name Lista única ou múltipla de Kafka Brokers, por exemplo, 192.168.1.3:9092 seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é kafka)
fluent_bit.kafka.topic_name Entrada única ou lista de tópicos separados por (,) que o Fluent Bit usará para enviar mensagens para o Kafka seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é kafka)
fluent_bit.splunk.host Endereço IP ou nome de host do servidor Splunk de destino seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é splunk)
fluent_bit.splunk.port Porta TCP do Servidor Splunk de destino inteiro Nulo (parâmetro obrigatório quando output_plugin é splunk)
fluent_bit.splunk.token Especificar o token de autenticação para a interface do HTTP Event Collector seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é splunk)
fluent_bit.http.host Endereço IP ou nome de host do servidor HTTP de destino seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é http)
fluent_bit.http.port Porta TCP do servidor HTTP de destino inteiro Nulo (parâmetro obrigatório quando output_plugin é http)
fluent_bit.http.mode Especificar um URI HTTP para o servidor Web de destino seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é http)
fluent_bit.http.header_key_value Par chave/valor do cabeçalho HTTP. Vários cabeçalhos podem ser definidos seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é http)
fluent_bit.http.format Especificar o formato de dados a ser usado no corpo da solicitação HTTP seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é http)
fluent_bit.syslog.host Domínio ou endereço IP do servidor Syslog remoto seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é syslog)
fluent_bit.syslog.port Porta TCP ou UDP do servidor Syslog remoto inteiro Nulo (parâmetro obrigatório quando output_plugin é syslog)
fluent_bit.syslog.mode Especificar o tipo de transporte de TCP, UDP e TLS seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é syslog)
fluent_bit.syslog.format Especificar o formato de dados a ser usado no corpo da solicitação HTTP seqüência de caracteres Nulo (parâmetro obrigatório quando output_plugin é syslog)
host_path.volume_1 Caminho do diretório do sistema de arquivos do nó do host para o pod, para o volume 1 seqüência de caracteres /var/log
host_path.volume_2 Caminho do diretório do sistema de arquivos do nó do host para o pod, para o volume 2 seqüência de caracteres /var/lib/docker/containers
host_path.volume_3 Caminho do diretório do sistema de arquivos do nó do host para o pod, para o volume 3 seqüência de caracteres /run/log
systemd.path Caminho para o diretório de diário do Systemd seqüência de caracteres /var/log/journal