介紹如何將一個阿里雲帳號(源帳號)下的ECS伺服器日誌,統一採集到另一個阿里雲帳號(目標帳號)的Log ServiceProject中。該方案通過在源ECS上配置授權,允許目標帳號的Logtail進行日誌採集,實現日誌的集中管理和分析。
快速入門
業務情境說明
在多帳號的雲環境中,集中管理日誌的常見原因如下:
統一營運監控:將分散在不同業務帳號下的應用日誌、系統日誌集中儲存,便於統一的監控、警示和故障排查。
安全合規審計:將所有動作記錄、安全日誌歸集到專用的安全或審計帳號,滿足合規性要求。
業務遷移:在業務從一個阿里雲帳號遷移到另一個帳號的過程中,將日誌採集任務過渡到新帳號。
介紹如何將日誌採集任務從源帳號遷移至目標帳號。
方案架構
該方案基於檔案授權的信任模型。在源帳號的ECS伺服器上建立特定的授權和標識檔案,即可授予目標帳號通過Logtail採集該伺服器日誌的許可權。
工作流程如下:
在源帳號(帳號B)的每台ECS伺服器上,建立一個以目標帳號(帳號A)的UID命名的授權檔案。
同時,在ECS上建立一個包含自訂標識符的檔案,用於在目標帳號中對這批機器進行分組。
ECS上的Logtail用戶端識別到授權檔案後,會向目標帳號(帳號A)的Log Service發送心跳,並上報其自訂標識。
在目標帳號(帳號A)的Log Service控制台,建立一個使用該自訂標識的機器組。心跳正常的ECS將自動加入該機器組。
為該機器組應用Logtail採集配置,Logtail將根據配置採集日誌並發送到目標帳號(帳號A)的Logstore。
跨帳號加工資料時,需使用自訂角色進行授權:
第一個角色ARN用於授予資料加工任務使用該角色來讀取源Logstore中的資料。角色許可權配置說明請參見授權RAM角色唯讀訪問源Logstore。
第二個角色ARN用於授予資料加工任務使用該角色將資料加工結果寫入目標Logstore。角色許可權配置說明請參見授權RAM角色寫資料到目標Logstore(跨帳號)。
實施步驟
步驟一:在源ECS上配置授權與標識
在源帳號的ECS伺服器上建立授權檔案和標識檔案,以允許目標帳號採集日誌,並為後續建立機器組提供唯一標識。
登入源帳號下的ECS伺服器。
執行以下指令碼完成授權與標識配置。將指令碼中的
{TARGET_ACCOUNT_ID}和{YOUR_MACHINE_GROUP_ID}替換為實際值。
#!/bin/bash
# 替換為目標帳號(帳號A)的阿里雲帳號ID(16位元字)。
TARGET_ACCOUNT_ID="{TARGET_ACCOUNT_ID}"
# 為這批機器定義一個唯一的標識符。
# 建議使用業務名、環境名等組合,例如 "my-app-prod-servers"。
MACHINE_GROUP_ID="{YOUR_MACHINE_GROUP_ID}"
# 1. 建立授權檔案目錄。
sudo mkdir -p /etc/ilogtail/users
# 2. 建立授權檔案,檔案名稱即為目標帳號ID,授予該帳號採集許可權。
sudo touch "/etc/ilogtail/users/${TARGET_ACCOUNT_ID}"
# 3. 建立使用者自訂標識檔案,用於在目標帳號中識別和分組機器。
echo "${MACHINE_GROUP_ID}" | sudo tee /etc/ilogtail/user_defined_id > /dev/null
# 4. 重啟Logtail服務使配置生效。
# 如果系統不使用systemd,請使用 'sudo /etc/init.d/ilogtaild restart'。
sudo systemctl restart ilogtail
echo "配置完成。稍後在目標帳號的Log Service控制台檢查機器組心跳狀態。"
(可選)驗證配置
檢查檔案是否建立成功:
sudo ls -l /etc/ilogtail/users/和sudo cat /etc/ilogtail/user_defined_id。檢查Logtail服務狀態:
sudo systemctl status ilogtail。查看Logtail日誌,確認有心跳資訊發出:
sudo tail -n 100 /var/log/ilogtail/ilogtail.LOG | grep Heartbeat。
步驟二:在目標帳號中建立機器組
在目標帳號的Log Service控制台中建立機器組,通過上一步設定的自訂標識來識別並管理源帳號的ECS伺服器。
使用目標帳號(帳號A)登入Log Service控制台。
在Project列表頁面,單擊目標Project。
在左側導覽列中,選擇資源 > 機器組。
單擊建立機器組。
在建立機器組對話方塊中,完成以下配置:
機器組名稱:自訂,例如
cross-account-app-servers。機器群組類型:選擇使用者自訂標識。
使用者自訂標識:輸入在步驟一指令碼中設定的
MACHINE_GROUP_ID值。確保內容完全一致,無多餘的空格或分行符號。
單擊確定。
在機器組列表中找到新建立的機器組,單擊其名稱進入詳情頁。等待1-3分鐘後重新整理頁面,心跳狀態應顯示為OK。如果心跳為FAIL,請參考本文“心跳失敗(FAIL)排查”章節進行排查。
步驟三:建立並應用Logtail採集配置
建立日誌採集規則,並將其應用到已建立的機器組,以開機記錄採集。
在目標帳號的Log Service控制台中,進入目標Project和Logstore。
選擇快速接入 > 快速接入資料,然後選擇正則-文本日誌(或其他適合的日誌類型)。
在接入資料嚮導的選擇機器組步驟中,將上一步建立的機器組從源機器組移動到應用機器組,然後單擊下一步。
配置Logtail採集規則,包括日誌路徑、採集模式等。
重要為實現平滑遷移並避免費用浪費,建議在確認目標帳號採集穩定後,立即登入源帳號(帳號B)的Log Service控制台,刪除或停用原有的Logtail採集配置。
完成後續的預覽資料及設定索引步驟,然後單擊下一步。Log Service預設開啟全文索引,可根據需要配置欄位索引
背景資訊
您要通過Logtail採集伺服器日誌時,在伺服器上安裝Logtail後,還需配置Log Service所在阿里雲帳號ID為使用者標識,表示該帳號有許可權通過Logtail採集該伺服器日誌。否則在機器組中會顯示伺服器心跳失敗,導致Logtail無法採集日誌到Log Service。
例如某電商公司擁有兩個電商應用,部署在阿里雲杭州地區的ECS叢集上,並使用杭州地區的Log Service進行日誌管理。
應用A部署在阿里雲帳號A(12****456)下的ECS叢集(Linux系統)上,並使用該帳號下的Log Service進行日誌管理。
應用B部署在阿里雲帳號B(17****397)下的ECS叢集(Linux系統)上,並使用該帳號下的Log Service進行日誌管理。
現公司業務調整,計劃將兩個應用的日誌集中採集到阿里雲帳號A(12****456)下的Log Service中,即將兩個應用的日誌分別採集到同一個Log ServiceProject下的不同Logstore中。因此您需要新增一個Logtail採集配置、機器組和Logstore,用於採集和儲存應用B相關的日誌。應用A相關的日誌採集保持不變(使用原有的Logtail採集配置、機器組和Logstore)。

步驟一:建立使用者標識檔案
登入阿里雲帳號B下的ECS伺服器。
重要您需要在ECS叢集B的每台ECS伺服器中建立使用者標識檔案。
執行如下命令建立使用者標識檔案。
您需要配置阿里雲帳號A為使用者標識,即建立阿里雲帳號A的同名檔案。更多資訊,請參見配置使用者標識。
touch /etc/ilogtail/users/12****456
步驟二:建立使用者自訂標識機器組
在ECS伺服器上建立機器組的自訂使用者標識檔案。
重要您需要在ECS叢集B的每台ECS伺服器中建立機器組的使用者自訂標識檔案。
登入阿里雲帳號B下的ECS伺服器。
在指定目錄下建立/etc/ilogtail/user_defined_id檔案並添加使用者自訂標識。
例如配置使用者自訂標識為
application_b,則在檔案中輸入application_b,並儲存。檔案路徑說明,請參見建立使用者自訂標識機器組。
在Log Service控制台上建立機器組。
使用阿里雲帳號A登入Log Service控制台。
在Project列表地區,單擊目標Project。
在左側導覽列中,選擇。
選擇機器組右側的。
在建立機器組對話方塊中,配置如下參數,然後單擊確定。
其中使用者自訂標識需設定為您在步驟1中設定的使用者自訂標識。其他參數說明,請參見建立使用者自訂標識機器組。

檢查機器組中的伺服器心跳都為OK。
在機器組列表中,單擊目標機器組。
在機器組配置頁面,查看使用了相同使用者自訂標識的ECS伺服器及其心跳狀態。
心跳為OK表示ECS伺服器與Log Service的串連正常。如果顯示FAIL請參見Logtail機器組無心跳。

步驟三:採集日誌
使用阿里雲帳號A登入Log Service控制台。
單擊快速接入。

在快速接入資料對話方塊中,選擇正則-文本日誌。
在接入資料嚮導中,選擇目標Project和Logstore,單擊下一步。
配置機器組配置。
使用情境選擇主機情境。
安裝環境選擇ECS。
選中您在步驟二中建立的機器組,將該機器組從源機器組移動到應用機器組,單擊下一步。
建立Logtail採集配置,單擊下一步。
具體參數說明,請參見使用完整正則模式採集日誌。
重要預設一個檔案只能匹配一個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(跨帳號)。
> 建立機器組