本トピックでは、Elastic Compute Service (ECS) インスタンスからのクロスアカウントでのログ収集を行う方法について説明します。このソリューションでは、送信先アカウントの Logtail を認可して、ソースアカウントの ECS インスタンスからログを収集し、一元的な管理と分析を実現します。
背景情報
Logtail がログを収集できるよう認可するには、そのユーザーアイデンティティに、ターゲットの SLS プロジェクトを所有する Alibaba Cloud アカウントの ID を設定する必要があります。このアイデンティティが設定されていない場合、Logtail は接続を確立できず、マシングループでのハートビートの失敗や、すべてのログ収集の停止につながります。
例えば、ある e コマース企業が、Alibaba Cloud 中国 (杭州) リージョンの ECS クラスターで 2 つのアプリケーションを実行しているとします。同社は、ログ管理のために同リージョンの Simple Log Service (SLS) を使用しています。
アプリケーション A は、Alibaba Cloud アカウント A (UID: 12****456) 配下の Linux ECS クラスターにデプロイされており、そのアカウントの SLS をログ管理に使用しています。
アプリケーション B は、Alibaba Cloud アカウント B (UID: 17****397) 配下の Linux ECS クラスターにデプロイされており、そのアカウントの SLS をログ管理に使用しています。
新しいビジネス要件に対応するため、同社は両方のアプリケーションからのログを、Alibaba Cloud アカウント A (12****456) 配下の SLS プロジェクトに一元化する必要があります。各アプリケーションからのログは、同じプロジェクト内の異なる Logstore に収集されます。したがって、アプリケーション B のログ用に、新しい Logtail 収集設定、マシングループ、および Logstore を作成する必要があります。アプリケーション A のログ収集は影響を受けず、元の収集設定、マシングループ、および Logstore を引き続き使用します。

ステップ 1:ユーザーアイデンティティファイルの作成
Alibaba Cloud アカウント B の ECS サーバーにログインします。
重要ECS クラスター B 内の各 ECS サーバーでユーザーアイデンティティファイルを作成する必要があります。
次のコマンドを実行して、ユーザー ID ファイルを作成します。
ユーザーアイデンティティを Alibaba Cloud アカウント A に設定します。これにより、Alibaba Cloud アカウント A の ID を名前とするファイルが作成されます。詳細については、「ユーザーアイデンティティの設定」をご参照ください。
touch /etc/ilogtail/users/12****456
ステップ 2:カスタム識別子ベースのマシングループの作成
ECS サーバーで、マシングループ用のカスタム識別子ファイルを作成します。
重要ECS クラスター B 内の各 ECS サーバーでマシングループのカスタム識別子ファイルを作成する必要があります。
Alibaba Cloud アカウント B の ECS サーバーにログインします。
指定されたディレクトリに、/etc/ilogtail/user_defined_id ファイルを作成し、カスタム ID を追加します。
たとえば、カスタム識別子を
application_bに設定するには、ファイルにapplication_bを入力して保存します。 ファイルパスの詳細については、「カスタム識別子ベースのマシン グループを作成する」をご参照ください。
SLS コンソールでマシン グループを作成します。
Alibaba Cloud アカウント A でSimple Log Service コンソールにログオンします。
[プロジェクトリスト] エリアで、目的のプロジェクトをクリックします。
左側のナビゲーションペインで、 を選択します。
マシングループ の右側で、 をクリックします。
マシングループの作成 ダイアログボックスで、パラメーターを設定して、OK をクリックします。
ユーザー定義 ID をステップ 1 で設定した値に設定します。その他のパラメーターの詳細については、「カスタム ID を使用してマシン グループを作成する」をご参照ください。[名前] を
group-bに設定し、[マシン グループ ID] に [カスタム ID] を選択して、[カスタム ID] にapplication_bを入力します。
マシングループ内のサーバーのハートビートステータスが正常であることを確認します。
マシン グループ リストで、宛先マシン グループをクリックします。
サーバグループ設定 ページで、同じカスタム識別子を使用する ECS インスタンスを表示し、そのハートビートステータスを確認できます。
ハートビート ステータスが OK の場合、ECS インスタンスが Simple Log Service に接続されていることを示します。ステータスが FAIL の場合は、「Logtail マシングループのハートビートのトラブルシューティング」をご参照ください。マシングループ内のすべてのマシンのハートビートステータスが OK であることを確認します。これは、すべてのマシンが Simple Log Service に正常に接続されていることを示します。
ステップ 3:ログの収集
Alibaba Cloud アカウント A を使用して、Simple Log Service コンソールにログインします。
クイックオンボーディング をクリックします。
[データ統合] セクションは、Simple Log Service コンソールのホームページの右下隅にあり、[データインポート] ボタンがあります。
データのインポート ダイアログボックスで、[正規表現 - テキストログ] を選択します。
データのインポート ウィザードで、インポート先プロジェクトと Logstore を選択し、次へ をクリックします。
サーバグループ設定 を構成します。
使用シナリオ を ホストシナリオ に設定します。
インストール環境 を [ECS] に設定します。
ステップ 2 で作成したマシングループを選択します。 マシングループを ソースサーバーグループ から 適用されたサーバーグループ に移動し、次へ をクリックします。
Logtail の収集設定を作成して、次へをクリックします。
パラメーターの詳細については、「フル正規表現モードでのログ収集」をご参照ください。
重要デフォルトでは、1 つのファイルに一致できる Logtail 収集設定は 1 つだけです。アカウント B の収集設定はまだアクティブであるため、アカウント A の新しい設定は有効になりません。次のいずれかの方法を使用して、アカウント A の設定を有効にすることができます。
アカウント B のログ収集を停止します。これを行うには、アカウント B で SLS コンソールにログインし、対象のマシングループから Logtail 収集設定を削除します。詳細については、「指定したマシングループへの Logtail 設定の適用」をご参照ください。
アカウント A に強制収集設定を追加します。詳細については、「1 つのファイルから複数回ログを収集する方法」をご参照ください。
Logtail 収集設定を作成した後、重複したログ収集を防ぐために、Alibaba Cloud アカウント B の元の設定を削除します。詳細については、「Logtail 設定の削除」をご参照ください。
Logtail 収集設定フォームで、[設定名] を
application_bに、[ログパス] を/tmp/**/*.logに設定し、[モード] で [フル正規表現モード] を選択し、[単一行] をオンにします。データをプレビューしてインデックスを設定し、次へ をクリックします。
SLS では、デフォルトでフルテキストインデックス機能が有効です。収集されたログに基づいて、手動または自動でフィールドインデックスを設定することもできます。詳細については、「インデックスの作成」をご参照ください。
関連操作
Alibaba Cloud アカウント B から現在の Logstore に履歴データを移行する必要がある場合は、元の Logstore でデータ変換ジョブを作成して、データを現在の Logstore にコピーできます。詳細については、「Logstore データのコピー」をご参照ください。
アカウント間でデータを処理する場合、認可にはカスタムロールを使用する必要があります。この例では、カスタムロールを使用します。
1 つ目の Role ARN を使用すると、データ変換ジョブがこのロールを引き受け、ソース Logstore からデータを読み取ることができます。ロール権限の設定方法の詳細については、「RAM ロールにソース Logstore への読み取り専用アクセス権を付与する」をご参照ください。
2 つ目の Role ARN を使用すると、データ変換ジョブがこのロールを引き受け、変換されたデータを送信先 Logstore に書き込むことができます。ロール権限の設定方法の詳細については、「RAM ロールに送信先 Logstore へのデータ書き込み権限を付与する (クロスアカウント)」をご参照ください。
> マシングループの作成