部署Linux 記載代理程式

您可以部署記載代理程式以收集基礎架構和應用程式日誌並將其從Linux環境(例如RHEL8、RHEL9、Debian和Ubuntu路由到IBM Cloud Logs實例。 有關受支援的Linux環境的更多信息,請參閱 非編排環境的記載代理程式

這些說明適用於Red Hat Linux系統,但也可用於其他基於Linux RPM 的伺服器。

完成以下步驟將代理部署到支援的Linux環境。

定義代理程式的身份驗證方法

選擇代理程式的身份類型和身份驗證方法。 然後,建立可信任設定檔或 API 金鑰。 將日誌傳送到IBM Cloud Logs所需的角色是 Sender

您可以使用服務 ID 或受信任的設定檔作為代理程式用於透過IBM® Cloud Logs服務進行驗證的身份。 有關更多信息,請參閱 授予 IAM 攝取權限

選擇下列其中一個選項:

選項 1:使用可信任設定檔進行身份驗證

建立可信任的設定檔。 有關更多信息,請參閱 生成可信任設定檔以供攝取

選項 2:使用服務 ID API 金鑰進行驗證

產生 API 金鑰用於服務 ID 驗證。 有關更多信息,請參閱 生成用於攝取的 API 金鑰

下載所需的RPM或DEB包

請完成下列步驟:

  1. 下載所需的 RPM 或 DEB 套件。

    有關當前記載代理程式版本的信息,請參閱 代理發行說明

  2. 執行下列指令驗證校驗和:

    sha256sum -c <sha256_filename>
    

    其中 <sha256_filename> 是下載 *.sha256 檔案的檔案名稱。

  3. 如果您安裝的是最新版本的代理,post-config.sh 檔案是 RPM 或 DEB 套件的一部分,您可以在 /opt/fluent-bit/bin/post-config.sh 找到它。 如果您使用的是 1.6.2 之前的版本,您需要使用此步驟下載 post-config.sh 檔案。

    只有在使用 記載代理程式 1.6.1 或更早版本時才需要此步驟。 它不適用於 記載代理程式 1.6.2 或後續版本。

    wget https://logs-router-agent-config.s3.us.cloud-object-storage.appdomain.cloud/post-config.sh
    
    chmod +x post-config.sh
    

設定並部署記載代理程式配置

請完成下列步驟:

  1. 登入您的Linux環境。

  2. 安裝代理程式。

    • 對於 RHEL 運行:

      rpm -ivh <rpm_filename>
      
    • 對於Debian和Ubuntu運行:

      dpkg -i <deb_filename>
      

    其中 <rpm_filename><deb_filename> 是下載的 *.rpm*.deb 檔案的名稱。

  3. 執行配置 Script。

    /opt/fluent-bit/bin/post-config.sh -h <target_host> -p <target_port> [-t <target_path>] -a <auth_mode> -k <iam_api_key> [-s <vsi_secure_access_enabled>] [-i <IAM_environment>] [--subsystem-name <name>] [--application-name <name>]
    

    其中

    -t <target_path>

    指定將資料傳送至 IBM Cloud Logs 範例的路徑。 如果未提供,則默認值為 /logs/v1/singles

    -a <auth_mode>

    指定 IAMAPIKeyVSITrustedProfile

    -k <iam_api_key>

    指定Cloud Identity and Access Management API 金鑰( IAMAPIKey 模式必要)。 確保遵循 生成 API 金鑰 中的說明。

    有關Cloud Identity and Access Management API 金鑰的更多信息,請參閱 管理 API 金鑰

    -d <trusted_profile_id>

    指定受信任的設定檔 ID( VSITrustedProfile 模式所需)。 使用可信任設定檔時,設定為在 設定攝取權限 中設定的 ID。 您必須建立啟用元資料服務的實例,並透過在建立實例時指定 ID 將受信任的設定檔連結到您的實例。 如需詳細資訊,請參閱 建立虛擬伺服器實例

    有關受信任設定檔的更多信息,請參閱 建立受信任設定檔

    --send-directly-to-icl 已停用

    設定此參數可將日誌直接傳送至IBM Cloud Logs。

    -h <target_host>

    用於IBM Cloud Logs攝取的主機,可在IBM Cloud Logs實例 OverviewEndpoints 部分找到。 使用入口端點。 有關更多信息,請參閱 入口端點

    -i <IAM_environment>

    指定是使用公共終端節點或專用終端節點進行 IAM 驗證。Production 表示使用公共端點。PrivateProduction 指定使用專用端點。Production 是預設值。

    如果您的系統無法存取公共互聯網,則必須使用 PrivateProduction 才能使用專用端點。

    -p <target_port>

    使用 443 將日誌直接傳送到IBM Cloud Logs。

    -s <vsi_secure_access_enabled>

    (可選)如果您在 VSI 中啟用了安全性訪問,請將此設定為 true。 預設會設定為 false。 例如,-s true

    --application-name <name>

    應用程式名稱定義產生日誌並將日誌傳送至 IBM Cloud Logs 的環境。 如果未提供,則默認值為 ${HOSTNAME}

    --subsystem-name <name>

    子系統名稱是產生並傳送日誌至 IBM Cloud Logs 的服務或應用程式。 如果未提供,則默認值為 not-found

    執行腳本,以您的參數變更更新組態。

記載代理程式 預設配置

記載代理程式 預設配置包括預先定義的輸入來源和過濾器。 此預設設定會從常見位置收集日誌,並使用基本的 metadata 來豐富這些日誌。

預設輸入來源

記載代理程式 已預先設定為監控 目錄及其子目錄中的日誌檔案。/var/log/ 以下是預設 inputs.conf 的範例:

[INPUT]
  Name              tail
  Tag               host.*
  Path              /var/log/**/*.log
  Path_Key          file
  Exclude_Path      /var/log/at/**
  DB                /var/lib/fluent-bit/fluent-bit.DB
  Buffer_Chunk_Size 32KB
  Buffer_Max_Size   256KB
  Mem_Buf_Limit     30MB
  Skip_Long_Lines   On
  Refresh_Interval  10
  storage.type      filesystem
  storage.pause_on_chunks_overlimit on

已變更過濾器

預設組態包含兩個篩選器,用於增強具有元資料的記錄,並將其組織起來以方便處理:

  • 修改篩選器:新增元資料欄位,例如子系統名稱、應用程式名稱、主機名稱和平台。

  • Nest 過濾器:將元資料欄位群組在單一 meta 關鍵之下。

以下是預設 filters.conf 的範例:

[FILTER]
  Name modify
  Match *
  Add subsystemName    ${SUBSYSTEM_NAME}
  Add applicationName  ${APPLICATION_NAME}
  Add meta.hostname    ${HOSTNAME}
  Add meta.environment prod   # Sample values: prod, staging, dev, qa
  Add meta.platform    linux

[FILTER]
  Name nest
  Match *
  Operation nest
  Wildcard meta.*
  Nest_under meta
  Remove_prefix meta.

記載代理程式 配置自訂

這些預設值提供了收集和豐富日誌的基礎。 若要依據您的需求設定代理程式,您可以修改位於 /etc/fluent-bit/ 目錄下的 inputs.conffilters.confoutputs.conf 檔案。

新增額外的元資料字段

您可以向路由日誌新增其他元資料欄位。

請完成下列步驟:

  1. 編輯 /etc/fluent-bit/ 資料夾中的 fluent-bit.conf 檔案。

  2. 使用以下結構新增自訂元資料:Add <meta.key_name> <your_custom_value>

    [FILTER]
      Name modify
      Match *
      Add subsystemName    ${SUBSYSTEM_NAME}
      Add applicationName  ${APPLICATION_NAME}
      Add meta.hostname    ${HOSTNAME}
      Add meta.env         prod   # Sample values: prod, staging, dev, qa
      Add meta.platform    linux
    

    其中

    • <meta.key_name> 是要新增的元資料欄位的名稱(例如,meta.env ),<your_custom_value> 是要指派給該欄位的值(例如,您的環境的名稱)。

    例如,如果您要將 region 加入為元資料,或將版本加入為新欄位,設定會與此類似:

    [FILTER]
      Name modify
      Match *
      Add subsystemName    ${SUBSYSTEM_NAME}
      Add applicationName  ${APPLICATION_NAME}
      Add meta.hostname    ${HOSTNAME}
      Add meta.env         prod
      Add meta.platform    linux
      Add meta.region      us-east
      Add version          my-version
    
  3. 儲存配置檔。

  4. 重新啟動代理程式以套用變更。

    systemctl daemon-reload && systemctl restart fluent-bit
    

包含或排除文件

您必須設定記載代理程式監控的日誌檔案。

請完成下列步驟:

  1. 編輯 /etc/fluent-bit/ 資料夾中的 fluent-bit.conf 檔案。

  2. 修改輸入部分。

    使用要監視的目錄和檔案設定路徑

    使用要從監視中排除的目錄和檔案設定 Exclude_Path

    [INPUT]
      Name              tail
      Tag               *
      Path              /var/log/*.log
      Path_Key          file
      Exclude_Path      /var/log/audit.log
      DB                /var/lib/fluent-bit/fluent-bit.DB
      Buffer_Chunk_Size 32KB
      Buffer_Max_Size   256KB
      Skip_Long_Lines   On
      Refresh_Interval  10
      storage.type      filesystem
      storage.pause_on_chunks_overlimit on
    
  3. 修改 SERVICE 區段。

    storage.path 到檔案系統中儲存串流和資料的位置。

  4. 儲存配置檔。

  5. 重新啟動代理程式以套用變更。

    systemctl daemon-reload && systemctl restart fluent-bit
    

驗證日誌是否已傳送到您的目標目的地

請完成下列步驟:

  1. 前往您的IBM Cloud Logs實例的 Web UI。

  2. 正確配置代理程式後,您可以透過預設儀表板視圖查看日誌。

    例如,如果您將applicationName設定為代理程式中的主機名,則可以將檢視中的 applicationname 篩選器設定為主機的名稱。

更新代理

您可以下載所需的代理程式套件,然後針對您的環境執行適當的指令來更新代理程式。 如需目前 記載代理程式 版本的相關資訊,請參閱 代理程式發行說明。

  • 對於 RHEL 運行:

    rpm -Uvh <rpm_filename>
    
  • 對於Debian和Ubuntu運行:

    dpkg -i <deb_filename>
    

其中 <rpm_filename><deb_filename> 是下載的 *.rpm*.deb 檔案的名稱。

重新安裝或升級代理程式時,您現有的組態檔案不會改變。

更新後重新啟動服務:

systemctl daemon-reload && systemctl restart fluent-bit

解除安裝代理程式

您可以以 sudo 使用者身份從終端執行適當的指令,移除已安裝的代理程式。

  • 對於 RHEL、CentOS, 和 Fedora Linux 執行:

    sudo yum erase draios-agent
    
  • 對於Debian和Ubuntu運行:

    sudo apt-get remove draios-agent