このトピックでは、Alibaba Cloudアカウント全体でcontainer Service for Kubernetes (ACK) からコンテナログを収集する方法について説明します。
このタスクについて
- アプリケーションAはAlibaba CloudアカウントA (12 **** 456) に属するACKクラスターにデプロイされ、ログを管理するアカウントに対してLog Serviceが有効化されます。
- アプリケーションBはAlibaba CloudアカウントB (17 **** 397) に属するACKクラスターにデプロイされ、ログを管理するアカウントに対してLog Serviceが有効化されます。
手順1: Alibaba CloudアカウントのIDをユーザー識別子として設定する
- Alibaba CloudアカウントBでACKコンソールにログインします。
- Alibaba CloudアカウントAのIDをユーザー識別子として設定します。
- 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
- [クラスター] ページで、管理するクラスターをクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- 名前空間パラメーターをkube-systemに設定します。 [ConfigMap] リストで、alibaba-log-configurationを見つけ、[操作] 列の [編集] をクリックします。
- [編集] パネルで、次の設定を行い、[OK] をクリックします。 Alibaba CloudアカウントAのIDをlog-ali-uidファイルに追加し、log-machine-groupパラメーターの値 (例: k8s-group-cc47 **** 54428) を取得します。 マシングループを作成するときに、[カスタム識別子] パラメーターの値を指定します。
複数のアカウントIDをコンマ (,) で区切ります。 例:
17 **** 397,12 **** 456
- 設定を有効にするためにlogtail-dsを再起動します。
- 左側のナビゲーションウィンドウで、 を選択します。
- DaemonSetsリストで、logtail-dsを見つけ、[操作] 列の [編集] をクリックします。
- [環境変数] セクションで、[追加] をクリックします。
- カスタム変数を追加し、任意のキーと値のペアを指定します (例: random_id: 439157431651471905349) 。
- [Update] をクリックします。
logtail-dsの詳細ページで、各コンテナーポッドが [実行中] 状態であるかどうか、および各ポッドが作成された時刻が設定を更新した時刻と同じであるかどうかを確認します。
ステップ2: マシングループを作成する
- Alibaba CloudアカウントAでLog Serviceコンソールにログインします。
- [プロジェクト] セクションで、管理するプロジェクトをクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。
- マシングループタブで、 を選択します。
- 次の図に示すように、[マシングループの作成] パネルでパラメーターを設定し、[OK] をクリックします。 [カスタム識別子] フィールドに、手順1: Alibaba CloudアカウントのIDをユーザー識別子として設定するで取得したマシングループ識別子を入力します (例: k8s-group-cc47 **** 54428) 。 その他のパラメーターについては、「カスタム識別子ベースのマシングループを作成する」をご参照ください。
- マシングループ内の各サーバーのハートビートステータスがOKかどうかを確認します。
- マシングループリストで、作成したマシングループをクリックします。
- [マシングループの設定] ページで、各ECS (Elastic Compute Service) インスタンスのステータスを表示します。 HeartbeatステータスがOKの場合、ECSインスタンスはLog Serviceに接続されています。 ステータスがFAILの場合、「Logtailマシングループにハートビートがない場合の対処方法」をご参照ください。
ステップ3: Logtail設定の作成
- Alibaba CloudアカウントAでLog Serviceコンソールにログインします。
- [データのインポート] セクションで、[Kubernetes - Object] をクリックします。
- プロジェクトとLogstoreを選択します。 [次へ] をクリックします。
- [既存のマシングループを使用] をクリックします。
- ステップ2: マシングループを作成する で作成したマシングループを選択し、[ソースサーバーグループ] セクションから [応用サーバーグループ] に移動し、[次へ] をクリックします。
- Logtail設定のパラメーターを設定し、[次へ] をクリックします。
パラメーターの詳細については、「Log Serviceコンソールを使用してDaemonSetモードでコンテナテキストログを収集する」をご参照ください。
重要デフォルトでは、ログファイルからログを収集するために使用できるLogtail設定は1つだけです。 Alibaba CloudアカウントBでのLogtailの収集プロセスは停止されません。 この場合、Alibaba CloudアカウントAのLogtail設定は有効になりません。 Alibaba CloudアカウントAのLogtail設定が有効になるようにするには、次のいずれかの方法を使用します。
Alibaba CloudアカウントBで収集プロセスを停止します。収集プロセスを停止するには、Alibaba CloudアカウントBを使用してSimple log Serviceコンソールにログインし、マシングループから既存のLogtail設定を削除します。 詳細については、「マシングループへのLogtail設定の適用」をご参照ください。
Alibaba CloudアカウントAのLogtail設定に強制収集設定を追加します。詳細については、ファイル内のログの複数のコピーを収集するにはどうすればよいですか?
Logtail設定を作成した後、Alibaba CloudアカウントBの既存のLogtail設定を削除して、重複したログ収集を防ぎます。 詳細については、「Logtail設定の削除」をご参照ください。
- データをプレビューし、インデックスを設定し、[次へ] をクリックします。 デフォルトでは、Log Serviceはフルテキストインデックス作成を有効にします。 手動モードまたは自動モードで収集されたログに基づいて、フィールドインデックスを設定できます。 詳細については、「インデックスの作成」をご参照ください。
関連する操作
- 最初のロールARNは、カスタムロールまたはAccessKeyペアに、ソースLogstoreからデータを読み取るために必要な権限を付与するために使用されます。 RAMロールに必要な権限を付与する方法については、「ソースLogstoreからデータを読み取る権限をRAMロールに付与する」をご参照ください。
- 2番目のロールARNは、変換結果を宛先Logstoreに書き込むために必要な権限をカスタムロールまたはAccessKeyペアに付与するために使用されます。 RAMロールに必要な権限を付与する方法については、「RAMロールに、Alibaba Cloudアカウント間で宛先Logstoreにデータを書き込む権限を付与する」をご参照ください。