本トピックでは、Elastic Algorithm Service (EAS) のサービスログを Simple Log Service (SLS) に収集するための 3 つの方法と、それぞれの具体的な手順を解説します。ユースケースに最も適した方法を選択してください。
概要
EAS は、サービスログを SLS に収集するための 3 つの方法をサポートしています。以下の表では、選択の参考になるように各方法を比較しています。
|
基準 |
EAS Insights タブ |
CMS 2.0 統合センター |
SLS Logtail の手動設定 |
|
ユースケース |
単一サービスのログのクイックオンボーディング |
複数サービスのログのバッチオンボーディング |
ファイルログ収集やカスタム解析などの高度なシナリオ |
|
ログタイプ |
標準出力ログのみ |
標準出力ログのみ |
標準出力ログ + ファイルログ |
|
複雑さ |
最も低い:EAS のサービス詳細ページでワンクリックで有効化できます。 |
中程度:CMS 2.0 コンソールで設定します。 |
最も高い:マシン グループの手動作成と Logtail の設定が必要です。 |
シナリオ 1: 単一サービスのクイックオンボーディング (EAS Insights タブ)
単一の EAS サービスの標準出力ログを迅速にオンボーディングするには、サービス詳細ページの [Insights] タブに移動して機能を有効化します。これにより、ログは自動的に SLS に収集されます。
-
PAI コンソールにログインし、ページ上部で対象のリージョンを選択します。
-
左側のナビゲーションペインで、Elastic Algorithm Service (EAS) を選択します。複数のワークスペースがある場合は、目的のワークスペースを選択します。
-
オンライン推論サービス タブで、目的のサービス名をクリックしてサービス詳細ページに移動します。
-
サービス詳細ページで、インサイト タブをクリックします。
-
リージョンがオンボーディングされているかどうかによって手順が異なります:
-
このリージョンで初めての場合:ステップ 2 の [Initialize Resources] で、[Enable Insights] をクリックします。リソースの初期化とデータのオンボーディングが自動的に完了されます。
-
リージョンが既にオンボーディング済みの場合:現在のサービスインスタンスは自動的にオンボーディングされます。追加の操作は不要です。
-
[Insights] タブを介してオンボーディングされたサービスは、CMS 2.0 の統合管理で 単一インスタンスモード を使用します。このモードでは、現在のサービスのログのみが収集されます。一度に複数のサービスをオンボーディングするには、シナリオ 2 をご参照ください。
シナリオ 2: 複数サービスのバッチオンボーディング (CMS 2.0 統合センター)
一度にリージョン内の複数の EAS サービスの標準出力ログをオンボーディングするには、CMS 2.0 の統合センターを使用します。
-
CMS 2.0 コンソールにログインします。 EAS サービスと同じリージョンにあるワークスペースを選択し、左側のナビゲーションペインで[統合センター]をクリックします。
同じリージョンにワークスペースが存在しない場合は、左側メニューで CMS 2.0 の横にある戻る矢印をクリックしてワークスペース管理に移動し、ワークスペースを作成します。
-
[Onboarding Center] ページで、検索ボックスに Platform for AI (PAI-EAS) と入力し、検索結果のカードをクリックします。
-
[Start Onboarding] パネルで、次の設定を構成します:
-
アカウント:現在のアカウントまたは別のアカウントを選択します。
-
ポリシー名:既存のポリシーを選択するか、[Create] をクリックして新しいポリシーを作成します。
-
リージョン:読み取り専用です。デフォルトでワークスペースのリージョンに設定されます。
-
エンティティ:[All Entities]、[By Resource Group]、[By Tags]、または [Manual Selection] のいずれかのオプションを選択します。
-
-
[Determine] をクリックします。[Addon Config] セクションで、次の設定を構成します:
-
名前:オプション。名前は自動的に生成されます。オンボーディング設定を区別するために、カスタム名を入力することを推奨します。
-
アクセスするデータの選択:[PAI-EAS Service Logs] を選択します。
-
-
[Determine] をクリックします。[Integration Management] タブに切り替えて、オンボーディング設定を表示します。[Actions] 列で、データソースをクリックして、対応する SLS の Logstore 情報を表示します。
シナリオ 3: カスタムログ収集 (SLS Logtail の手動設定)
ファイルログの収集、特定のプロジェクトと Logstore へのログ転送、またはカスタムログ解析や OSS へのログ転送などの高度な操作を実行するには、SLS で Logtail を手動で設定します。
手順はリソースタイプによって異なります。お使いのリソースタイプに一致する以下のセクションを選択してください:
-
パブリックリソースグループ:カスタム ID を使用してマシン グループを手動で作成し、Logtail を手動で設定する必要があります。
-
専用リソースグループ:SLS を設定すると、システムが自動的にマシン グループと Logtail を作成します。カスタムログを収集する必要がある場合は、手動で設定します。
-
リソースクォータ:パブリックリソースグループで使用されるものとは異なるカスタム ID を使用してマシン グループを手動で作成し、Logtail を手動で設定する必要があります。
前提条件
Simple Log Service (SLS) が有効化され、プロジェクトと Logstore が作成されていること。詳細については、「プロジェクトの管理」および「基本的な Logstore の作成」をご参照ください。
パブリックリソースグループ
ステップ 1: マシン グループの作成
パブリックリソースグループにデプロイされたサービスの場合、マシン グループを手動で作成する必要があります。
-
SLS コンソールにログインします。プロジェクトリストで、対象のプロジェクトをクリックします。
-
左側のナビゲーションペインで、 > マシングループ を選択します。
-
[マシン グループ] の横にある マシングループの作成 をクリックします。
-
[Create Machine Group] ページで、カスタム ID を使用してマシン グループを作成します:
-
マシングループ識別子: ユーザー定義 ID を選択します。
-
[Machine Group Topic]:このフィールドは空のままにします。
-
名前と [ユーザー定義 ID]:両方のフィールドに
eas-log-group-{region_id}を入力し、{region_id}をサービスがデプロイされているリージョン ID に置き換えます。たとえば、サービスが張家口リージョンにデプロイされている場合は、eas-log-group-cn-zhangjiakouと入力します。
-
-
パブリックリソースグループにサービスをデプロイした後、マシングループ ページでインスタンスのハートビートステータスを確認します。[OK] は、マシングループが正常に動作していることを示します。
説明サービスがデプロイされていない場合、インスタンスリストは空です。
ステップ 2: Logtail の設定
収集したいログの種類に基づいて Logtail を設定します。以下のタブでは、コンテナの標準出力ログとコンテナのファイルログを収集する方法について説明します。より複雑な設定については、「ログ収集ルールの作成と設定」をご参照ください。
コンテナの標準出力ログの収集
-
SLS コンソールにログインします。
-
右側の [Quick Data Import] セクションで [Import Data] をクリックし、[K8S - Stdout and Stderr - Old Version] を選択します。
-
ターゲットのプロジェクトと Logstore を選択し、[次へ] をクリックします。
-
[既存のマシングループを使用] をクリックし、ステップ 1 でパブリックリソースグループ用に作成したマシングループを選択し、次に [次へ] をクリックします。
-
(任意) カスタムイメージでサービスをデプロイし、EAS エンジンログを除外する場合は、入力設定 セクションで [コンテナフィルタリング] をオンにします。 次に、[コンテナラベルブラックリスト] を追加し、ラベル名 を
io.kubernetes.container.nameに、ラベル値 をeasworkerに設定します。 -
設定が完了するまで[次へ] をクリックします。
コンテナのファイルログの収集
-
右側の [Quick Data Import] セクションで [Import Data] をクリックし、[Kubernetes - File] を選択します。
-
対象のプロジェクトと Logstore を選択し、[次へ] をクリックします。
-
ステップ 1 でパブリックリソースグループ用に作成したマシングループを選択し、[次へ] をクリックします。
-
入力設定 セクションで、[ファイルパス] (収集するファイルのパス) を設定し、次に [次へ] をクリックします。
-
設定が完了するまで、[次へ] をクリックします。
リソースクォータ
ステップ 1: マシン グループの作成
手順はパブリックリソースグループの場合と同じですが、カスタム ID が異なります。
リソースクォータのカスタム ID は eas-log-group-{region_id}-for-resource-quota です。 {region_id} を、サービスがデプロイされているリージョン ID に置き換えます。たとえば、サービスが張家口リージョンにデプロイされている場合は、eas-log-group-cn-zhangjiakou-for-resource-quota と入力します。
ステップ 2: Logtail の設定
収集したいログの種類に基づいて Logtail を設定します。以下のタブでは、コンテナの標準出力ログとコンテナのファイルログを収集する方法について説明します。より複雑な設定については、「ホストからテキストログを継続的に収集する」をご参照ください。
コンテナの標準出力ログの収集
-
SLS コンソールにログインします。
-
右側の [クイックデータインポート] セクションで、 [データをインポート] をクリックし、[単一行 - テキストログ] を選択します。
説明要件に応じてインポート方法を変更できます。たとえば、収集したログを正規表現でマッチングするには [Regex - Text Logs] を選択します。ログを JSON 形式で解析するには [JSON - Text Logs] を選択します。作成後に設定を変更することもできます。
-
対象のプロジェクトと Logstore を選択し、[次へ] をクリックします。
-
マシングループ設定を次のように設定し、[次へ] をクリックします:
-
[使用シナリオ]:ホストシナリオ を選択します。
-
[インストール環境]:[ECS] を選択します。
-
[マシン グループ]:ステップ 1 でリソースクォータ用に作成したマシン グループを選択します。
-
-
Logtail 設定で、次の設定を構成します:
-
ファイルパス を
/var/log/containers-stdout/{container_name}/*.logに設定します。{container_name}をコンテナ名に置き換えます。たとえば、すべてのカスタムコンテナからログを収集するには、/var/log/containers-stdout/worker*/*.logを入力します。
-
-
設定が完了するまで次へをクリックします。
コンテナのファイルログの収集
-
サービスをデプロイする際に、サービス設定 JSON でログディレクトリを指定します:
{ "cloud": { "logging": { "paths": [ "/home/admin/logs", "/home/workspace/logs", "/var/log" ] }, // 他の設定は省略 "networking": { "security_group_id": "sg-xxxxx", "vswitch_id": "vsw-xxxxx", "vpc_id": "vpc-xxxxx", } } } -
右側の [クイックデータインポート] セクションで、 [データをインポート]をクリックし、[単一行 - テキストログ] を選択します。
-
次のようにマシン グループを設定し、[次へ] をクリックします。
-
[使用シナリオ]:ホストシナリオ を選択します。
-
[インストール環境]:[ECS] を選択します。
-
[マシン グループ]:ステップ 1 でリソースクォータ用に作成したマシン グループを選択します。
-
-
Logtail 設定で、次の設定を構成します:
-
タイプ:[Text Log Collection] を選択します。
-
ファイルパス:収集するログファイルのパスを入力します。パスは、サービス設定 JSON で宣言されているパスのいずれかである必要があります。例:
/home/admin/logs/*.log。 -
最大ディレクトリ監視深度:
0に設定します。
-
-
設定が完了するまで[次へ]をクリックします。
専用リソースグループ
ステップ 1: マシン グループの作成
専用リソースグループの場合、マシン グループを手動で作成する必要はありません。PAI コンソールで SLS を設定すると、次のリソースが自動的に作成されます:
-
マシングループは、SLS に
eas-sls-{resource-id}-mgという名前形式で作成されます (resource-id はリソースグループ ID です)。 -
指定された Logstore に、EAS フレームワークログを収集するための Logtail 設定が作成されます。
次の手順を実行します:
-
PAI コンソールにログインし、ページ上部で対象のリージョンを選択します。
-
左側のナビゲーションペインで、を選択します。
-
タブで、リソースグループ名をクリックすると、専用リソースグループの詳細ページに移動します。
-
専用リソースグループの詳細ページで、SLS の設定 をクリックします。
-
SLS 設定の書き込み ダイアログボックスで、[SLS プロジェクト] と [Logstore] を選択し、OK をクリックします。
ステップ 2: Logtail の設定
専用リソースグループに対して SLS を設定すると、EAS フレームワークログを収集するための Logtail 設定が自動的に作成されます。
カスタムログを収集するには、「パブリックリソースグループ - Logtail の設定」をご参照ください。マシン グループの選択ステップに達したら、ステップ 1 で専用リソースグループ用に自動的に作成されたマシン グループを選択します。
よくある質問
Q:PAI-EAS サービスの SLS ログ収集を無効にするにはどうすればよいですか?
ログ収集を無効にするには、オンボーディング方法に応じた手順を実行します:
-
[Insights] タブまたは CMS 2.0 の統合センターを介してオンボーディングした場合 (シナリオ 1 またはシナリオ 2):CMS 2.0 コンソールにログインします。[Integration Management] でオンボーディング設定を見つけて削除します。
-
専用リソースグループ (シナリオ 3):PAI コンソールで専用リソースグループの詳細ページに移動し、[Configure SLS] をクリックして、ドロップダウンリストから [Disable SLS] を選択します。
-
パブリックリソースグループまたはリソースクォータ (シナリオ 3):SLS コンソールにログインし、対応する Logtail 設定を削除します。
Q:SLS にログを書き込んでいる PAI-EAS サービスと、そのログ量を確認するにはどうすればよいですか?
対象の Logstore のクエリと分析ページで、次のクエリ文を実行します:
* | select service_name, count(1) as log_count where service_name != '' group by service_name order by log_count desc
このステートメントは、サービス名 (service_name) ごとにログ量 (log_count) を集計して結果を降順でソートするため、どのサービスがログを書き込んでいるかを特定し、それらの収集を一括で管理または無効化するのに役立ちます。このセクションの「PAI-EAS サービスの SLS ログ収集を無効にする方法」という項目と併用することで、まずサービスを特定し、次に収集を無効化できます。
