部署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包
請完成下列步驟:
-
下載所需的 RPM 或 DEB 套件。
有關當前記載代理程式版本的信息,請參閱 代理發行說明。
-
執行下列指令驗證校驗和:
sha256sum -c <sha256_filename>其中
<sha256_filename>是下載*.sha256檔案的檔案名稱。 -
如果您安裝的是最新版本的代理,
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
設定並部署記載代理程式配置
請完成下列步驟:
-
登入您的Linux環境。
-
安裝代理程式。
-
對於 RHEL 運行:
rpm -ivh <rpm_filename> -
對於Debian和Ubuntu運行:
dpkg -i <deb_filename>
其中
<rpm_filename>或<deb_filename>是下載的*.rpm或*.deb檔案的名稱。 -
-
執行配置 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>-
指定
IAMAPIKey或VSITrustedProfile。 -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實例
Overview的Endpoints部分找到。 使用入口端點。 有關更多信息,請參閱 入口端點 -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.conf、filters.conf 及 outputs.conf 檔案。
新增額外的元資料字段
您可以向路由日誌新增其他元資料欄位。
請完成下列步驟:
-
編輯
/etc/fluent-bit/資料夾中的fluent-bit.conf檔案。 -
使用以下結構新增自訂元資料:
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 -
儲存配置檔。
-
重新啟動代理程式以套用變更。
systemctl daemon-reload && systemctl restart fluent-bit
包含或排除文件
您必須設定記載代理程式監控的日誌檔案。
請完成下列步驟:
-
編輯
/etc/fluent-bit/資料夾中的fluent-bit.conf檔案。 -
修改輸入部分。
使用要監視的目錄和檔案設定路徑。
使用要從監視中排除的目錄和檔案設定 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 -
修改 SERVICE 區段。
將 storage.path 到檔案系統中儲存串流和資料的位置。
-
儲存配置檔。
-
重新啟動代理程式以套用變更。
systemctl daemon-reload && systemctl restart fluent-bit
驗證日誌是否已傳送到您的目標目的地
請完成下列步驟:
-
正確配置代理程式後,您可以透過預設儀表板視圖查看日誌。
例如,如果您將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