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

Simple Log Service:JSONログの照会と分析

最終更新日:Aug 30, 2024

このトピックでは、クエリステートメントを使用してJSON Webサイトログをクエリおよび分析する方法について説明します。

前提条件

JSONログが収集されます。 詳細については、「シンプルモードでのログの収集」をご参照ください。

ステップ1: インデックスの作成

  1. Simple Log Serviceコンソール.

  2. [プロジェクト] セクションで、管理するプロジェクトをクリックします。

    image

  3. 左側のナビゲーションウィンドウで、[ログストレージ] をクリックします。 Logstoreリストで、管理するLogstoreをクリックします。

    image

  4. クエリと分析ページの右上隅で、[インデックス属性] > [属性] を選択します。 インデックスが作成されていない場合は、ページで [有効化] をクリックします。 フルテキストインデックスとフィールドインデックスの詳細、およびインデックスの作成方法については、「インデックスの作成」をご参照ください。

    説明

    ログのすべてのフィールドをクエリする場合は、フルテキストインデックスを使用することを推奨します。 特定のフィールドのみをクエリする場合は、フィールドインデックスを使用することを推奨します。 これは、インデックストラフィックを減らすのに役立ちます。 フィールドを分析する場合は、フィールドインデックスを作成する必要があります。 分析のために、クエリ文にSELECT文を含める必要があります。

  5. フィールドインデックスを作成します。 次の図は、JSONログのサンプルと、フィールドのインデックスを作成する方法の例を示しています。

    日志样例

    配置索引

    • __topic____source__ 、および __tag__ フィールドは、Simple Log Serviceの予約フィールドです。 詳細については、「予約済みフィールド」をご参照ください。

    • @ timestampremote_addrremote_userhttp_refererhttp_user_agentstatusserver_protocalhttp_x_forward_forupstream_addrフィールドはリーフノードを除外します。 contentフィールドのインデックスを作成できます。

    • requestおよびtimeフィールドにはリーフノードが含まれ、リーフノードはJSON配列ではありません。

      • requestまたはtimeフィールドのインデックスは作成できません。 2つのフィールドを照会または分析することはできません。

      • requestフィールドとtimeフィールドのリーフノードのインデックスを作成できます。 インデックスを作成するときは、リーフノードの完全な名前を指定する必要があります。 形式: KEY1.KEY2.KEY3 例: time.request_timeおよびtime.upstream_response_time インデックスの作成後、time.request_timeおよびtime.upstream_response_timeフィールドを照会できます。

    • body_bytes_sentフィールドの値はJSON配列です。 body_bytes_sentフィールドまたはbody_bytes_sentフィールドのリーフノードを照会または分析することはできません。

ステップ2: データの再インデックス

新しいインデックスは、インデックスの作成後に収集されたデータに対してのみ有効です。 履歴データをクエリする場合は、インデックス再作成機能を使用する必要があります。 詳細については、「Logstoreのログの再インデックス」をご参照ください。

ステップ3: ログの照会と分析

Logstoreのクエリと分析ページで、クエリステートメントを入力し、クエリ時間範囲を指定してから、ステートメントを実行します。 分析ステートメントを記述するときは、二重引用符 (") を使用してフィールド名を囲み、単一引用符 (') を使用して文字列を囲む必要があります。 分析ステートメントにSELECTステートメントを含める必要があります。 ログのクエリと分析方法の詳細については、「ログのクエリと分析」をご参照ください。 JSONログのクエリと分析方法に関する一般的な質問の詳細については、「JSONログのクエリと分析に関するよくある質問」をご参照ください。

  • ステータスコード200が返されたリクエストのログを照会します。

    content.status:200
  • 長さが70を超えるリクエストのログを照会します。

    content.request.request_length > 70
  • GETリクエストのログを照会します。

    content.request.request_method:GET
  • リクエストのログ数をステータスコードで計算します。

    * | SELECT "content.status", COUNT(*) AS PV GROUP BY "content.status"

    PV

  • リクエスト期間ごとにリクエスト数を計算し、リクエスト期間の昇順で結果を並べ替えます。

    * | SELECT "content.time.request_time", COUNT(*) AS count GROUP BY "content.time.request_time" ORDER BY "content.time.request_time"

    请求时长

  • リクエストメソッドによる平均リクエスト期間を計算します。

    * | SELECT avg("content.time.request_time") AS avg_time,"content.request.request_method"  GROUP BY "content.request.request_method"

    平均请求时长

関連ドキュメント