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

Simple Log Service:Web サイトログのクエリと分析

最終更新日:Mar 26, 2026

このトピックでは、Simple Log Service コンソールで Web サイトログをクエリおよび分析する方法について説明します。

前提条件

Web サイトのアクセスログが収集済みであること、および Logtail 構成が作成済みである必要があります。詳細については、「サーバーからのテキストログの収集」をご参照ください。

手順 1:インデックスの作成

インデックスを作成した後でなければ、ログのクエリおよび分析は実行できません。Simple Log Service では、フルテキストインデックスおよびフィールドインデックスをサポートしています。詳細については、「インデックスの作成」をご参照ください。本トピックでは、Web サイトのアクセスログに対してフィールドインデックスを作成します。

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

  2. Projects セクションで、対象のプロジェクトをクリックします。

    image

  3. ログストレージ > Logstore タブで、対象の Logstore をクリックします。

    image

  4. クエリと分析ページの右上隅で、インデックス属性 > 属性 を選択します。インデックス機能が有効になっていない場合は、インデックスの有効化 をクリックします。

  5. フィールドインデックスを設定し、OK をクリックします。フィールドインデックスは、1 つずつ手動で追加するか、自動インデックス生成 をクリックして一括で生成できます。Simple Log Service は、データ収集のプレビュー結果に表示される最初のログに基づいて、フィールドインデックスを自動的に生成します。

    重要
    • インデックス機能は、インデックス設定後に現在の Logstore に書き込まれたログデータにのみ適用されます。既存データをクエリしたい場合は、再インデックス機能をご利用ください。詳細については、「Logstore のログに対する再インデックス処理」をご参照ください。

    • 分析用の SELECT SQL ステートメントを実行するには、インデックス設定時に分析対象とするフィールドについて「分析の有効化」をオンにする必要があります。

    • Simple Log Service では、一部の予約済みフィールドに対してインデックスが自動的に設定されます。詳細については、「予約済みフィールド」をご参照ください。

    字段索引

手順 2:ログのクエリと分析

コンソールでのログのクエリおよび分析方法の詳細については、「ログのクエリと分析」をご参照ください。分析文を実行するには、必ず検索文と組み合わせて `検索文|分析文` の形式で指定する必要があります。検索文は単独で実行できますが、分析文は検索文と併用して実行する必要があります。

重要

デフォルトでは、クエリ文を実行すると 100 行のデータのみが返されます。返される行数を変更するには、LIMIT 句をご利用ください。詳細については、「LIMIT 句」をご参照ください。

検索文

  • Chrome を含むログエントリをクエリするには、次の検索文を実行します:

    Chrome
  • リクエストの持続時間が 60 秒より長いログエントリをクエリするには、次の検索文を実行します:

    request_time > 60
  • リクエストの持続時間が 60 秒から 120 秒の範囲にあるログエントリをクエリするには、次の検索文を実行します:

    request_time in [60 120]
  • 成功した GET リクエスト(状態コード:200 ~ 299)を記録するログエントリをクエリするには、次の検索文を実行します:

    request_method : GET and status in [200 299]
  • request_uri フィールドの値が /request/path-2 であるログエントリをクエリするには、次の検索文を実行します:

    request_uri:/request/path-2/file-2

分析文

  • Web サイトのページビュー (PV) を算出します。

    count 関数 を使用して、Web サイトの PV を算出します。

    * | SELECT count(*) AS PV

    访问pv

  • 1 分ごとの単位で Web サイトの PV を算出します。

    date_trunc 関数 を使用して時間を分単位で切り捨て、GROUP BY 句で時間単位で分析結果をグループ化します。その後、count 関数 を使用して 1 分あたりの PV 数を算出し、ORDER BY 句で時間順に分析結果を並べ替えます。

    * | SELECT count(*) as PV, date_trunc('minute', __time__) as time GROUP BY time ORDER BY time

    网站PV

  • 5 分ごとの単位で各リクエストメソッドのリクエスト数を算出します。

    __time__ - __time__ %300 を使用して時間を 5 分単位で切り捨て、GROUP BY 句で時間単位で分析結果をグループ化します。その後、count 関数 を使用して 5 分ごとのリクエスト数を算出し、ORDER BY 句で時間順に分析結果を並べ替えます。

    * | SELECT request_method, count(*) as count, __time__ - __time__ %300 as time GROUP BY time, request_method ORDER BY time

    请求次数

  • 今週の PV 数と先週の PV 数を比較します。

    count 関数 を使用して PV 総数を算出し、ts_compare 関数 を使用して前週比を取得します。このクエリでは、website_log が Logstore の名前です。

    * | SELECT diff[1] as this_week, diff[2] as last_week, time FROM (SELECT ts_compare(pv, 604800) as diff, time FROM (SELECT COUNT(*) as pv, date_trunc('week', __time__) as time FROM website_log GROUP BY time ORDER BY time) GROUP BY time)

    环比上周PV

  • クライアント IP アドレスのディストリビューション統計を収集します。

    ip_to_province 関数 を使用して IP アドレスが属する都道府県を取得し、GROUP BY 句で都道府県単位で分析結果をグループ化します。その後、count 関数 を使用して各 IP アドレスの発生回数を算出し、ORDER BY 句で発生回数順に分析結果を並べ替えます。

    * | SELECT count(*) as count, ip_to_province(client_ip) as address GROUP BY address ORDER BY count DESC

    客户端分布

  • アクセス頻度の高い上位 10 件のリクエスト URI を算出します。

    GROUP BY 句を使用してリクエスト URI 単位で分析結果をグループ化します。次に、count 関数 を使用して各 URI へのアクセスリクエスト数を算出し、ORDER BY 句でアクセスリクエスト数順に分析結果を並べ替えます。

    * | SELECT count(*) as PV, request_uri as PATH GROUP BY PATH ORDER BY PV DESC LIMIT 10

    请求路径

  • request_uri フィールドの値が %file-7 で終わるログエントリをクエリします。

    重要

    クエリ文では、あいまい検索にワイルドカード文字(アスタリスク * および疑問符 ?)を使用します。ワイルドカード文字は、単語の途中または末尾でのみ使用できます。特定の文字で終わるフィールドをクエリするには、分析文内で LIKE 演算子をご利用ください。

    * | select * from website_log where request_uri like '%file-7'

    このステートメントでは、website_log が Logstore の名前です。

    模糊查询

  • アクセスされたリクエスト URI の統計情報を算出します。

    regexp_extract 関数 を使用して、request_uri フィールドからファイル部分を抽出します。その後、count 関数 を使用して各 URI へのアクセスリクエスト数を算出します。

    * | SELECT regexp_extract(request_uri, '.*\/(file.*)', 1) file, count(*) as count group by file

    分析uri

  • request_uri フィールドの値に %abc% を含むログエントリをクエリします。

    * | SELECT * where request_uri like '%/%abc/%%' escape '/'

    模糊查询

サンプルの Web サイトアクセスログ

__tag__:__client_ip__:192.0.2.0
__tag__:__receive_time__:1609985755
__source__:198.51.100.0
__topic__:website_access_log
body_bytes_sent:4512
client_ip:198.51.100.10
host:example.com
http_host:example.com
http_user_agent:Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_8; ja-jp) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
http_x_forwarded_for:198.51.100.1
instance_id:i-02
instance_name:instance-01
network_type:vlan
owner_id:%abc%-01
referer:example.com
region:cn-shanghai
remote_addr:203.0.113.0
remote_user:neb
request_length:4103
request_method:POST
request_time:69
request_uri:/request/path-1/file-0
scheme:https
server_protocol:HTTP/2.0
slbid:slb-02
status:200
time_local:07/Jan/2021:02:15:53
upstream_addr:203.0.113.10
upstream_response_time:43
upstream_status:200
user_agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.33 (KHTML, like Gecko) Ubuntu/9.10 Chromium/13.0.752.0 Chrome/13.0.752.0 Safari/534.33
vip_addr:192.0.2.2
vpc_id:3db327b1****82df19818a72