Log serviceを使用すると、インターネットインフォメーションサービス (IIS) アクセスログを収集および分析できます。 このトピックでは、IISアクセスログを使用してWebサイトへのアクセスを監視および分析する方法について説明します。 ページビュー (PV) 、ユニークビジター (UV) 、リクエスタの場所、エラーリクエスト、受信および送信トラフィックなどのデータを取得できます。

始める前に

IISログが収集されます。 詳細については、「IIS構成モードでログを収集する」をご参照ください。
説明 収集プロセス中、Log Serviceはログの内容に基づいてインデックスを自動的に生成します。 必要に応じてインデックスを変更できます。 詳細については、「インデックスの作成」をご参照ください。

このタスクについて

IISは、webサイトの構築とホストに使用できる安全なwebサーバーです。 IISを使用してWebサイトを構築すると、IISアクセスログを収集して分析できます。

次のIIS W3C拡張ログ形式を使用することを推奨します。
logExtFileFlags="Date, Time, ClientIP, UserName, SiteName, ComputerName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Cookie, Referer, ProtocolVersion, Host, HttpSubStatus"
サンプルIISログの例を次に示します。
# Software: Microsoft Internet Information Services 7.5
# Version: 1.0
# Date: 2020-09-08 09:30:26
# Fields: 日付時間s-sitename s-ip cs-方法cs-uri幹cs-uri-クエリs-ポートcs-ユーザー名c-ip cs(User-Agent) sc-状態sc-substatus sc-win32-status sc-バイトcs-バイト時間撮影
2009-11-26 06:14:21 W3SVC692644773 125.67.67。* GET /index.html - 80 - 10.10.10.10 Baiduspider +(+ http://www.example.com)200 0 64 185173 296 0
  • フィールドの接頭辞
    接頭辞説明
    s-Indicatesサーバアクション。
    c-クライアントのアクションを示します。
    cs-クライアントからサーバーへのアクションを示します。
    sc-サーバー間アクションを示します。
  • フィールド
    フィールド説明
    dateクライアントがリクエストを送信する日付。
    timeクライアントがリクエストを送信する時点。
    s-sitenameクライアントがアクセスしたサイトのインターネットサービス名とインスタンスID。
    s-computernameログが生成されるサーバーの名前。
    s-ipログが生成されるサーバーのIPアドレス。
    cs-methodクライアントが使用するリクエストメソッド (GETやPOSTなど) 。
    cs-uri-stemリクエスト内のURI。
    cs-uri-queryHTTPリクエストの疑問符 (?) に続くクエリ文字列。
    s-portサーバーのポート番号。
    cs-usernameクライアントがサーバーにアクセスするために使用する認証済みドメイン名またはユーザー名。
    • 認証されたユーザーは、Domain\Username形式で表示されます。
    • 匿名ユーザーはハイフン(-)で表示されます。
    c-ipリクエストを送信するクライアントの実際のIPアドレス。
    cs-versionHTTP 1.0やHTTP 1.1など、クライアントが使用するプロトコルのバージョン。
    cs(User-Agent)クライアントが使用するブラウザ。
    Cookie送信または受信されるcookieの内容。 Cookieが送受信されない場合は、ハイフン (-) が表示されます。
    refererクライアントが指示されたサイト。
    cs-hostホスト情報。
    sc-statusサーバーから返されたHTTPステータスコード。
    sc-substatusThe HTTP substatusコードによって返さサーバー。
    sc-win32-statusThe Windowsステータスコードによって返さサーバー。
    sc-bytesサーバーによって送信されたバイト数。
    cs-bytesThe番号のバイト受信します。
    time-takenリクエストの処理に必要な時間。 単位:ミリ秒。

手順

  1. Log Service コンソールにログインします。
  2. [プロジェクト] セクションで、表示するプロジェクト名をクリックします。
  3. [ログストレージ] > [Logstore] を選択します。 [Logstore] タブで、表示する Logstore をクリックします。
  4. 検索ボックスにクエリステートメントを入力し、時間範囲を選択します。

    クエリステートメントは、searchステートメント | analyticステートメント形式の検索ステートメントと分析ステートメントで構成されます。 詳細については、「クエリ構文」と「SQL構文と関数」をご参照ください。

    • クライアントIPアドレスの分布に関する統計を収集するには、次のクエリステートメントを実行します。
      * | ip_to_geo("c-ip") を国として選択し、ip_to_geo("c-ip") 制限100によってcグループとしてカウント (1)
    • PVおよびUVの数を計算するには、次のクエリステートメントを実行します。
      *| select approx_distinct("c-ip") as uv ,count(1) as pv , date_format(date_trunc('hour', __time__), '%m-%d %H:%i') as time group by date_format(date_trunc('hour', __time__), '%m-%d %H:%i') order by time limit 1000
      PVおよびUV
    • 返される各HTTPステータスコードの割合を計算するには、次のクエリステートメントを実行します。
      *| select count(1) as pv ,"sc-status" group by "sc-status"
      各HTTPステータスコードの割合
    • インバウンドトラフィックとアウトバウンドトラフィックの統計を収集するには、次のクエリ文を実行します。
      *| select sum("sc-bytes") as net_out, sum("cs-bytes") as net_in ,date_format(date_trunc('hour', time), '%m-%d %H:%i') as time group by date_format(date_trunc('hour', time), '%m-%d %H:%i') order by time limit 10000
      受信および送信トラフィック
    • 各リクエストメソッドの割合を計算するには、次のクエリステートメントを実行します。
      *| select count(1) as pv ,"cs-method" group by "cs-method"
      各リクエストメソッドの割合
    • 各ブラウザータイプの割合を計算するには、次のクエリ文を実行します。
      *| select count(1) as pv, case when "user-agent" like '%Chrome%' then 'Chrome' when "user-agent" like '%Firefox%' then 'Firefox' when "user-agent" like '%Safari%' then 'Safari' else 'unKnown' end as "user-agent" group by case when "user-agent" like '%Chrome%' then 'Chrome' when "user-agent" like '%Firefox%' then 'Firefox' when "user-agent" like '%Safari%' then 'Safari' else 'unKnown' end order by pv desc limit 10
      各ユーザーエージェント (UA) の割合
    • 最も頻繁にアクセスされる上位10ページを計算するには、次のクエリ文を実行します。
      *| select count(1) as pv, split_part("cs-uri-stem",'?',1) as path group by split_part("cs-uri-stem",'?',1) order by pv desc limit 10
      リクエスト数による上位10のURL