このトピックでは、Alibaba Cloudアカウント全体でcontainer Service for Kubernetes (ACK) からコンテナログを収集する方法について説明します。

このタスクについて

たとえば、eコマース企業には、中国 (杭州) リージョンのACKクラスターにデプロイされた2つのeコマースアプリケーションがあります。 企業は、中国 (杭州) リージョンにある2つのLog Serviceプロジェクトを使用してログを管理します。
  • アプリケーションAはAlibaba CloudアカウントA (12 **** 456) に属するACKクラスターにデプロイされ、ログを管理するアカウントに対してLog Serviceが有効化されます。
  • アプリケーションBはAlibaba CloudアカウントB (17 **** 397) に属するACKクラスターにデプロイされ、ログを管理するアカウントに対してLog Serviceが有効化されます。
企業は、Alibaba CloudアカウントA (12 **** 456) に対して有効化されているLog Serviceを使用して、2つのアプリケーションのログを収集し、同じプロジェクトの2つのログストアにログを保存したいと考えています。 この場合、Logtail設定、マシングループ、およびLogstoreを作成して、アプリケーションBのログを収集して保存する必要があります。アプリケーションa用に設定されているLogtail設定、マシングループ、およびLogstoreは変更されません。 アーキテクチャ

手順1: Alibaba CloudアカウントのIDをユーザー識別子として設定する

  1. Alibaba CloudアカウントBでACKコンソールにログインします。
  2. Alibaba CloudアカウントAのIDをユーザー識別子として設定します。
    1. 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
    2. [クラスター] ページで、管理するクラスターをクリックします。
    3. 左側のナビゲーションウィンドウで、[設定] > [設定] を選択します。
    4. 名前空間パラメーターをkube-systemに設定します。 [ConfigMap] リストで、alibaba-log-configurationを見つけ、[操作] 列の [編集] をクリックします。
    5. [編集] パネルで、次の設定を行い、[OK] をクリックします。
      Alibaba CloudアカウントAのIDをlog-ali-uidファイルに追加し、log-machine-groupパラメーターの値 (例: k8s-group-cc47 **** 54428) を取得します。 マシングループを作成するときに、[カスタム識別子] パラメーターの値を指定します。

      複数のアカウントIDをコンマ (,) で区切ります。 例: 17 **** 397,12 **** 456

      パラメーター
  3. 設定を有効にするためにlogtail-dsを再起動します。
    1. 左側のナビゲーションウィンドウで、[ワークロード] > [DaemonSets] を選択します。
    2. DaemonSetsリストで、logtail-dsを見つけ、[操作] 列の [編集] をクリックします。
    3. [環境変数] セクションで、[追加] をクリックします。
    4. カスタム変数を追加し、任意のキーと値のペアを指定します (例: random_id: 439157431651471905349) 。
      logtail-ds
    5. [Update] をクリックします。

    logtail-dsの詳細ページで、各コンテナーポッドが [実行中] 状態であるかどうか、および各ポッドが作成された時刻が設定を更新した時刻と同じであるかどうかを確認します。

    再起動logtail-ds

ステップ2: マシングループを作成する

  1. Alibaba CloudアカウントAでLog Serviceコンソールにログインします。
  2. [プロジェクト] セクションで、管理するプロジェクトをクリックします。
  3. 左側のナビゲーションウィンドウで、[リソース] > [マシングループ] を選択します。
  4. マシングループタブで、マシングループ > マシングループの作成を選択します。
  5. 次の図に示すように、[マシングループの作成] パネルでパラメーターを設定し、[OK] をクリックします。
    [カスタム識別子] フィールドに、手順1: Alibaba CloudアカウントのIDをユーザー識別子として設定するで取得したマシングループ識別子を入力します (例: k8s-group-cc47 **** 54428) 。 その他のパラメーターについては、「カスタム識別子ベースのマシングループを作成する」をご参照ください。 マシングループ
  6. マシングループ内の各サーバーのハートビートステータスがOKかどうかを確認します。
    1. マシングループリストで、作成したマシングループをクリックします。
    2. [マシングループの設定] ページで、各ECS (Elastic Compute Service) インスタンスのステータスを表示します。
      HeartbeatステータスがOKの場合、ECSインスタンスはLog Serviceに接続されています。 ステータスがFAILの場合、「Logtailマシングループにハートビートがない場合の対処方法」をご参照ください。 マシングループのハートビートステータス

ステップ3: Logtail設定の作成

  1. Alibaba CloudアカウントAでLog Serviceコンソールにログインします。
  2. [データのインポート] セクションで、[Kubernetes - Object] をクリックします。
  3. プロジェクトとLogstoreを選択します。 [次へ] をクリックします。
  4. [既存のマシングループを使用] をクリックします。
  5. ステップ2: マシングループを作成する で作成したマシングループを選択し、[ソースサーバーグループ] セクションから [応用サーバーグループ] に移動し、[次へ] をクリックします。
  6. Logtail設定のパラメーターを設定し、[次へ] をクリックします。

    パラメーターの詳細については、「Log Serviceコンソールを使用してDaemonSetモードでコンテナテキストログを収集する」をご参照ください。

    重要
    • デフォルトでは、各ログファイルを収集するために使用できるLogtail設定は1つだけです。 Alibaba CloudアカウントBでのLogtailの収集プロセスは停止されません。 この場合、Alibaba CloudアカウントAのLogtail設定は有効になりません。 Alibaba CloudアカウントAのLogtail設定が有効になるようにするには、次のいずれかの方法を使用します。
    • Logtail設定の作成後、Alibaba CloudアカウントBの元のLogtail設定を削除して、ログが繰り返し収集されないようにします。 詳細については、「Logtail 設定の削除」をご参照ください。
  7. データをプレビューし、インデックスを設定し、[次へ] をクリックします。
    デフォルトでは、Log Serviceはフルテキストインデックス作成を有効にします。 手動モードまたは自動モードで収集されたログに基づいて、フィールドインデックスを設定できます。 詳細については、「インデックスの作成」をご参照ください。

関連する操作

Alibaba CloudアカウントBから現在のLogstoreに履歴データを移行する場合は、元のLogstoreでデータ変換ジョブを作成してから、現在のLogstoreにデータをレプリケートできます。 詳細については、「Logstoreからのデータの複製」をご参照ください。
重要
Alibaba Cloudアカウント間でデータを変換するデータ変換ジョブを作成する場合、カスタムロールまたはAccessKeyペアを使用して、ジョブに必要な権限を付与する必要があります。 この例では、カスタムロールが使用されています。
  • 最初のロールARNは、カスタムロールまたはAccessKeyペアに、ソースLogstoreからデータを読み取るために必要な権限を付与するために使用されます。 RAMロールに必要な権限を付与する方法については、「t1915386.html#section_wms_rsm_fgd」をご参照ください。
  • 2番目のロールARNは、変換結果を宛先Logstoreに書き込むために必要な権限をカスタムロールまたはAccessKeyペアに付与するために使用されます。 RAMロールに必要な権限を付与する方法については、「t1915386.html#section_5y6_5dk_etx」をご参照ください。