本文介紹跨阿里雲帳號採集阿里雲Kubernetes中的容器日誌的操作步驟。
背景資訊
例如某電商公司擁有兩個電商應用,部署在阿里雲杭州地區的Kubernetes叢集中,並使用杭州地區的Log Service進行日誌管理。
- 應用A部署在阿里雲帳號A(12****456)下的Kubernetes叢集中,並使用該帳號下的Log Service進行日誌管理。
- 應用B部署在阿里雲帳號B(17****397)下的Kubernetes叢集中,並使用該帳號下的Log Service進行日誌管理。
現公司業務調整,計劃將兩個應用的日誌集中採集到阿里雲帳號A(12****456)下的Log Service中,即將兩個應用的日誌分別採集到同一個Log ServiceProject下的不同Logstore中。因此您需要新增一個Logtail採集配置、機器組和Logstore,用於採集和儲存應用B相關的日誌。應用A相關的日誌採集保持不變(使用原有的Logtail採集配置、機器組和Logstore)。
步驟一:設定阿里雲帳號為使用者標識
- 使用阿里雲帳號B登入Container Service管理主控台。
- 設定阿里雲帳號A為使用者標識。
- 在左側導覽列中,單擊叢集。
- 在叢集列表頁面中,單擊目的地組群。
- 在左側導覽列中,選擇 。
- 選擇命名空間為kube-system,然後在配置項列表中單擊alibaba-log-configuration對應的編輯。
- 在編輯面板中,完成如下操作,然後單擊確定。在log-ali-uid配置項中增加阿里雲帳號A的ID,然後記錄log-machine-group配置項的值(例如k8s-group-cc47****54428),在建立機器組時需設定使用者自訂標識為該值。
多個帳號之間使用半形逗號(,)相隔,例如
17****397,12****456
。
- 重啟logtail-ds,使配置生效。
- 在左側導覽列中,選擇 。
- 在守護進程集列表中,單擊logtail-ds對應的編輯。
- 在環境變數地區,單擊新增。
- 新增一個任意內容的自訂變數(例如random_id:439157431651471905349)。
- 單擊更新。
在logtail-ds詳情頁面,確認各個容器組的狀態為Running且建立時間為您更新配置後的時間。
步驟二:建立機器組
- 使用阿里雲帳號A登入Log Service控制台。
- 在Project列表地區,單擊目標Project。
- 在左側導覽列中,選擇 。
- 選擇機器組右側的 。
- 在建立機器組對話方塊中,配置如下參數,然後單擊確定。其中使用者自訂標識需設定為您在步驟一:設定阿里雲帳號為使用者標識中擷取的機器組標識(例如k8s-group-cc47****54428)。其他參數說明,請參見建立使用者自訂標識機器組。
- 檢查機器組中的伺服器心跳都為OK。
- 在機器組列表中,單擊目標機器組。
- 在機器組配置頁面,查看容器節點(ECS)的心跳狀態。心跳為OK表示容器節點與Log Service的串連正常。如果顯示FAIL請參見Logtail機器組無心跳。
步驟三:建立Logtail採集配置
- 使用阿里雲帳號A登入Log Service控制台。
- 在資料接入地區,單擊Kubernetes-檔案。
- 選擇目標Project和Logstore,單擊下一步。
- 單擊使用現有機器組。
- 選中您在步驟二:建立機器組中所建立的機器組,將該機器組從源機器組移動到應用機器組,單擊下一步。
- 設定Logtail採集配置,單擊下一步。
具體參數說明,請參見通過DaemonSet-控制台方式採集容器文本日誌。
重要預設一個檔案只能匹配一個Logtail採集配置。此時帳號B下的採集未停止,帳號A下的Logtail採集配置無法生效,因此您需要使用如下方式使帳號A下的Logtail採集配置生效。
停止帳號B下的採集,即使用帳號B登入Log Service控制台,從目標機器組中移除Logtail採集配置。具體操作,請參見應用Logtail採集配置。
在帳號A下添加強制採集配置。更多資訊,請參見如何?檔案中的日誌被採集多份。
此處建立Logtail採集配置成功後,請刪除阿里雲帳號B下的原有Logtail採集配置,避免重複採集日誌。如何刪除,請參見刪除Logtail採集配置。
- 預覽資料及設定索引,單擊下一步。Log Service預設開啟全文索引。您也可以根據採集到的日誌,手動或者自動化佈建欄位索引。更多資訊,請參見建立索引。
相關操作
如果您需要將阿里雲帳號B下的歷史資料移轉到當前的Logstore中,可以在原Logstore中建立資料加工任務,將資料複製到當前Logstore中。具體操作,請參見複製Logstore資料。
重要
跨帳號加工資料時,需使用自訂角色或密鑰方式進行授權,此處以自訂角色為例。
- 第一個角色ARN用於授予資料加工任務使用該角色來讀取源Logstore中的資料。角色許可權配置說明請參見授予RAM角色源Logstore讀許可權。
- 第二個角色ARN用於授予資料加工任務使用該角色將資料加工結果寫入目標Logstore。角色許可權配置說明請參見授予RAM角色目標Logstore寫入權限(跨帳號)。