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

Simple Log Service:HTTPデータの収集

最終更新日:Aug 21, 2024

Logtailは、Logtail設定に基づいて、指定されたURLに定期的にHTTPリクエストを送信します。 次に、Logtailは応答の本文をデータソースとしてSimple Log Serviceにアップロードします。 このトピックでは、Simple Log ServiceコンソールでLogtail設定を作成し、Logtail設定を使用してHTTPデータを収集する方法について説明します。

前提条件

Logtailがサーバーにインストールされています。 詳細については、「LinuxサーバーにLogtailをインストールする」または「WindowsサーバーにLogtailをインストールする」をご参照ください。

説明

LinuxサーバーはLogtail V0.16.0以降をサポートします。 WindowsサーバーはLogtail V1.0.0.8以降をサポートします。

実装

Logtailは、Logtail設定で指定されたURL、メソッド、ヘッダー、および本文に基づいて、指定されたURLにHTTPリクエストを送信します。 次に、Logtailは応答ステータスコード、応答本文、および応答時間をデータソースとしてSimple Log Serviceにアップロードします。

实现原理

特徴

  • 複数のURLを指定できます。

  • HTTPリクエストメソッドを指定できます。

  • リクエストの送信間隔を指定できます。

  • カスタムリクエストヘッダーを指定できます。

  • HTTPSを使用できます。

  • レスポンスの本文が固定パターンと一致するかどうかを確認できます。

シナリオ

  • HTTP API操作を使用してサービスのステータスを監視できます。 たとえば、次のタイプのサービスを監視できます。

    • NGINX

    • HTTP API操作によるモニタリングをサポートするDocker

    • Elasticsearch

    • HAProxy

    • HTTP API操作によるモニタリングをサポートするその他のサービス

  • サービスの可用性を監視できます。

    Logtailは、定期的にサービスにリクエストを送信し、応答ステータスコードとリクエストの待ち時間を確認することにより、サービスの可用性を監視します。

  • Weiboコメントやフォロワー数などのデータを定期的に取得できます。

制限事項

  • URLはhttpまたはhttpsで始まる必要があります。

  • カスタム証明書はサポートされていません。

  • インタラクティブ通信はサポートされていません。

手順

NGINXステータスモジュールからHTTPデータを収集する手順を次に示します。 リクエストは、1,000ミリ秒間隔でURL http:// 127.0.0.1/ngx_statusに送信されます。 正規表現は、応答の本体からステータス情報を抽出するために使用される。

  1. にログインします。Simple Log Serviceコンソール.

  2. では、データのインポートセクションで、カスタムデータプラグイン.

  3. プロジェクトとLogstoreを選択します。 [次へ] をクリックします。

  4. マシングループを作成します。

    • マシングループが利用可能な場合は、[既存のマシングループを使用] をクリックします。

    • 使用可能なマシングループがない場合は、次の手順を実行してマシングループを作成します。 この例では、Elastic Compute Service (ECS) インスタンスが使用されています。

      1. [ECSインスタンス] タブで、[手動でインスタンスを選択] を選択します。 次に、使用するECSインスタンスを選択し、[作成] をクリックします。

        詳細については、「ECSインスタンスへのLogtailのインストール」をご参照ください。

        重要

        お使いのサーバーが、Simple Log Serviceとは異なるAlibaba Cloudアカウントに属するECSインスタンス、データセンター内のサーバー、またはサードパーティのクラウドサービスプロバイダーのサーバーの場合、サーバーにLogtailを手動でインストールする必要があります。 詳細については、「LinuxサーバーにLogtailをインストールする」または「WindowsサーバーにLogtailをインストールする」をご参照ください。 Logtailを手動でインストールした後、サーバーのユーザー識別子を設定する必要があります。 詳細については、「ユーザー識別子の設定」をご参照ください。

      2. 設定を確認したら、[OK] をクリックします。

      3. Logtailをインストールしたら、[インストールの完了] をクリックします。

      4. [マシングループの作成] ステップで、[名前] パラメーターを設定し、[次へ] をクリックします。

        Simple Log Serviceでは、IPアドレスベースのマシングループとカスタム識別子ベースのマシングループを作成できます。 詳細については、「IPアドレスベースのマシングループの作成」および「カスタム識別子ベースのマシングループの作成」をご参照ください。

  5. [応用サーバーグループ] セクションにマシングループが表示されていることを確認し、[次へ] をクリックします。

    重要

    マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?

  6. では、データソースの指定ステップ、構成設定名プラグインの設定. 次に、をクリックします。次へ.

    • 入力は必須であり、Logtail構成のデータソース設定を構成するために使用されます。

      重要

      inputsに指定できるデータソースの種類は1つだけです。

    • processorsはオプションで、データを解析するLogtail設定のデータ処理設定を設定するために使用されます。 1つ以上の処理方法を指定できます。

      入力の設定のみに基づいてログを解析できない場合は、[プラグイン設定] フィールドでプロセッサを設定して、データ処理用のプラグインを追加できます。 たとえば、フィールドの抽出、ログ時間の抽出、データのマスク、ログのフィルタリングができます。 詳細については、「Logtailプラグインを使用したデータ処理」をご参照ください。

    {
     "inputs": [
         {
             "type": "metric_http",
             "detail": {
                 "IntervalMs": 1000,
                 "Addresses": [
                     "http://127.0.0.1/ngx_status"
                 ],
                 "Headers": {"key":"value"},
                 "IncludeBody": true
             }
         }
     ],
     "processors" : [
         {
             "type": "processor_regex",
             "detail" : {
                 "SourceKey": "content",
                 "Regex": "Active connections: (\\d+)\\s+server accepts handled requests\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+Reading: (\\d+) Writing: (\\d+) Waiting: (\\d+).*",
                 "Keys": [
                     "connection",
                     "accepts",
                     "handled",
                     "requests",
                     "reading",
                     "writing",
                     "waiting"
                 ],
                 "FullMatch": true,
                 "NoKeyError": true,
                 "NoMatchError": true,
                 "KeepSource": false
             }
         }
     ]
    }

    パラメーター

    データ型

    必須

    説明

    タイプ

    String

    課金されます

    データソースのタイプ。 値をmetric_httpに設定します。

    アドレス

    文字列配列

    課金されます

    URL。

    重要

    URLはhttpまたはhttpsで始まる必要があります。

    IntervalMs

    int

    課金されます

    2つの連続するリクエストの間隔。 単位:ミリ秒。

    移動方法

    String

    課金されません

    リクエスト方式。 デフォルト値: GET。 値は大文字でなければなりません。

    ボディ

    String

    課金されません

    HTTPリクエストの本文。 このパラメーターはデフォルトで空となります。

    ヘッダー

    key: string, value: string map

    課金されません

    HTTPリクエストのヘッダー。 このパラメーターはデフォルトで空となります。 例: {"key":"value"} ビジネスシナリオに基づいてこのパラメーターを設定します。

    PerAddressSleepMs

    int

    課金されません

    Addressesパラメーターで指定されたURLにリクエストが送信される間隔。 単位:ミリ秒。 デフォルト値:100

    ResponseTimeoutMs

    int

    課金されません

    リクエストのタイムアウト期間。 単位:ミリ秒。 デフォルト値: 5000。

    IncludeBody

    Boolean

    課金されません

    リクエスト本文を収集するかどうかを指定します。 デフォルト値:false このパラメーターをtrueに設定すると、リクエスト本文はcontentという名前のフィールドに格納されます。

    FollowRedirectes

    Boolean

    課金されません

    URLリダイレクトを自動的に処理するかどうかを指定します。 デフォルト値:false

    InsecureSkipVerify

    Boolean

    課金されません

    HTTPSセキュリティチェックをスキップするかどうかを指定します。 デフォルト値:false

    ResponseStringMatch

    String

    課金されません

    レスポンス本文を正規表現と一致させるかどうかを指定します。 一致結果は、_response_match_ という名前のフィールドに格納されます。 レスポンス本文が正規表現と一致する場合、フィールドの値はyesになります。 それ以外の場合、値はnoです。

  7. データをプレビューし、インデックスを設定し、次へ.

    デフォルトでは、Simple Log Serviceでフルテキストインデックスが有効になっています。 手動モードまたは自動モードで収集したログに基づいてフィールドインデックスを設定することもできます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 これにより、Simple Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。

    重要

    ログをクエリおよび分析する場合は、フルテキストインデックス作成またはフィールドインデックス作成を有効にする必要があります。 フルテキストインデックスとフィールドインデックスの両方を有効にすると、フィールドインデックスのみが使用されます。

トラブルシューティング

Logtailを使用してログを収集した後、プレビューページまたはクエリページにデータが表示されない場合は、Logtailを使用してログを収集するときにエラーが発生した場合はどうすればよいですか?

結果

データが収集されたら、Simple Log Serviceコンソールでデータを表示できます。 リクエストに対して、指定された正規表現を使用して解析されたデータを表示できます。 HTTPリクエストメソッド、リクエストされたURL、応答時間、ステータスコード、およびリクエスト結果を表示することもできます。

"Index" : "7"  
"connection" : "1"  
"accepts" : "6079"  
"handled" : "6079"  
"requests" : "11596"  
"reading" : "0"  
"writing" : "1"  
"waiting" : "0"
"_method_" : "GET"  
"_address_" : "http://127.0.0.1/ngx_status"  
"_response_time_ms_" : "1.320"  
"_http_response_code_" : "200"  
"_result_" : "success"

デフォルトでは、次のフィールドがリクエストごとにアップロードされます。

項目

説明

_address_

リクエストのURL。

_method_

HTTP リクエストの方式。

_response_time_ms_

応答レイテンシ。 単位:ミリ秒。

_http_response_code_

HTTP ステータスコード

_result_

リクエスト結果。 有効な値: success、invalid_body、match_regex_invalid、mismatch、timeout。

_response_match_

レスポンス本文がResponseStringMatchフィールドの値と一致するかどうかを示します。 ResponseStringMatchフィールドが存在しない場合、_response_match_の値はnullです。 ResponseStringMatchフィールドが存在する場合、_response_match_の値はyesまたはnoです。