安裝 Fluent Bit 以用於記錄轉送

本主題說明如何將 Fluent Bit 部署到 Tanzu Kubernetes Grid 中的獨立管理叢集或工作負載叢集。

Fluent Bit 是輕量型記錄處理器和轉寄站。此 Tanzu Kubernetes Grid 版本中提供的 Fluent Bit 實作,可讓您從 vSphere 8、Amazon Web Services (AWS) 和 Azure 上執行的叢集中收集記錄。然後,就可以轉送到記錄儲存區提供者,例如 Elastic SearchKafkaSplunk 或 HTTP 端點。

您可以在要從中收集記錄的任何獨立管理叢集或工作負載叢集上部署 Fluent Bit。首先,在要從中收集記錄的叢集上設定輸出外掛程式,視您使用的端點而定。然後,在叢集上部署 Fluent Bit。

必要條件

準備叢集以部署 Fluent Bit

附註

您必須在要從中收集記錄的每個叢集上部署 Fluent Bit。

若要準備叢集,請執行下列動作:

  1. 針對要在其中部署 Fluent Bit 的叢集,取得其管理員認證。例如:

    tanzu cluster kubeconfig get my-cluster --admin
    
  2. 將 kubectl 的內容設定為叢集。例如:

    kubectl config use-context my-cluster-admin@my-cluster
    

在叢集上部署 Fluent Bit

請遵循以下程序,在叢集上部署 Fluent Bit:

  1. 如果叢集沒有已安裝 Fluent Bit 軟體套件的套件存放庫 (例如 tanzu-standard 存放庫),請安裝一個:

    附註

    如果要將以計劃為基礎的叢集 (舊版) 為目標,請跳過此步驟。對於以計劃為基礎的叢集,會在 tanzu-package-repo-global 命名空間中的每個叢集中,自動啟用 tanzu-standard 套件存放庫。

    tanzu package repository add PACKAGE-REPO-NAME --url PACKAGE-REPO-ENDPOINT --namespace tkg-system
    

    其中:

    • PACKAGE-REPO-NAME 是軟體套件存放庫的名稱,例如 tanzu-standard 或使用 ADDITIONAL_IMAGE_REGISTRY 變數設定的私人映像登錄名稱。
    • PACKAGE-REPO-ENDPOINT 是套件存放庫的 URL。

      • 對於此版本,tanzu-standard URL 為 projects.registry.vmware.com/tkg/packages/standard/repo:v2.2.0。若要從 Tanzu CLI 取得此值,請參閱列出套件存放庫,或在 Tanzu Mission Control 中查看叢集 (Cluster) 窗格中的附加元件 (Addons) > 存放庫 (Repositories) 清單。
  2. 在叢集中安裝 cert-manager (如果尚未安裝)。如需相關指示,請參閱安裝 cert-manager 以用於憑證管理

  3. 確認 Fluent Bit 套件在叢集中可用:

    tanzu package available list -A
    
  4. 擷取可用套件的版本:

    tanzu package available list fluent-bit.tanzu.vmware.com -A
    
  5. 準備 Fluent Bit 套件的組態檔:

    1. 擷取套件的預設組態:

      tanzu package available get fluent-bit.tanzu.vmware.com/PACKAGE-VERSION --default-values-file-output FILE-PATH
      

      其中,PACKAGE-VERSION 是您要安裝的 Fluent Bit 套件版本,FILE-PATH 是用來儲存組態檔的位置,例如,fluent-bit-data-values.yaml

    2. 根據要設定的記錄管理後端,將一或多個 [Output] 組態新增至 fluent-bit-data-values.yaml 檔案中的 fluent_bit.config.outputs 機碼。

    3. 檢閱並視需要修改其他組態參數。如需可在 fluent-bit-data-values.yaml 中設定的組態參數完整清單的連結,請參閱下方的 Fluent Bit 套件組態參數

  6. 準備 fluent-bit-data-values.yaml 檔案後,請移除檔案中的所有註解:

    yq -i eval '... comments=""' fluent-bit-data-values.yaml
    
  7. 執行 tanzu package install 以部署套件:

    tanzu package install fluent-bit \
    --package fluent-bit.tanzu.vmware.com \
    --version AVAILABLE-PACKAGE-VERSION \
    --values-file fluent-bit-data-values.yaml \
    --namespace TARGET-NAMESPACE
    

    其中:

    • TARGET-NAMESPACE 是要在其中安裝 Fluent Bit 軟體套件的命名空間。例如,my-packages 命名空間。

      • 如果未指定 --namespace 旗標,Tanzu CLI 會使用 default 命名空間。Fluent Bit Pod 及與 Fluent Bit 元件相關聯的任何其他資源會建立在您於 fluent-bit-data-values.yaml 所提供的名稱空間中,請勿將 Fluent Bit 套件安裝到此命名空間。
      • 指定的命名空間必須已存在,例如,從執行 kubectl create namespace my-packages
    • AVAILABLE-PACKAGE-VERSION 是您執行上面的 tanzu package available 而擷取到的版本。

    例如:

    tanzu package install fluent-bit --package fluent-bit.tanzu.vmware.com --namespace my-packages --version 1.8.15+vmware.1-tkg.1
    

Fluent Bit 套件組態參數

下表列出 Fluent Bit 套件的組態參數,並說明其預設值。您可以在上述在叢集上部署 Fluent Bit 中建立的 fluent-bit-data-values.yml 檔案中,設定以下組態值。

參數 說明 類型 預設
namespace 將部署 Fluent Bit 的命名空間。 字串 tanzu-system-logging
fluent_bit.config.outputs 如需 Fluent Bit 輸出組態的相關資訊,請參閱 Fluent Bit 說明文件 多行 YAML Standard output
fluent_bit.config.parsers 如需 Fluent Bit 剖析器組態的相關資訊,請參閱 Fluent Bit 說明文件 多行 YAML JSON parser
fluent_bit.config.plugins Fluent Bit 外掛程式組態的內容。 字串 <nil>
fluent_bit.config.service 如需 Fluent Bit 服務組態的相關資訊,請參閱 Fluent Bit 說明文件 多行 YAML 預設 Fluent Bit 服務組態。
fluent_bit.config.streams Fluent Bit 串流檔案的內容。 字串 <nil>
fluent_bit.config.filters 如需 Fluent Bit 篩選器組態的相關資訊,請參閱 Fluent Bit 說明文件 多行 YAML 預設 Kubernetes 篩選器。
fluent_bit.config.inputs 如需 Fluent Bit 輸入組態的相關資訊,請參閱 Fluent Bit 說明文件 字串 使用 tail 外掛程式擷取 Kubernetes 容器記錄,並從 Kubelet 擷取 systemd 記錄。
fluent_bit.daemonset.resources 如需 Fluent Bit 容器資源需求組態的相關資訊,請參閱 Fluent Bit 說明文件 多行 YAML <nil>
fluent_bit.daemonset.podAnnotations Fluent Bit 部署 Pod 註解。 清單 <nil>
fluent_bit.daemonset.podLabels Fluent Bit 部署網繭標籤。 清單 <nil>

驗證 Fluent Bit 部署

部署 Fluent Bit 後,可以驗證部署是否成功:

  1. 確認已安裝 fluent-bit 套件。例如:

    tanzu package installed list -A
    

    fluent-bit 套件和 fluent-bit 應用程式會安裝在您執行 tanzu package install 命令時所指定的命名空間中。

  2. 確認 fluent-bit 應用程式已在 AVAILABLE-PACKAGE-NAMESPACE 中成功協調:

    kubectl get apps -A
    

    如果狀態不是 Reconcile succeeded,請檢視 fluent-bit 應用程式的完整狀態詳細資料。檢視完整狀態可協助您對問題進行疑難排解:

    kubectl get app fluent-bit --namespace AVAILABLE-PACKAGE-NAMESPACE -o yaml
    

    其中,AVAILABLE-PACKAGE-NAMESPACE 是安裝套件的命名空間。

  3. 列出叢集中正在執行的所有網繭,以確認新服務正在執行:

    kubectl get pods -A
    

    tanzu-system-logging 命名空間中,您應該會看到 fluent-bit 服務正在網繭中執行:

    NAMESPACE               NAME                     READY   STATUS    RESTARTS   AGE
    [...]
    tanzu-system-logging    fluent-bit-zd2tn         1/1     Running   0          6m23s
    [...]
    

    Fluent Bit 網繭及與 Fluent Bit 元件相關聯的任何其他資源會建立在您於 fluent-bit-data-values.yaml 檔案所提供的名稱空間中。如果使用的是預設命名空間,則會在 tanzu-system-logging 命名空間中建立。

更新正在執行的 Fluent Bit 部署

若要在部署後變更 Fluent Bit 套件的組態,請更新已部署的 Fluent Bit 套件:

  1. fluent-bit-data-values.yaml 檔案中更新 Fluent Bit 組態。

  2. 更新已安裝的套件:

    tanzu package installed update fluent-bit \
    --version 1.8.15+vmware.1-tkg.1 \
    --values-file fluent-bit-data-values.yaml \
    --namespace my-packages
    

    預期輸出:

    | Updating package 'fluent-bit'
    - Getting package install for 'fluent-bit'
    | Updating secret 'fluent-bit-my-packages-values'
    | Updating package install for 'fluent-bit'
    
     Updated package install 'fluent-bit' in namespace 'my-packages'
    

使用您新增的值協調 Fluent Bit 套件。kapp-controller 套用變更可能需要長達五分鐘的時間。

如需有關更新的資訊,請參閱更新套件

刪除 Fluent Bit 部署

若要移除叢集上的 Fluent Bit 套件,請執行:

tanzu package installed delete fluent-bit --namespace my-packages

如需有關刪除的資訊,請參閱刪除套件

check-circle-line exclamation-circle-line close-line
Scroll to top icon