Fluent Bit est un processeur et un redirecteur de journaux rapides et légers qui vous permet de collecter des données et des journaux d'applications de différentes sources, de les unifier et de les envoyer vers plusieurs destinations. Déployez le module Tanzu pour Fluent Bit afin de collecter et de transférer les journaux du cluster TKG 2 vers la destination de votre choix.

Conditions requises pour les modules

Respectez les exigences suivantes avant de déployer le module Tanzu pour Fluent Bit.

Composants Fluent Bit

Le module Fluent Bit installe un conteneur Fluent Bit sur le cluster. Pour plus d'informations sur ce conteneur, consultez https://fluentbit.io/. Le module extrait les conteneurs du registre public VMware spécifié dans le référentiel de modules.
Conteneur Type de ressource Réplicas Description
Fluent Bit DaemonSet 6 Collecteur de journaux, agrégateur, redirecteur

Déployer le module Fluent Bit

Installez le module Fluent Bit.

  1. Créez la spécification 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. Installez le module Fluent Bit.
    kubectl apply -f fluentbit.yaml

Configurer le module Fluent Bit

Les valeurs de configuration sont définies dans fluent-bit-data-values.yaml.
Tableau 1. Configurations du module Fluent Bit
Paramètre Description Type Par défaut
logging.namespace Espace de noms où Fluent Bit sera déployé string tanzu-system-logging
logging.service_account_name Nom du compte de service Fluent Bit string fluent-bit
logging.cluster_role_name Nom du rôle de cluster qui accorde les autorisations Obtenir, Visionner et Lister à Fluent Bit string fluent-bit-read
logging.image.name Nom de l'image Fluent Bit string fluent-bit
logging.image.tag Balise d'image Fluent Bit. Il peut être nécessaire de mettre à jour cette valeur si vous mettez à niveau la version. string v1.6.9_vmware.1
logging.image.repository Emplacement du référentiel avec l'image Fluent Bit. La valeur par défaut est le registre VMware public. Modifiez cette valeur si vous utilisez un référentiel privé (par exemple, un environnement air-gapped). string projects.registry.vmware.com/tkg
logging.image.pullPolicy Stratégie d'extraction d'image Fluent Bit string IfNotPresent
logging.update_strategy Mettre à jour la stratégie à utiliser lors de la mise à jour du DaemonSet string RollingUpdate
tkg.cluster_name Nom du cluster Tanzu Kubernetes string Null (paramètre obligatoire)
tkg.instance_name Nom défini par l'utilisateur de l'instance de TKG, partagée par le cluster superviseur et tous les clusters Tanzu Kubernetes dans un seul déploiement . Vous pouvez utiliser n'importe quel nom associé à l'installation. string Null (paramètre obligatoire)
Note : Ce champ est obligatoire, mais arbitraire. Il s'agit d'un nom qui figure dans les journaux.
fluent_bit.log_level Niveau de journal à utiliser pour Fluent Bit string info
fluent_bit.output_plugin Définissez le serveur principal sur lequel Fluent Bit doit vider les informations qu'il collecte string Null (paramètre obligatoire)
fluent_bit.elasticsearch.host Adresse IP ou nom d'hôte de l'instance Elasticsearch cible string Null (paramètre obligatoire lorsque output_plugin est une recherche élastique)
fluent_bit.elasticsearch.port Port TCP de l'instance Elasticsearch cible entier Null (paramètre obligatoire lorsque output_plugin est une recherche élastique)
fluent_bit.elasticsearch.buffer_size Spécifiez la taille du tampon utilisé pour lire la réponse du service Elasticsearch. Définit comme illimité si la valeur est False string False
fluent_bit.elasticsearch.tls Spécifiez le paramètre par défaut pour TLS pour Elasticsearch string Désactivé
fluent_bit.kafka.broker_service_name Entrée unique d'une liste de Brokers Kafka multiples, par exemple : 192.168.1.3:9092 string Null (paramètre obligatoire lorsque output_plugin est kafka)
fluent_bit.kafka.topic_name Entrée unique ou liste de thèmes séparés par (,) que Fluent Bit utilisera pour envoyer des messages à Kafka string Null (paramètre obligatoire lorsque output_plugin est kafka)
fluent_bit.splunk.host Adresse IP ou nom d'hôte du serveur Splunk cible string Null (paramètre obligatoire lorsque output_plugin est splunk)
fluent_bit.splunk.port Port TCP du serveur Splunk cible entier Null (paramètre obligatoire lorsque output_plugin est splunk)
fluent_bit.splunk.token Spécifier le jeton d'authentification pour l'interface du collecteur d'événements HTTP string Null (paramètre obligatoire lorsque output_plugin est splunk)
fluent_bit.http.host Adresse IP ou nom d'hôte du serveur HTTP cible string Null (paramètre obligatoire lorsque output_plugin est http)
fluent_bit.http.port Port TCP du serveur HTTP cible entier Null (paramètre obligatoire lorsque output_plugin est http)
fluent_bit.http.mode Spécifier une URI HTTP pour le serveur Web cible string Null (paramètre obligatoire lorsque output_plugin est http)
fluent_bit.http.header_key_value Paire clé/valeur d'en-tête HTTP. Plusieurs en-têtes peuvent être définis string Null (paramètre obligatoire lorsque output_plugin est http)
fluent_bit.http.format Spécifier le format de données à utiliser dans le corps de la demande HTTP string Null (paramètre obligatoire lorsque output_plugin est http)
fluent_bit.syslog.host Domaine ou adresse IP du serveur Syslog distant string Null (paramètre obligatoire lorsque output_plugin est Syslog)
fluent_bit.syslog.port Port TCP ou UDP du serveur Syslog distant entier Null (paramètre obligatoire lorsque output_plugin est Syslog)
fluent_bit.syslog.mode Spécifiez le type de transport parmi TCP, UDP et TLS string Null (paramètre obligatoire lorsque output_plugin est Syslog)
fluent_bit.syslog.format Spécifier le format de données à utiliser dans le corps de la demande HTTP string Null (paramètre obligatoire lorsque output_plugin est Syslog)
host_path.volume_1 Chemin d'accès au répertoire du système de fichiers du nœud hôte vers l'espace, pour le volume 1 string /var/log
host_path.volume_2 Chemin d'accès au répertoire du système de fichiers du nœud hôte vers l'espace, pour le volume 2 string /var/lib/docker/containers
host_path.volume_3 Chemin d'accès au répertoire du système de fichiers du nœud hôte à l'espace, pour le volume 3 string /run/log
systemd.path Chemin d'accès au répertoire du journal Systemd string /var/log/journal