このトピックでは、Elastic Algorithm Service (EAS) のサービスログを Simple Log Service (SLS) に収集するための 3 つの方法について説明し、それぞれの方法の手順を解説します。ユースケースに最も適した方法を選択してください。
概要
EAS は、サービスログを SLS に収集するための 3 つの方法をサポートしています。次の表は、選択の参考になるように各方法を比較したものです。
基準 | EAS の [Insights] タブ | CMS 2.0 Integration Center | SLS Logtail の手動設定 |
ユースケース | 単一サービスのログのクイックオンボーディング | 複数サービスのログの一括オンボーディング | ファイルログ収集やカスタムパースなどの高度なシナリオ |
ログタイプ | 標準出力ログのみ | 標準出力ログのみ | 標準出力ログ + ファイルログ |
複雑さ | 最も低い — EAS サービス詳細ページでワンクリックで有効化 | 中程度 — CMS 2.0 コンソールで設定 | 最も高い — マシン グループの手動作成と Logtail の設定が必要 |
シナリオ 1: 単一サービスのクイックオンボーディング ([Insights] タブ)
単一の EAS サービスの標準出力ログを迅速にオンボーディングするには、サービス詳細ページの [Insights] タブに移動し、この機能を有効にします。これにより、ログは自動的に SLS に収集されます。
Platform for AI (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 サービスと同じリージョンにあるワークスペースを選択し、ナビゲーションペインで [Integration Center] をクリックします。
同じリージョンにワークスペースが存在しない場合は、ナビゲーションペインで CMS 2.0 の横にある戻る矢印をクリックしてワークスペース管理に移動し、ワークスペースを作成します。
統合センターページで、検索ボックスに [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] タブに切り替えて、オンボーディング設定を表示します。[操作] 列で、データソースをクリックして、対応する SLS Logstore 情報を表示します。
シナリオ 3: カスタムログ収集 (SLS Logtail の手動設定)
ファイルログの収集、特定のプロジェクトと Logstore へのログ転送、またはカスタムログパースや OSS へのログ転送などの高度な操作を実行するには、SLS で Logtail を手動で設定します。
手順はリソースタイプによって異なります。お使いのリソースタイプに対応する以下のセクションを参照してください:
パブリックリソースグループ:カスタム ID を使用して手動でマシン グループを作成し、Logtail を手動で設定する必要があります。
専用リソースグループ:SLS を設定すると、システムが自動的にマシン グループと Logtail を作成します。カスタムログを収集する必要がある場合は、手動で設定します。
リソースクォータ:パブリックリソースグループで使用されるものとは異なるカスタム ID を使用して手動でマシン グループを作成し、Logtail を手動で設定する必要があります。
前提条件
Simple Log Service (SLS) が有効化され、プロジェクトと Logstore が作成済みであること。詳細については、「プロジェクトの管理」および「基本的な Logstore の作成」をご参照ください。
パブリックリソースグループ
ステップ 1: マシン グループの作成
パブリックリソースグループにデプロイされたサービスについては、手動でマシン グループを作成する必要があります。
SLS コンソールにログインします。プロジェクトリストで、対象のプロジェクトをクリックします。
ナビゲーションペインで、マシングループ を選択します。
[Machine Groups] の横にある マシングループの作成 をクリックします。
[Create Machine Group] ページで、カスタム ID を使用してマシン グループを作成します:
マシン グループ ID:ユーザー定義 ID を選択します。
マシン グループトピック:このフィールドは空のままにします。
名前[ユーザー定義 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 を選択し、[Next] をクリックします。
[Use Existing Machine Groups] をクリックし、ステップ 1 でパブリックリソースグループ用に作成したマシン グループを選択して、[Next] をクリックします。
(オプション) カスタムイメージでサービスをデプロイし、EAS エンジンログを除外したい場合は、入力設定 セクションで [Container Filtering] をオンにします。次に、[container label blacklist] を追加します:[label name] を
io.kubernetes.container.nameに、[label value] をeasworkerに設定します。設定が完了するまで [Next] をクリックします。
コンテナのファイルログの収集
右側の [Quick Data Import] セクションで、 [Import Data] をクリックし、[Kubernetes - File] を選択します。
対象のプロジェクトと Logstore を選択し、[Next] をクリックします。
ステップ 1 でパブリックリソースグループ用に作成したマシン グループを選択し、[Next] をクリックします。
入力設定 セクションで、[File Path] (収集するファイルのパス) を設定し、[Next] をクリックします。
設定が完了するまで [Next] をクリックします。
リソースクォータ
ステップ 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 コンソールにログインします。
右側の [Quick Data Import] セクションで、 [Import Data] をクリックし、[Single Line - Text Logs] を選択します。
説明要件に応じてインポート方法を変更できます。たとえば、正規表現を使用して収集したログを照合するには、[Regex - Text Logs] を選択します。JSON 形式のログをパースするには、[JSON - Text Logs] を選択します。設定は作成後に変更することもできます。
対象のプロジェクトと Logstore を選択し、[Next] をクリックします。
マシン グループを次のように設定し、[Next] をクリックします:
[使用シナリオ]:ホストシナリオ を選択します。
インストール環境:[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", } } }右側の [Quick Data Import] セクションで、 [Import Data] をクリックし、[Single Line - Text Logs] を選択します。
マシン グループを次のように設定し、[Next] をクリックします:
[使用シナリオ]:ホストシナリオ を選択します。
インストール環境:[ECS] を選択します。
マシン グループ:ステップ 1 でリソースクォータ用に作成したマシン グループを選択します。
Logtail 設定で、次の項目を設定します:
タイプ:[Text Log Collection] を選択します。
ファイルパス:収集するログファイルのパスを入力します。パスは、サービス設定 JSON で宣言されたパスのいずれかである必要があります。例:
/home/admin/logs/*.log。最大ディレクトリ監視深度:このパラメーターを
0に設定します。
設定が完了するまで [Next] をクリックします。
専用リソースグループ
ステップ 1: マシン グループの作成
専用リソースグループの場合、マシン グループを手動で作成する必要はありません。PAI コンソールで SLS を設定すると、次のリソースが自動的に作成されます:
SLS に
eas-sls-{resource-id}-mg(resource-id はリソースグループ ID) という名前形式でマシン グループが作成されます。指定された Logstore に、EAS フレームワークログを収集するための Logtail 設定が作成されます。
次の手順を実行します:
PAI コンソールにログインし、ページ上部で対象のリージョンを選択します。
ナビゲーションペインで、 を選択します。
タブで、リソースグループの名前をクリックして、専用リソースグループの詳細ページに移動します。
専用リソースグループの詳細ページで、SLS の設定 をクリックします。
SLS 設定の書き込み ダイアログボックスで、[SLS Project] と [Logstore] を選択し、OK をクリックします。
ステップ 2: Logtail の設定
専用リソースグループに SLS を設定すると、EAS フレームワークログを収集するための Logtail 設定が自動的に作成されます。
カスタムログを収集するには、「パブリックリソースグループ - Logtail の設定」をご参照ください。マシン グループの選択手順では、ステップ 1 で専用リソースグループ用に自動的に作成されたマシン グループを選択します。
よくある質問
Q: PAI-EAS サービスの SLS ログ収集を無効にするにはどうすればよいですか?
ログ収集を無効にするには、オンボーディングに使用した方法に対応する手順を実行します:
[Insights] タブまたは CMS 2.0 統合センターを介してオンボーディングした場合 (シナリオ 1 またはシナリオ 2):CMS 2.0 コンソールにログインします。[Onboarding Management] でオンボーディング設定を見つけて削除します。
専用リソースグループ (シナリオ 3):PAI コンソールで専用リソースグループの詳細ページに移動し、[Configure SLS] をクリックして、ドロップダウンリストから [Disable SLS] を選択します。
パブリックリソースグループまたはリソースクォータ (シナリオ 3):SLS コンソールにログインし、対応する Logtail 設定を削除します。
Q: 専用リソースグループに SLS を設定した後、ログ収集が不完全であったり、トラフィックと一致しない場合はどうすればよいですか?
収集されたログの数が実際のリクエストトラフィックよりも著しく少ない場合、またはログが期待されるサービスと一致しない場合は、次の順序でトラブルシューティングを行ってください:
Logtail 設定の [Container Filtering] ルールが正しく設定されているか確認します。フィルタリングルールが正しくないと、対象コンテナからのログが収集されない可能性があります。
EAS サービスに関連付けられているサービスリンクロール
AliyunServiceRoleForEASに十分な SLS 書き込み権限があることを確認します。権限が不十分な場合、一部のログの書き込みに失敗する可能性があります。このトピックを参照して、ログ収集設定とサービスリンクロールの権限を再確認してください。
Q: どの PAI-EAS サービスが SLS ログを書き込んでいるか、また各サービスのログ量を照会するにはどうすればよいですか?
対象の 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) を集計し、結果を降順で並べ替えます。これにより、どのサービスがログを書き込んでいるかを特定し、一括で収集を管理または無効にすることができます。このセクションの「Q: PAI-EAS サービスの SLS ログ収集を無効にするにはどうすればよいですか?」の項目と併用することで、まずログを書き込んでいるサービスを特定し、次にその収集を無効にすることができます。
