異なる Alibaba Cloud アカウントの Container Service for Kubernetes (ACK) クラスターからコンテナログを収集し、単一の Simple Log Service プロジェクトに一元化します。
背景情報
ある e コマース企業は、中国 (杭州) リージョンで 2 つのアプリケーションを Kubernetes クラスター上で実行しており、同リージョンの 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 の既存のログ収集設定は変更されません。
ステップ1:Alibaba Cloud アカウント識別子の設定
Loongcollector コンポーネント
-
ユーザー識別子に Alibaba Cloud アカウント A を設定します。
-
Alibaba Cloud アカウント B を使用して ACK コンソールにログインします。
-
クラスターリスト ページで、目的のクラスター名をクリックします。
-
左側のナビゲーションバーで、 を選択します。
-
[Helm] ページで [kube-system] 名前空間を選択し、loongcollector アプリケーションの アクション 列の 更新 をクリックします。
-
リリースのアップデート ダイアログボックスの ターゲット Helm チャートのパラメーター設定 (値) セクションで、
-
aliUid に Alibaba Cloud アカウントの ID を設定します。複数のアカウント ID はカンマ (,) で区切ります。例:
17****397,12****456。 -
baseMachineGroupName の値を記録します。これはマシングループのカスタム識別子です。Simple Log Service でマシングループを作成する際に、[カスタム識別子] パラメーターをこの値に設定します。例:
k8s-group-cc47****54428。このセクションでは、accessKeyID、accessKeySecret、clusterAgentフィールドも必須パラメーターであることにご注意ください。
-
-
[現在のパラメーターは更新中に完全に上書きされ、関連するリスクを「免責事項」で理解したことを認めます] チェックボックスを選択し、[OK] をクリックします。
-
-
左側のナビゲーションバーで、 をクリックします。[kube-system] 名前空間で、[loongcollector-ds] をクリックしてその詳細ページを開きます。すべての Pod が [実行中] ステータスであり、設定の更新後に作成されたことを確認します。
Logtail-ds コンポーネント
-
ユーザー識別子に Alibaba Cloud アカウント A を設定します。
-
Alibaba Cloud アカウント B を使用して ACK コンソール にログインします。
-
クラスターリスト ページで、目的のクラスターをクリックします。
-
左側のナビゲーションバーで、 を選択します。
-
名前空間 を kube-system に設定し、次に ConfigMap のリストで alibaba-log-configuration を見つけ、編集 をクリックします。
-
編集 パネルで、次の手順を実行し、OK をクリックします。
Alibaba Cloud アカウント A の ID を [log-ali-uid] ConfigMap に追加し、マシングループの作成時に ユーザー定義 ID として使用するために [log-machine-group] ConfigMap の値 (例: k8s-group-cc47****54428) を記録します。
複数のアカウント ID はカンマ (,) で区切ります。例:
17****397,12****456。
-
-
logtail-ds を再起動して設定を適用します。
[logtail-ds] 詳細ページで、すべてのポッドが設定の更新後に作成され、[実行中] ステータスになっていることを確認してください。
ステップ2:マシングループの作成
-
Alibaba Cloud アカウント A を使用して Simple Log Service コンソール にログインします。
-
[プロジェクト] セクションで、対象のプロジェクトをクリックします。
-
左側のナビゲーションバーで、 を選択します。
-
マシングループ の右にある をクリックします。
-
マシングループの作成 ダイアログボックスで、次のパラメーターを設定し、OK をクリックします。
ユーザー定義 ID には、手順 1: Alibaba Cloud アカウントをユーザー ID として設定するで取得したマシン グループ ID (例: k8s-group-cc47****54428) を設定する必要があります。その他のパラメーターの詳細については、「カスタム ID を使用してマシン グループを作成する」をご参照ください。[名前] に
k8s-groupを設定し、[マシン グループ ID] として [カスタム ID] を選択し、[カスタム ID] テキスト ボックスにk8s-group-cc{Instance ID}などのカスタム ID 値を入力します。 -
マシングループ内のすべてのサーバーのハートビートステータスが正常であることを確認します。
-
マシングループのリストで、対象のマシングループをクリックします。
-
サーバグループ設定 ページで、コンテナノード (ECS) のハートビートステータスを確認します。
ハートビート ステータスが [OK] の場合、コンテナノードが Simple Log Service に接続されていることを示します。ステータスが [FAIL] の場合は、「Logtail マシン グループにハートビートがない」をご参照ください。すべてのノードで OK と表示されると、マシン グループは準備完了です。
-
ステップ3:Logtail 収集設定の作成
-
Alibaba Cloud アカウント A を使用して Simple Log Service コンソール にログインします。
-
データのインポート エリアで、[Kubernetes - ファイル] をクリックします。
-
対象のプロジェクトと Logstore を選択し、次へ をクリックします。
-
既存のサーバーグループの使用 をクリックします。
-
ステップ 2: マシン グループの作成で作成したマシン グループを選択し、ソースサーバーグループ から 適用されたサーバーグループ に移動して、次へ をクリックします。
-
Logtail 収集設定をし、次へ をクリックします。
パラメーターの詳細については、「コンソールを使用した DaemonSet モードでのコンテナテキストログの収集」をご参照ください。
重要-
デフォルトでは、1つのファイルに一致できる Logtail 収集設定は1つだけです。アカウント B の収集設定がまだアクティブなため、アカウント A の新しい設定は有効になりません。アカウント A の設定を有効にするには、次のいずれかの方法を使用できます:
-
アカウント B のログ収集を停止します。これを行うには、アカウント B で SLS コンソールにログインし、宛先のマシングループから Logtail 収集設定を削除します。「指定したマシングループへの Logtail 設定の適用」をご参照ください。
-
アカウント A の強制収集設定を追加します。「1つのファイルから複数回ログを収集する方法」をご参照ください。
-
-
Logtail 収集設定を作成した後、ログの重複収集を防ぐために、Alibaba Cloud アカウント B の元の設定を削除します。「Logtail 設定の削除」をご参照ください。
-
-
データをプレビューし、インデックスを設定して、次へ をクリックします。
デフォルトでは、Simple Log Service は全文インデックス作成を有効にします。収集されたログに基づいて、手動または自動でフィールドインデックスを作成することもできます。詳細については、「インデックスの作成」をご参照ください。
関連操作
Alibaba Cloud アカウント B から現在の Logstore に履歴データを移行する必要がある場合は、ソースの Logstore でデータ変換ジョブを作成してデータをコピーします。詳細については、「Logstore からのデータの複製」をご参照ください。
アカウントをまたいでデータを変換する場合は、認可のためにカスタムロールを使用する必要があります。
-
最初の [Role ARN] は、データ変換タスクにソースの Logstore への読み取りアクセス権を付与します。詳細については、「RAM ロールへのソースの Logstore に対する読み取り専用アクセスの付与」をご参照ください。
-
2 番目の [Role ARN] は、データ変換タスクにターゲットの Logstore への書き込みアクセス権を付与します。詳細については、「RAM ロールへのターゲットの Logstore へのデータ書き込み権限の付与 (クロスアカウント)」をご参照ください。
> マシングループの作成