すべてのプロダクト
Search
ドキュメントセンター

Serverless App Engine:ログ収集をSimple log Serviceに設定する

最終更新日:Sep 03, 2024

Serverless App Engine (SAE) は、最大500行のログを表示できる基本的なリアルタイムログ収集機能を提供します。 SAEは、より高いクエリ要件を満たすファイルログ収集機能も提供します。 stdout.logまたはコンテナー内のログパスをログソースとして指定できます。 次に、SAEは、コンテナからSimple Log Serviceに標準出力 (stdout) ログまたはビジネスファイルログを収集します。 無制限のログ行を収集、集計、分析できます。 アプリケーションのSimple log Serviceへのログ収集を有効にすると、アプリケーションをデプロイまたはスケールアウトすると、SAEは自動的にSimple Log Serviceに接続します。 その後、Simple Log Serviceコンソールでキーワードを使用してログを照会できます。

前提条件

  • Simple Log Serviceが有効になり、プロジェクトとLogstoreが作成されます。 詳細については、Simple Log Serviceの製品ページを参照してください。

  • アプリケーションのインスタンスごとに、少なくとも0.25のCPUコアと250 MBのメモリが予約されています。

使用上の注意

  • Alibaba Cloudアカウントに対して最大50個のプロジェクトを作成できます。 プロジェクト用に最大200のLogstoreを作成できます。

    警告

    Simple Log Serviceの基本リソースの制限は、SAEアプリケーションのログ収集結果に影響を与える可能性があります。 たとえば、次の問題が発生する可能性があります。ログの保持期間が予想よりも短くなり、ログの収集に失敗します。 制限の詳細については、「基本リソース」をご参照ください。

  • アプリケーションの作成時にログ収集をSimple log Serviceに設定すると、アプリケーションの作成後にSimple Log Serviceが有効化されているかどうか、およびSimple Log Serviceの組み込みリソースが十分かどうかが自動的に確認されます。

    • Simple Log Serviceが有効化されていない場合は、プロンプトに従ってサービスを有効化します。

    • 組み込みリソースが不十分な場合は、DingTalkグループ32874633に参加してクォータを増やします。

  • Simple Log Serviceを使用すると、追加料金が発生します。 ファイルログ収集機能を使用するときに消費するリソースの量に対して課金されます。 詳細については、「簡易ログサービス課金」をご参照ください。

ファイルログ収集の設定

アプリケーション作成時のログ収集の構成

  1. SAEコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[アプリケーション] をクリックします。 上部のナビゲーションバーで、リージョンを選択します。 次に、[アプリケーションの作成] をクリックします。

  3. では、基本情報ステップ、パラメータを設定し、次条: アプリケーションの配置設定.

  4. [Deployment Configurations] ステップで、[Technology Stackプログラミング言語] および [Application Deployment Method] パラメーターと対応する設定を設定します。

  5. では、ログ収集サービスセクション、オンにするLog Serviceへのログ収集の有効化上のLog Serviceへのログ収集タブでパラメーターを設定します。

    ビジネス要件に基づいて [Log Serviceリソースの作成] または [既存のLog Serviceリソースの使用] を選択し、[+ 追加] をクリックしてパラメーターを設定します。 下表に、各パラメーターを説明します。

    パラメーター

    説明

    [Log Serviceリソースの作成] または [既存のLog Serviceリソースの使用] を選択すると、次のパラメーターを使用できます。

    ログタイプ

    ログタイプを選択します。 有効な値:

    • ファイルログ (コンテナー内のログパス): ファイルログ。 デフォルト値です。 複数の収集ルールを追加して、異なるログソースからファイルログを収集できます。

    • Container Standard出力ログ: コンテナーのstdoutログ。 stdoutログを収集するために設定できる収集ルールは1つだけです。 このログタイプは、vSwitchが推奨ゾーンのいずれかにある場合にのみ、[ログタイプ] ドロップダウンリストで使用できます。 詳細については、「アプリケーションのセキュリティグループとvSwitchの変更」をご参照ください。

    ログソース

    ログファイルが保存されているディレクトリを入力します。 ディレクトリには、ログファイルの名前が含まれている必要があります。 例: /tmp0/cjsc.log Container Standard出力ログを選択した場合、Log Sourceパラメーターを設定する必要はありません。 ファイル名とパスに一致する正規表現を指定できます。 ディレクトリに同じ形式のログファイルが多数含まれている場合は、/xxx/xxx/xxx/*.log形式でログソースを指定できます。

    重要

    他の種類の重要なファイルをログソースに保存しないでください。 それ以外の場合、ファイルはログファイルによって上書きされます。

    次のパラメーターは、[既存のLog Serviceリソースを使用] を選択した場合にのみ使用できます。

    既存のLog Serviceプロジェクトの使用

    ログを保存するプロジェクトを選択します。

    logstore

    Logstoreを選択します。

    logtail

    Logtail設定を選択します。 詳細は、「Logtail」をご参照ください。

  6. [次へ: 仕様の確認] をクリックします。

  7. 仕様の確認ステップで、アプリケーションの詳細と選択した仕様の料金を表示します。 次に、[確認] をクリックします。

    作成完了ステップが表示されます。 [アプリケーションの詳細] をクリックすると、アプリケーションの [基本情報] ページに移動できます。

  8. 結果を確認します。

    アプリケーションをデプロイした後、SAEは設定されたログ収集ルールに基づいて指定されたLogstoreにログを収集します。

    アプリケーションの詳細ページの左側のナビゲーションウィンドウで、[ログ管理] > [永続ログ] を選択します。 [永続ログ] ページで、設定されたログ収集ルールに関する情報を表示します。

    設定したログ収集ルールが表示された場合は、有効になりました。 ビジネス要件に基づいてログを分析できます。

アプリケーションのデプロイ時のログ収集の構成

警告

アプリケーションを再デプロイすると、アプリケーションは再起動されます。 業務中断などの予測できないエラーを防ぐため、オフピーク時にアプリケーションをデプロイすることを推奨します。

アプリケーションを更新するために実行できる手順は、アプリケーション内のインスタンスの数によって異なります。 このセクションでは、インスタンス数が1以上のアプリケーションに必要な機能を設定する方法の例を示します。 インスタンス数が0のアプリケーションの更新方法については、「アプリケーションの更新」をご参照ください。

  1. SAEコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[アプリケーション] をクリックします。 上部のナビゲーションバーで、リージョンを選択します。 次に、アプリケーションの名前をクリックします。

  3. の右上隅に基本情報ページをクリックします。アプリケーションのデプロイ.

  4. では、ログ収集サービスのセクションアプリケーションのデプロイページ、オンにするLog Serviceへのログ収集の有効化上のLog Serviceへのログ収集タブでパラメーターを設定します。

    ビジネス要件に基づいて [Log Serviceリソースの作成] または [既存のLog Serviceリソースの使用] を選択し、[+ 追加] をクリックしてパラメーターを設定します。 下表に、各パラメーターを説明します。

    パラメーター

    説明

    [Log Serviceリソースの作成] または [既存のLog Serviceリソースの使用] を選択すると、次のパラメーターを使用できます。

    ログタイプ

    ログタイプを選択します。 有効な値:

    • ファイルログ (コンテナー内のログパス): ファイルログ。 デフォルト値です。 複数の収集ルールを追加して、異なるログソースからファイルログを収集できます。

    • Container Standard出力ログ: コンテナーのstdoutログ。 stdoutログを収集するために設定できる収集ルールは1つだけです。 このログタイプは、vSwitchが推奨ゾーンのいずれかにある場合にのみ、[ログタイプ] ドロップダウンリストで使用できます。 詳細については、「アプリケーションのセキュリティグループとvSwitchの変更」をご参照ください。

    ログソース

    ログファイルが保存されているディレクトリを入力します。 ディレクトリには、ログファイルの名前が含まれている必要があります。 例: /tmp0/cjsc.log Container Standard出力ログを選択した場合、Log Sourceパラメーターを設定する必要はありません。 ファイル名とパスに一致する正規表現を指定できます。 ディレクトリに同じ形式のログファイルが多数含まれている場合は、/xxx/xxx/xxx/*.log形式でログソースを指定できます。

    重要

    他の種類の重要なファイルをログソースに保存しないでください。 それ以外の場合、ファイルはログファイルによって上書きされます。

    次のパラメーターは、[既存のLog Serviceリソースを使用] を選択した場合にのみ使用できます。

    既存のLog Serviceプロジェクトの使用

    ログを保存するプロジェクトを選択します。

    logstore

    ログストアを選択します。

    logtail

    Logtail設定を選択します。 詳細は、「Logtail」をご参照ください。

  5. 設定後、をクリックします。確認.

    説明

    アプリケーションのデプロイ時に特定の条件が満たされている場合、アプリケーションインスタンスのすべてのバッチがデプロイされる前に、ログは元のプロジェクトとLogstoreに収集されます。 条件には、段階的リリースポリシーまたはカナリアリリースポリシーを使用してアプリケーションをデプロイすること、アプリケーションの作成時に構成したログソースが変更されないこと、ログが収集されるプロジェクトまたはログストアのみを変更することなどがあります。 Simple Log Serviceでは、同じファイルから異なるプロジェクトまたはログストアに同時にログを収集することはできません。

  6. 結果を確認します。

    アプリケーションをデプロイした後、SAEは設定されたログ収集ルールに基づいて指定されたLogstoreにログを収集します。

    アプリケーションの詳細ページの左側のナビゲーションウィンドウで、[ログ管理] > [永続ログ] を選択します。 [永続ログ] ページで、設定されたログ収集ルールに関する情報を表示します。

    設定したログ収集ルールが表示された場合は、有効になりました。 ビジネス要件に基づいてログを分析できます。

Logtailの収集パフォーマンスを向上させるための環境変数の設定

SAEコンソールで環境変数を設定することで、Logtailのスタートアップパラメーターを設定できます。 環境変数を設定してログ収集機能を有効にすると、Logtailの収集パフォーマンスが向上します。 これにより、ログファイルの大容量メモリ使用量、大量のログデータトラフィック、Logtailの高いデータ送信速度など、ログ収集のボトルネックを効果的に解消できます。

[環境変数設定] セクションで、[カスタム] または [参照設定マップ] を選択し、[変数名] および [変数値 /変数参照] パラメーターを設定します。 詳細については、「環境変数の設定」をご参照ください。

  • 変数設定ルール

    設定するLogtail環境変数の前にsls_ プレフィックスを追加します。 次の図は、サンプル構成を示しています。 たとえば、Logtailのmax_read_buffer_sizeパラメーターを追加する場合は、Variable Nameパラメーターをsls_max_read_buffer_sizeに設定します。 図に表示される設定は、Logtailが読み取ることができるログの最大サイズが524,288バイトであることを示しています。 詳細については、「Logtailの起動パラメーターの設定」をご参照ください。sc_configure_environment_variable_for_sls

  • 環境変数とLogtailの起動パラメーター間のマッピング

    詳しくは、『Environment variables』をご参照ください。

Simple Log Serviceのstdoutログからプレフィックスを削除する

Simple Log Serviceで、stdoutログからプレフィックスを削除するなど、元のログからフィールドを抽出するための追加のカスタム設定を設定する場合は、対応するLogtail設定で [フルレジェックスモード] を選択できます。 必要なパラメーターの設定を次の図に示します。

sc_sls_collect_logs_in_full_regex_mode

  • Regex to Match First Line

    \d +-\d +-\d + T\d +:\d +:\d +.\d +.\d +.*
  • 正規表現

    \d +-\d +-\d + T\d +:\d +:\d + 。\d +:\d +:\d +:\d +\s\w +\s\w\s(.*)

JSONフィールドを展開する場合は、[プラグイン処理の有効化] をオンにして、[プラグイン設定] パラメーターを設定できます。

sc_sls_plugin_configuration

{
  "global": {
    "DefaultLogQueueSize": 10
  },
  "processors": [
    {
      "type": "processor_split_log_regex",
      "detail": {
        "PreserveOthers": true,
        "SplitKey": "content",
        "SplitRegex": "\\d+-\\d+-\\d+T\\d+:\\d+:\\d+.\\d+\\+\\d+.*"
      }
    },
    {
      "type": "processor_regex",
      "detail": {
        "SourceKey": "content",
        "Regex": "\\d+-\\d+-\\d+T\\d+:\\d+:\\d+.\\d+\\+\\d+:\\d+\\s\\w+\\s\\w\\s(.*)",
        "Keys": [
          "newline"
        ]
      }
    },
    {
      "detail": {
        "SourceKey": "newline",
        "KeepSource": true,
        "ExpandDepth": 0,
        "NoKeyError": true,
        "ExpandConnector": "-"
      },
      "type": "processor_json"
    }
  ]
}

詳細については、「完全正規表現モードでログを収集する」および「ログ収集のためのLogtail設定の管理」をご参照ください。

よくある質問

  • SAEのロギング機能はログローテーションをサポートしていますか?

    はい。SAEのロギング機能はログローテーションをサポートしています。 ログファイルの名前にワイルドカード文字を追加することで、ログを回転できます。

    アスタリスク (*) と疑問符 (?) のワイルドカード文字のみを使用できます。

  • ファイルログを照会するときにSimple Log Serviceコンソールにデータが表示されない場合はどうすればよいですか。

    デフォルトでは、Simple Log Serviceは過去15分間のデータを照会します。 Simple Log Serviceコンソールにデータが表示されない場合は、webshellを使用して、アプリケーションのログが生成されているかどうかを確認することを推奨します。 詳細については、「webshell機能を使用してアプリケーションのヘルスステータスを確認する」をご参照ください。

    • アプリケーション用にログが生成される場合、DingTalkグループ32874633に参加して、テクニカルサポートを行います。

    • ログが生成されない場合は、アプリケーションを確認してください。