概要
Log Parser Studioを利用してIISログを分析する方法についてご説明します。
はじめに
今回はオンプレミス版Orchestratorにログインしたクライアントを確認する方法を例にご説明します。
IISログとは?
IISログは、サーバー上で発生したさまざまなイベントやアクティビティに関する情報を記録したログです。サーバーの監視、トラブルシューティングなど、さまざまな目的で使用されます。
具体的には以下の情報が記録されております。
- サーバーにアクセスしたクライアントのIPアドレス
- クライアントのリクエストの日時
- クライアントが使用したHTTPメソッド(GET、POST)
- サーバーのHTTPレスポンスステータスコード(200:成功、404:ページが存在しない)等
事前準備:IISログの取得
- デフォルトではOrchestrator端末の以下の場所にあるログになります。
C:\inetpub\logs\LogFiles\W3SVC2
Log Parser StudioによるIISログの確認方法
Step1.Log Parser Studioのインストール
- Log Parser Studioは以下のMicrosoft社のURLよりインストール可能です。
https://techcommunity.microsoft.com/t5/exchange-team-blog/introducing-log-parser-studio/ba-p/601131
※上記URLの添付資料LPSV2.D2.zipを解凍してご利用ください。
Step2.IISログファイルを開く
Step3.新しいクエリを作成
SELECT * FROM '[LOGFILEPATH]'
WHERE
cs-uri-stem LIKE '/identity/api/Account/Login'
- こちらのクエリは、指定された[LOGFILEPATH]というログファイルパスの中から、cs-uri-stemフィールドが'/identity/api/Account/Login'に部分一致しているエントリを抽出するためのSQLクエリです。
- WHERE句:検索条件の指定。
- cs-uri-stemフィールド:クライアントがリクエストしたURI。
- '/identity/api/Account/Login':クライアントがオンプレミス版Orchestratorにログインする際のURI。
Step4.クエリの実行
その他サンプルクエリ
1.特定のクライアントを絞り込むクエリ
特定のクライアントのみ絞り込みたい場合は上記Step3で以下のクエリを入力ください。
SELECT * FROM '[LOGFILEPATH]'
WHERE
cs-uri-stem LIKE '/identity/api/Account/Login'
AND c-ip = 'xxx.xxx.xxx.xxx'
- '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')
- 上記クエリで特定の日付(この例では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
- 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
- WHERE句でANDを利用することでレスポンスコードの絞り込みが可能です。
- 上記クエリでクライアントエラーを全て表示できます。
5XX台を全て表示するクエリ
5xx台の絞り込みもサーバー側のエラーが表示されていることトラブルシューティング時に重要です。
SELECT TOP 10 * FROM '[LOGFILEPATH]'
WHERE sc-status >= 500
AND sc-status < 600
- 当方の環境ではサーバー側のエラーがないため、このような場合はクエリ実行後も上記の通りテーブルは表示されません。
4.処理に時間を要したリクエストを絞り込むクエリ
SELECT TOP 10 * FROM '[LOGFILEPATH]'
WHERE time-taken >= 1000
Order BY
time-taken DESC
- 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'
- COUNT(*)で件数を確認することが可能です。
- 上記クエリでOrchestratorにアクセスしたリクエストの件数を取得できます。
参考:ExcelでIISログを分析する方法
- 以下のOrchestartorトラブルシューティングガイド記載の4.IISログをExcelで分析する方法でもOrchestratorにログインしたクライアントの確認が可能です。
- ※c-ip列に表示されているipアドレスをご確認ください。
https://www.uipath.com/ja/community-blog/knowledge-base/uipath-orchestrator-trouble-shooting-guide
環境
- オンプレミス版Orchestrator