13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【UiPath】Log Parser Studioを利用してIISログを分析する方法

Last updated at Posted at 2023-04-18

概要

Log Parser Studioを利用してIISログを分析する方法についてご説明します。

はじめに

今回はオンプレミス版Orchestratorにログインしたクライアントを確認する方法を例にご説明します。

IISログとは?

IISログは、サーバー上で発生したさまざまなイベントやアクティビティに関する情報を記録したログです。サーバーの監視、トラブルシューティングなど、さまざまな目的で使用されます。
具体的には以下の情報が記録されております。

  • サーバーにアクセスしたクライアントのIPアドレス
  • クライアントのリクエストの日時
  • クライアントが使用したHTTPメソッド(GET、POST)
  • サーバーのHTTPレスポンスステータスコード(200:成功、404:ページが存在しない)等

事前準備:IISログの取得

  • デフォルトではOrchestrator端末の以下の場所にあるログになります。

C:\inetpub\logs\LogFiles\W3SVC2

  • u_ex〇〇〇〇〇〇.logがIISログとなります。〇〇〇〇〇〇にはYYMMDD形式で日付が入りますので、確認したい日付のログを選択ください。
    image.png

Log Parser StudioによるIISログの確認方法

Step1.Log Parser Studioのインストール

Step2.IISログファイルを開く

  • Logボタンを押下し、Add FilesでIISログ(ここではu_ex230413.log)を追加し、チェックを入れ、OKを押下ください。
    image.png

Step3.新しいクエリを作成

  • Create a New Queryをクリックします。
    image.png
  • Log TypeでIISW3CLOGを選択します。
    image.png
  • ツールの下部がクエリエディタ部分です。こちらに以下のクエリを入力します。
SELECT * FROM '[LOGFILEPATH]'
WHERE
 cs-uri-stem LIKE '/identity/api/Account/Login'

image.png

  • こちらのクエリは、指定された[LOGFILEPATH]というログファイルパスの中から、cs-uri-stemフィールドが'/identity/api/Account/Login'に部分一致しているエントリを抽出するためのSQLクエリです。
  • WHERE句:検索条件の指定。
  • cs-uri-stemフィールド:クライアントがリクエストしたURI。
  • '/identity/api/Account/Login':クライアントがオンプレミス版Orchestratorにログインする際のURI。

Step4.クエリの実行

  • クエリを実行した結果がツール上部のテーブルに表示されます。
  • c-ip列に表示されているipアドレスがOrchestratorにアクセスしたクライアントのipアドレスとなります。
    image.png

その他サンプルクエリ

1.特定のクライアントを絞り込むクエリ

特定のクライアントのみ絞り込みたい場合は上記Step3で以下のクエリを入力ください。

SELECT * FROM '[LOGFILEPATH]'
WHERE
 cs-uri-stem LIKE '/identity/api/Account/Login'
 AND c-ip = 'xxx.xxx.xxx.xxx'

image.png

  • 'xxx.xxx.xxx.xxx'に抽出したいクライアントのIPアドレスを入力することで絞りこみが可能です。
  • sc-statusフィールド:HTTP レスポンスステータスコードと同義です。

2.日付を絞り込むクエリ

SELECT
TOP 5 *
FROM 
  '[LOGFILEPATH]' 
WHERE
  TO_TIMESTAMP(date, time) 
  BETWEEN TIMESTAMP('2023-05-19 00:00:00','yyyy-MM-dd hh:mm:ss') 
  AND TIMESTAMP('2023-05-19 01:00:00','yyyy-MM-dd hh:mm:ss')

image.png

  • 上記クエリで特定の日付(この例では2023-05-19 00:00:00~01:00:00)を絞り込むことが可能です。

3.HTTPレスポンスステータスコードを絞り込むクエリ

HTTPレスポンスステータスコードの絞り込みは以下のクエリで可能です。

200(成功)以外の全てを表示するクエリ

SELECT TOP 10 * FROM '[LOGFILEPATH]'
WHERE sc-status <> 200
ORDER By sc-status DESC

image.png

  • TOP句を使用し、TOP 10と記載することで10行のみの表示が可能です。
  • sc-status <> 200では、レスポンスコード:200以外を全て表示します。
  • ORDER By sc-status DESCでは、レスポンスコードを降順で表示します。
ご参考:HTTPレスポンスステータスコード
レスポンスステータスコード 内容
1XX台 情報
2XX台 成功
3XX台 リダイレクト
4XX台 クライアント側のエラー
5XX台 サーバー側のエラー

4XX台を全て表示するクエリ

SELECT TOP 10 * FROM '[LOGFILEPATH]'
WHERE sc-status >= 400
AND sc-status < 500

image.png

  • WHERE句でANDを利用することでレスポンスコードの絞り込みが可能です。
  • 上記クエリでクライアントエラーを全て表示できます。

5XX台を全て表示するクエリ

5xx台の絞り込みもサーバー側のエラーが表示されていることトラブルシューティング時に重要です。

SELECT TOP 10 * FROM '[LOGFILEPATH]'
WHERE sc-status >= 500
AND sc-status < 600

image.png

  • 当方の環境ではサーバー側のエラーがないため、このような場合はクエリ実行後も上記の通りテーブルは表示されません。

4.処理に時間を要したリクエストを絞り込むクエリ

SELECT TOP 10 * FROM '[LOGFILEPATH]'
WHERE time-taken >= 1000
Order BY
time-taken DESC

image.png

  • time-takenフィールド:処理に要した時間
  • リクエストのtime-takenが大きい場合(例:1000ms = 1秒)、処理に時間がかかっておりパフォーマンスの観点で問題があることがございます。
  • なお、cs-uri-stemフィールドに記載されているsignalrにつきましては、time-takenの値が大きくなることがございますが、こちらはロボットとOrchestrator間でリアルタイム通信を行う機能で特に問題ございません。

5.件数を確認するクエリ

SELECT
  COUNT(*)
FROM
  '[LOGFILEPATH]' 
WHERE 
  cs-uri-stem LIKE '/identity/api/Account/Login'

image.png

  • COUNT(*)で件数を確認することが可能です。
  • 上記クエリでOrchestratorにアクセスしたリクエストの件数を取得できます。

参考:ExcelでIISログを分析する方法

環境

  • オンプレミス版Orchestrator
13
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?