LoginSignup
7
0
お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

【UiPath】オンプレ版Orchestratorのログインで500エラーが出た時に確認すべきこと

Last updated at Posted at 2024-06-11

はじめに

“RPA…様々な作業を連携させて自動化する技術” 程度の知識しか持ち合わせていなかった私が、最近、Uipathを扱うプロジェクトに参画しました。
学習のため、AWSでサーバー構築→オンプレミスOrchestrator(以下OC)をインストール→AR実行/UR実行という流れを数回試行。なんとなく分かってきたぞ…という段階で、OCとStudioのバージョンの違いによる仕様の差異の調査をすることに。
OCサーバーとSQLサーバーの構築が割とスムーズに完了し、さてOCのパブリックURLにアクセスしてログインしよう!というところで500エラーに遭遇。しかも全く同じ流れで2度も。なぜだ…
結論、原因は些細なことでしたが、かなり沼にはまりました。未来の自分のために、確認すべきポイントを書き留めておきます。

注意
初学者のため内容に不備があると思われます。
誤りがありましたらコメントでご教示いただけますと幸いです。

画像.png

前提条件

OC環境(サーバー・DB構成)

  • OCサーバー:EC2上でOrchestratorが稼働するサーバー
  • SQLサーバー:EC2上でOrchestratorのデータを保存するサーバー
  • RDS:Orchestratorのデータを保存するデータベース

クライアントからOrchestratorサーバーに接続する際は、443番ポートを使用。
OrchestratorサーバーからSQLサーバーの接続する際は、1433番ポートを使用。
※2台のサーバー間でネットワークの疎通が取れている必要がある。

ソフトウェア要件

下記UiPathドキュメントの「Orchestrator インストール ガイド」に記載されているソフトウェア要件に則っている。

インストールしたコンポーネント

コンポーネント バージョン
IIS設定スクリプト
.NET 6.0 Hosting Bundle 3.1.32
URL Rewrite 2.1
WebDeploy 3.6
Orchestrator(On-premise) 2022.10.4

サーバー証明書

自己署名証明書を利用。
参照:

確認すべきポイント

本題です。
500エラー(サーバーサイドのエラー)であることが分かっているので、特に疑うべきはDB接続orサーバー証明書関連。

  • IISの状態
    サーバー マネージャーのインターネット インフォメーション サービス(IIS)マネージャーでIISが正常に起動しているか確認。

  • DB接続状態

    • SSMS(SQL Server Management Studio)でDBに接続できているか確認
    • PowerShellで下記コマンドを叩き、SQL Serverデータベースに接続できるか確認
$connectionString = "Server=[プライベートIPアドレスorサーバー名];Database=[データベース名];User Id=[ユーザー名];Password=[パスワード];"
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = $connectionString
$conn.Open()
if ($conn.State -eq 'Open') {
    Write-Host "Connection succeeded"
} else {
    Write-Host "Connection failed"
}
$conn.Close()
  • サーバー証明書
    次の3点を確認。

    • サーバー証明書がOCサーバー(IIS)側で、Windowsキー+R → certlm.mscを開き「個人」と「信頼されたルート証明機関」に存在しているか確認
    • サーバー マネージャーのインターネット インフォメーション サービス(IIS)マネージャーに存在しているサーバー証明書の拇印が①に存在しているサーバー証明書の拇印と一致しているか
    • SAN値(サブジェクト代替名)が適切に設定されているか(=URLのドメイン名と同じdnsNameになっているか)
  • 名前解決
    /etc/hostsファイルの設定が正しいか次の2点を確認。

    • OCサーバー(IIS)側にSQLサーバーのサーバー名とプライベートIPアドレスを指定している
    • ローカルPC側にOCサーバーのサーバ名とパブリックIPアドレスを指定を指定している
  • OCサーバー(IIS)→ SQLサーバの疎通確認

    • コマンドプロンプトでpingコマンドを実行し疎通確認
    • PowerShellでTestnet Connectionコマンドを実行し指定ポート(1433)が開いているか確認
Test-NetConnection [SQLサーバーのプライベートIPアドレス or サーバ名] -Port 1433
  • ログの確認
    • C:\Windows\System32\LogFiles\HTTPERR内の該当するログを見る
    • %SystemDrive%\inetpub\logs\LogFiles内の該当するログの500エラーの箇所を見る

 ※ 今回はあまり有益な情報を得られず…

  • その他
    ①接続情報を見てみる(ClientIDとかDB情報とか)
    • C:\Program Files (x86)\UiPath\Orchestrator\Identity\appsettings.Production.json
    • C:\Program Files (x86)\UiPath\OrchestratorのUiPath.Orchestrator.dll.config
    • C:\Program Files (x86)\UiPath\Orchestrator\Webhooks\appsettings.Production.json

  ②500エラーの画面でデベロッパーツールを開き、ⅽtrl+F5でスーパーリロードを行う。
  →エラーログを見る。

今回の原因

今回遭遇した500エラーのそれぞれの原因は、不明点も残りますがおそらく次の通りと思われます。

①名前解決が正しくできていなかった

OCサーバー(IIS側)の/etc/hostsファイルを書き換えているつもりが、実際はローカルPC側の方に設定しまっていたのだと思います。
リモートデスクトップを全画面表示にすると、時々ローカルPC側のタスクバーが表示されてしまうようです。
…罠ですね(笑)
全く気がつきませんでした。何度設定し直してもうまくいかないわけです(-_-;)

②何らかのバグ

時間を空けて数回IISを再起動したら、何事もなかったかのようにOrchestratorのログイン画面が出ました。(えぇ…涙)
ちなみに、EC2インスタンスを停止→起動では解決できませんでした。

おわりに

確認すべきポイントを何周もしたり、手順書を初めから読み返して設定を確認したり、少し前のEBSのスナップショットからサーバーを構築し直したり…とエラー解決に想定よりもかなり時間が掛かってしまいました。
ただ、色々試行錯誤したことで得られた知見も多く、今後の他の業務でも活かせるのではないかと思います。大変勉強になりました。

7
0
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
7
0