このトピックでは、Alibaba Cloudアカウント全体のサーバーからログを収集する方法について説明します。
背景情報
Logtailを使用してサーバーからログを収集する場合は、サーバーにLogtailをインストールし、Simple Log Serviceが属するAlibaba CloudアカウントのIDをサーバーのユーザー識別子として設定する必要があります。 これにより、Alibaba CloudアカウントはLogtailを使用してサーバーからログを収集できます。 サーバーのユーザー識別子を設定しないと、Simple Log Serviceはサーバーのハートビートを受信できず、LogtailはサーバーからSimple Log Serviceへのログの収集に失敗します。
たとえば、eコマース企業には、中国 (杭州) リージョンのElastic Compute Service (ECS) クラスターにデプロイされた2つのeコマースアプリケーションがあります。 同社は、中国 (杭州) リージョンにある2つのSimple Log Serviceプロジェクトを使用してログを管理しています。
アプリケーションAは、Alibaba Cloudアカウントaに属するLinux ECSクラスターにデプロイされ、Alibaba CloudアカウントAに属するSimple Log Serviceプロジェクトを使用してログを管理します。 Alibaba CloudアカウントAのIDは12 **** 456です。 Alibaba CloudアカウントAに属するLinux ECSクラスターは、ECSクラスターAと呼ばれます。
アプリケーションBは、Alibaba CloudアカウントBに属するLinux ECSクラスターにデプロイされ、Alibaba CloudアカウントBに属するSimple Log Serviceプロジェクトを使用してログを管理します。 Alibaba CloudアカウントBのIDは17 **** 397です。 Alibaba CloudアカウントBに属するLinux ECSクラスターは、ECSクラスターBと呼ばれます。
同社は、ビジネス開発要件を満たすために、Alibaba Cloudアカウントaに属するプロジェクトの2つのログストアに2つのアプリケーションのログを収集する予定です。 この場合、Logtail設定、マシングループ、およびLogstoreを作成して、アプリケーションBのログを収集して保存する必要があります。アプリケーションa用に設定されているLogtail設定、マシングループ、およびLogstoreは変更されません。
手順1: ユーザー識別子ファイルを作成する
Alibaba CloudアカウントBに属するECSインスタンスにログインします。
重要ECSクラスターBの各ECSインスタンスにユーザー識別子ファイルを作成する必要があります。
次のコマンドを実行して、ユーザー識別子ファイルを作成します。
この例では、Alibaba CloudアカウントaのIDに基づいて名前が付けられたファイルが作成されます。 IDは、ユーザ識別子として使用される。 詳細については、「ユーザー識別子の設定」をご参照ください。
touch /etc/ilogtail/users/12****456
ステップ2: カスタム識別子ベースのマシングループを作成する
ECSインスタンスに作成するマシングループのカスタム識別子ファイルを作成します。
重要ECSクラスターBの各ECSインスタンスにカスタム識別子ファイルを作成する必要があります。
Alibaba CloudアカウントBに属するECSインスタンスにログインします。
という名前のファイルを作成します。/etc/ilogtail/user_defined_idを /etc/ilogtail /ディレクトリに格納し、ファイルにカスタム識別子を指定します。
たとえば、カスタム識別子を
application_b
に設定する場合は、ファイルでapplication_b
を指定してファイルを保存します。 ファイルパスの詳細については、「カスタム識別子ベースのマシングループの作成」をご参照ください。
Simple Log Serviceコンソールでマシングループを作成します。
Alibaba CloudアカウントAを使用して、Simple Log Serviceコンソールにログインします。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
左側のナビゲーションウィンドウで、 .
の右へマシングループ、選択 .
では、マシングループの作成パネル、次のパラメータを設定し、OK.
[カスタム識別子] フィールドに、1で指定したカスタム識別子を入力します。 その他のパラメーターの詳細については、「カスタム識別子ベースのマシングループの作成」をご参照ください。
、マシングループ内の各ECSインスタンスのハートビートステータスがOKかどうかを確認します。
マシングループリストで、作成されたマシングループをクリックします。
On theマシングループの設定ページで、同じカスタム識別子を使用するECSインスタンスのリストと、各ECSインスタンスのハートビートステータスを表示します。
HeartbeatがOKの場合、ECSインスタンスはSimple Log Serviceに接続されています。 HeartbeatがFAILの場合は、「ホスト環境のLogtailマシングループに関連するエラーのトラブルシューティング方法」をご参照ください。
ステップ3: ログを収集する
Alibaba CloudアカウントAを使用して、Simple Log Serviceコンソールにログインします。
[データのインポート] をクリックします。
では、データのインポートダイアログボックスで、正規表現-テキストログ.
では、Logstoreの選択ステップで、管理するプロジェクトとLogstoreを選択し、次へ.
では、マシングループの設定ステップ、パラメータを設定します。
[シナリオ] で [サーバー] を選択します。
[インストール環境] で [ECS] を選択します。
で作成されたマシングループを選択します。ステップ2からマシングループを移動します。ソースマシングループセクションに応用サーバーグループセクションをクリックし、次へ.
Logtail設定を作成し、次へ.
パラメーターの詳細については、「完全正規表現モードでのログの収集」をご参照ください。
重要デフォルトでは、ログファイルからログを収集するために使用できる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設定の削除」をご参照ください。
データをプレビューし、インデックスを設定し、次へ.
デフォルトでは、Simple Log Serviceでフルテキストインデックスが有効になっています。 収集したログに基づいて、手動モードまたは自動モードでフィールドインデックスを設定できます。 詳細については、「インデックスの作成」をご参照ください。
関連する API 操作
Alibaba CloudアカウントBの履歴データを別のLogstoreから現在のLogstoreに移行する場合は、別のLogstoreでデータ変換ジョブを作成し、現在のLogstoreにデータをレプリケートできます。 詳細については、「Logstoreからのデータの複製」をご参照ください。
Alibaba Cloudアカウント間でデータを変換するデータ変換ジョブを作成する場合、カスタムロールまたはAccessKeyペアを使用して、ジョブに必要な権限を付与する必要があります。 この例では、カスタムロールが使用されています。
最初のRole ARNは、ソースLogstoreからデータを読み取る権限をジョブに付与するために使用されます。 詳細については、「ソースLogstoreからデータを読み取る権限をRAMロールに付与する」をご参照ください。
2番目のロールARNは、データ変換結果を宛先Logstoreに書き込む権限をジョブに付与するために使用されます。 詳細については、「Alibaba Cloudアカウント間で宛先Logstoreにデータを書き込む権限をRAMロールに付与する」をご参照ください。