UiPath Blog
本記事では UiPath Orchestrator の導入時または運用時において起こり得る様々な問題を効果的かつ効率的にトラブルシューティングするための手法について解説します。
問題解決には弊社カスタマーサポートへのお問い合わせが必要となるケースがありますが、原因分析に必要となるデータの収集方法についても説明します。このガイドに従うことによって問題解決までの時間短縮が可能になることが期待されます。
なお本記事では主にOrchestratorに関するトラブルシューティングを扱っており、UiPath Robotによるワークフロー実行エラーに関するトラブルシューティングやその他の事項について詳細は取り扱いません。
Orchestratorで発生する問題を下記のように大別し、それぞれのケースでどのような観点で原因調査を行うべきか、またどのような情報を収集すべきかについて説明します。
Orchestratorインストール時のエラー
Orchestrator初期実行時のエラー
Orchestrator運用時のエラー
Orchestratorバージョンアップ時のエラー
Orchestratorインストールは最新の「Orchestrator導入ステップバイステップガイド」の手順に従って導入していただくことを推奨しております。 インストール時にエラーが発生する場合には次の情報を取得してください。
エラーメッセージのスクリーンショット
インストールログ
管理者権限コマンドプロンプト上で次のコマンドによりOrchestratorインストーラーを実行し、インストールログを生成し取得してください。
msiexec /i UiPathOrchestrator.msi /l*vx UiPathInstall.log
インストールガイドと異なる手順を実行した場合には、その手順をご説明ください。
Orchestratorインストールが正常終了したにも関わらず、「Orchestratorログイン画面が正常に表示されない」など、Orchestratorが正常に機能しないケースがあります。 その場合には、次の点をご確認ください。
「Orchestrator 導入ステップバイステップガイド」の「前提条件のコンポーネントのインストール」というセクションで列挙されている役割と機能が有効化されているかサーバーマネージャーでご確認ください。
IISマネージャ > サイト > "UiPath Orchestrator" が開始していることを確認します。
IISマネージャ > アプリケーションプール にてOrchestrator関連の下記のアプリケーションプールの状態が「開始済み」であることを確認します。
Identity
ResourceCatalog (v2022.4以降)
UiPath Orchestrator
Webhooks
IISマネージャ > サイト > "UiPath Orchestrator" > [操作] バインドをクリックし、httpsのサイトバインド編集画面にてSSL証明書として適切な証明書が選択されていることを確認します。
SQL Serverの接続は次の手順でご確認ください。
Orchestrator上にてODBCデータソース(64 bit)を起動し、システムDSNを追加します。
データソースとしてSQL Serverを選択し、適切な名前を入力、SQL Serverのホスト名を指定します。
次にOrchestratorで設定されているものと同じSQL Server認証情報を入力し、既定のデータベースとして "UiPath" を選択します。データベース名が "UiPath" 以外の場合は適宜変更します。
[データソースのテスト] をクリックし、「テストは無事に完了しました」と表示されることを確認します。
ブラウザーでログイン画面が正常に表示されない場合には、 Identity ServerのURL (<orchestrator-url>/identity) にアクセスできるか確認します。アクセスできない場合にはOrchestratorに内包されている Identity Server が正常に動作しておりません。Identity Server のトラブルシューティングについてはこちらのサイトもご参照ください。
冗長構成の場合には次の手順でOrchestratorからRedis/HAAサーバーへの接続を確認します。
Redis Windows版のダウンロードサイトからzipファイルをダウンロードし、Orchestratorのローカルディレクトリに解凍します。
コマンドプロンプトで解凍ディレクトリに移動し、次のコマンドを実行し、Redis/HAAサーバーからの応答を確認します。
redis-cli -h <redis-ip> -p <redis-port> -a <redis-password> info
ただしRedis/HAAへの接続がSSL/TLSによって暗号化されている場合には上記の方法では確認できません。
上記の手順でも解決しない場合、あるいは上記のケースに当てはまらない場合には、次の情報を取得します。
問題発生時の日時
問題の現象および再現手順
エラーメッセージのスクリーンショット
イベントログ
サイト設定ファイル
IISログ
詳細については次の「3. 運用時のエラー」セクションをご参照ください。
Orchestrator初期導入時には正常稼働していたものの、運用フェーズに入った後にエラーが発生する場合には、次の情報を整理することを推奨します。
サーバー証明書の有効期限が切れた場合には、Orchestrator管理画面にログインできなくなる、Attended Robotでプロセス実行ができなくなるなどの影響が発生します。
有効期限の確認手順および新しい証明書への切り替え手順は Orchestrator サーバー証明書入れ替え手順 をご参照ください。
OSパッチ適用など、システム変更によって思わぬ副作用が引き起こされ今まで正常稼働していたシステムの挙動が変わる場合があります。
いつ・どのシステムに・どのような変更を加えたか、ITILにおける変更管理を行うことは、システム安定化を維持する上で重要です。もし直近で何らかのシステム変更を行った場合には、それによって副作用が生じていないかの調査を行います。
問題発生時には可能な限り正確な時刻を記録することは非常に重要です。
原因調査には関連するイベントログやIISログなどを参照しますが、エラー発生時刻の前後を最初に確認することになります。
問題に再現性がある場合には、再現手順を共有することは原因調査を行う上で非常に有用となります。
再現性がない場合でも、どのような手順でどのような現象が発生したか詳細な情報がありますと原因調査の見当が付けやすくなります。
どのアプリケーションまたはシステムがどの画面でどのようなメッセージを表示したかはエラーの現象を知る上で重要な手がかりとなります。
Orchestratorおよび関連するサービスの内部的なメッセージはアプリケーションイベントログに記録されます。主に下記のイベントログソースを確認します。
Orchestrator
Orchestrator.BusinessException
IdentityService
IIS AspNetCore Module V2
IIS上のOrchestratorサイトおよび関連するアプリケーションプールの設定ファイルです。
UiPath.Orchestrator.dll.config など、対象のファイルはAppendix 「A-1. サイト設定ファイル取得方法」参照
IISログにはWebブラウザーおよびUiPath Studio/RobotからのすべてのHTTPリクエストが記録されています。
IISログの取得方法はAppendix 「A-3. IISログ取得方法」をご参照ください。
Log Parserを使用することにより高度な分析が可能ですが、簡易的にExcelで分析することも可能です。詳細な手順はAppendix 「A-4. IISログをExcelで分析する方法」をご参照ください。
WebブラウザーやロボットからのHTTPリクエストが途中でキャンセルした場合など、リクエストの処理が完了しなかった場合には、下記ディレクトリに記録されます。
C:\Windows\System32\LogFiles\HTTPERR\*.log
SQL Serverに起因するエラーメッセージは下記ディレクトリに記録されます。
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log ("MSSQL15"はSQL Serverバージョンによって異なります)
DBパフォーマンスに関連するトラブルシューティングを行う際にはSSMS (SQL Server Management Studio)を使用して、下記情報も取得します。データベース名が "UiPath" 以外の場合は適宜変更します。
データ使用率確認: "UiPath" データベースを右クリック → レポート → 標準レポート → ディスク使用量 をクリック
自動拡張確認: "UiPath" データベースを右クリック → レポート → 標準レポート → ディスク使用量 をクリックし、 [データ/ログ Fileの自動拡張/自動圧縮イベント] を展開
断片化率確認: 下記クエリを実行し、出力結果を右クリック→[結果に名前を付けて保存]にてCSV形式で保存
USE UiPath GO SELECT 'ALTER INDEX ' + '[' + C.name + ']' + ' ON [' + D.name + '].[' + B.name + '] REBUILD' AS 'rebuild command' ,D.name AS schemaname ,B.name AS table_name ,C.name AS index_name ,A.avg_fragmentation_in_percent ,A.page_count FROM sys.dm_db_index_physical_stats (DB_ID(),null,null,null,null) AS A LEFT OUTER JOIN sys.objects AS B ON A.object_id = B.object_id LEFT OUTER JOIN sys.indexes AS C ON A.object_id = C.object_id AND A.index_id = C.index_id LEFT OUTER JOIN sys.schemas AS D ON B.schema_id = D.schema_id WHERE B.type = 'U' AND C.index_id > 0 ORDER BY table_name GO
Orchestratorバージョンアップは最新の「UiPath Orchestrator バージョンアップガイド」の手順に従って実施していただくことを推奨しております。 バージョンアップ時にエラーが発生する場合には次の情報を取得してください。
エラーメッセージのスクリーンショット
バージョンアップ前後のOrchestratorバージョン
バージョンアップ前のサイト設定ファイル
インストールログ
インストールログは自動的には生成されないため、管理者権限コマンドプロンプト上で次のコマンドによりOrchestratorインストーラーを実行し、ログを取得してください。
msiexec /i UiPathOrchestrator.msi /l*vx UiPathInstall.log
お客様側で問題解決できない場合には、有効なライセンスをお持ちのお客様はカスタマーサポートサイトよりお問い合わせが可能です。 下記テンプレートを使用し、情報収集した上でOrchestrator関連のお問い合わせいただけますと問題解決までの時間を短縮することが可能になります。
問い合わせテンプレート 【問題発生時の日時】 (例) 2023/10/14 09:10:00 頃 【問題の現象および再現手順】 【Orchestrator構成】 (例) - Orchestrator 1台 - SQL Server 1台 - Elasticsearch 1台 【添付データ】 - エラーメッセージのスクリーンショット - イベントログ - IISログ - UiPath.Orchestrator.dll.config など
Orchestratorのトラブルシューティングに必要となる各種情報の取得手順などについて説明します。
Orchestratorインストールディレクトリ配下にOrchestratorに関連するサービスの設定ファイルが配置されていますので、Windows エクスプローラーを使用して対象ファイルをコピーします。
C:\Program Files (x86)\UiPath\Orchestrator\Web.config
C:\Program Files (x86)\UiPath\Orchestrator\UiPath.Orchestrator.dll.config
C:\Program Files (x86)\UiPath\Orchestrator\Identity\appsettings.Production.json
C:\Program Files (x86)\UiPath\Orchestrator\Webhooks\appsettings.Production.json
C:\Program Files (x86)\UiPath\Orchestrator\ResourceCatalog\appsettings.Production.json (v2022.4以降)
※ これらの設定ファイルにはSQL Server接続のパスワードなどが含まれておりますので、送付前に手動で下記の情報をマスクしていただくことを推奨いたします。
SQL Server認証を行っている場合、接続ユーザー名とパスワード
<connectionStrings> <add name="Default" providerName="System.Data.SqlClient" connectionString="Data Source=SQL01;Initial Catalog=UiPath;User ID=********;Password=******" /> </connectionStrings>
"ConnectionStrings": { "DefaultConnection": "Data Source=SQL01;Initial Catalog=UiPath;User ID=********;Password=********" }
冗長構成にてRedisまたはHAA接続を行っている場合、接続パスワード
<appSettings> <add key="LoadBalancer.Redis.ConnectionString" value="redis-server:6379,password=******" /> </appSettings>
"LoadBalancerSettings": { "RedisConnectionString": "redis-server:6379,password=******" }
Elasticsearch利用時の認証情報
Orchestratorの内部的なメッセージはアプリケーションイベントログに記録されます。
アプリケーションイベントログを取得するには次の手順を実行します。
コマンドプロンプトで eventvwr を実行し、イベントビューアーを起動します。
左ペインにて イベントビューアー(ローカル) > Windowsログ > Application を右クリックし、 すべてのイベントを名前をつけて保存 を選択します。
*.evtx 形式でファイルを保存します。
OrchestratorサイトのIISログは既定値では C:\inetpub\logs\LogFiles\W3SVC2\*.log に格納されます。
W3VC2 の最後の数字はサイトIDを表し、サイトの作成順序によっては別のIDが割り当てられるケースがあります。
既定値では日本時間 9時 (UTC 0時) にローテーションされます。ファイル名は u_ex<yyMMdd>.log となるため、問題発生時前後のファイルを収集し、別ディレクトリにコピーします。
IISログは既定値ではW3C形式で保存されますが、分析しやすくするためにExcel形式に変換する手順について説明します。
コピーされたIISログをエディタで開き、下記のヘッダー部分を削除します。#Fields 行 の "date time" 以降は残し、保存します。
#Software: Microsoft Internet Information Services 10.0 #Version: 1.0 #Date: <yyyy-MM-dd hh:mm:ss> #Fields:
Excelを起動し、[データ] リボンにて [テキストまたはCSVから] を選択、ファイル種類として [すべてのファイル (*.*)] を選択し、IISログを選択しインポートします。
元のファイルの文字コードとして 65001: Unicode (UTF-8) 、区切り文字としてスペースを選択し、読み込みをクリックします。
ExcelテーブルとしてIISログがインポートされることを確認します。
各フィールドの意味についてはこちらのサイトをご参照ください。
ログ内部のdateおよびtimeフィールドは既定値ではUTCタイムゾーンで記録されるため、日本時間は+9:00します。
各処理が正常終了したかどうかは sc-status フィールド (HTTPステータスコード) を確認します。400番台、500番台が返されている場合には何らかの理由により処理が失敗した可能性があるため、同時刻のアプリケーションイベントログを合わせて確認します。
time-taken フィールドは処理にかかった時間 (ミリ秒) が記録されます。パフォーマンス低下時には time-taken の値が大きくなる可能性があります。
/signalr/* の処理はWebブラウザーまたはロボットがOrchestratorとWebSocket接続を確立および維持し、双方向の通信を行います。この接続は切断されると自動的に再接続され、IISログには time-taken が長時間の処理として記録されますが、WebSocket通信の特性上、異常ではありません。
Azure App Serviceを使用してOrchestratorを展開した場合には、診断ログを使用してWebサーバーログを有効化します。詳細はこちらのサイトをご参照ください。
Webサーバーログは Kudu (高度なツール) を使用して D:\home\LogFiles\http 配下のログファイルを採取します。
Orchestratorアプリケーションイベントログは UiPath.Orchestrator.dll.config を編集してログファイルへの出力を有効化します。同様にIdentity Serverアプリケーションイベントログはappsettings.jsonを編集します。詳細は 添付の手順書 をご参照ください。
Team, UiPath