このトピックでは、ある Alibaba Cloud アカウントの Kubernetes クラスターからコンテナーログを収集し、別の Alibaba Cloud アカウントの Simple Log Service に送信する方法について説明します。
背景情報
たとえば、ある E コマース企業が、中国 (杭州) リージョンにある Kubernetes クラスターに 2 つのアプリケーションをデプロイしているとします。この企業は、同じリージョンの Simple Log Service を使用してログ管理を行っています。
アプリケーション A は、Alibaba Cloud アカウント A (12****456) に属する Kubernetes クラスターにデプロイされています。この企業は、このアカウントの Simple Log Service を使用してログ管理を行っています。
アプリケーション B は、Alibaba Cloud アカウント B (17****397) に属する Kubernetes クラスターにデプロイされています。この企業は、このアカウントの Simple Log Service を使用してログ管理を行っています。
ビジネス上の調整により、同社は両方のアプリケーションのログ収集を Alibaba Cloud アカウント A (12****456) の Simple Log Service プロジェクトに一元化することを計画しています。各アプリケーションのログは、同じプロジェクト内の異なる Logstore に収集されます。これを実現するには、アプリケーション B のログを収集・保存するために、新しい Logtail 収集設定、マシングループ、および Logstore を作成する必要があります。アプリケーション A のログ収集設定は変更されず、既存の Logtail 収集設定、マシングループ、および Logstore を引き続き使用します。
手順1:Alibaba Cloud アカウントをカスタム ID として設定
Alibaba Cloud アカウント A をカスタム ID として設定します。
Alibaba Cloud アカウント B を使用して、Container Service for Kubernetes (ACK) コンソールにログインします。
[クラスター] ページで、対象のクラスターをクリックします。
左側のナビゲーションウィンドウで、 を選択します。
[Namespace] を kube-system に設定します。ConfigMap のリストで alibaba-log-configuration を見つけ、[編集] をクリックします。
[編集] パネルで、必須パラメーターを設定し、[OK] をクリックします。
log-ali-uid 設定項目に Alibaba Cloud アカウント A の ID を追加します。log-machine-group 設定項目の値をメモします。例:k8s-group-cc47****54428。マシングループを作成する際、[カスタム ID] をこの値に設定する必要があります。
複数のアカウント ID はカンマ (,) で区切ります。例:
17****397,12****456。
logtail-ds を再起動して設定を適用します。
左側のナビゲーションウィンドウで、 を選択します。
DaemonSet のリストで logtail-ds を見つけ、[編集] をクリックします。
[環境変数] セクションで、[追加] をクリックします。
任意の値を持つカスタム変数を追加します。例:random_id: 439157431651471905349。

[更新] をクリックします。
logtail-ds の詳細ページで、各 Pod が [実行中] 状態であり、設定を更新したときに作成されたことを確認します。

手順2:マシングループの作成
Alibaba Cloud アカウント A を使用して、Simple Log Service コンソールにログインします。
[プロジェクト] セクションで、対象のプロジェクトをクリックします。
左側のナビゲーションウィンドウで、 を選択します。
[マシングループ] の右側にある を選択します。
[マシングループの作成] ダイアログボックスで、パラメーターを設定し、[OK] をクリックします。
[カスタム ID] に、「手順1:Alibaba Cloud アカウントをカスタム ID として設定」で取得したマシングループの ID (例:k8s-group-cc47****54428) を設定します。その他のパラメーターの詳細については、「カスタム ID を使用したマシングループの作成」をご参照ください。

マシングループ内のサーバーのハートビートステータスが OK であることを確認します。
マシングループのリストで、対象のマシングループをクリックします。
[マシングループ設定] ページで、コンテナーノード (ECS インスタンス) のハートビートステータスを確認できます。
[ハートビート] ステータスが [OK] の場合、コンテナーノードは Simple Log Service に接続されています。ステータスが [FAIL] の場合は、「Logtail マシングループにハートビートがない場合の対処法」をご参照ください。

手順3:Logtail 収集設定の作成
Alibaba Cloud アカウント A を使用して、Simple Log Service コンソールにログインします。
[データ取り込み] セクションで、[Kubernetes - ファイル] をクリックします。
プロジェクトと Logstore を選択し、[次へ] をクリックします。
[既存のマシングループを使用] をクリックします。
「手順2:マシングループの作成」で作成したマシングループを選択し、[ソースマシングループ] から [適用済みマシングループ] に移動して、[次へ] をクリックします。
Logtail 収集設定を作成し、[次へ] をクリックします。
パラメーターの詳細については、「コンソールを使用した DaemonSet モードでのコンテナーテキストログの収集」をご参照ください。
重要データをプレビューしてインデックスを設定し、[次へ] をクリックします。
Simple Log Service は、デフォルトでフルテキストインデックス作成を有効にします。収集されたログに基づいて、手動または自動でフィールドインデックスを設定することもできます。詳細については、「インデックスの作成」をご参照ください。
関連操作
Alibaba Cloud アカウント B の Logstore から新しい Logstore に既存データを移行するには、ソース Logstore でデータ変換タスクを作成してデータをコピーします。詳細については、「Logstore からデータをコピーする」をご参照ください。
アカウント間でデータを変換する場合、権限付与のためにカスタムロールを使用する必要があります。このトピックでは、カスタムロールを例として使用します。
最初の [ロール ARN] は、データ変換タスクにソース Logstore からデータを読み取る権限を付与します。ロール権限の設定方法の詳細については、「RAM ロールにソース Logstore の読み取り専用権限を付与する」をご参照ください。
2 番目の [ロール ARN] は、データ変換タスクに変換結果をターゲット Logstore に書き込む権限を付与するロールを指定します。詳細については、「RAM ロールにターゲット Logstore へのデータ書き込み権限を付与する (アカウント間)」をご参照ください。
> [マシングループの作成]