Orion: Webコンソール HTTP 500 / 503 エラー表示の対応

Version 17

    ■ はじめに

     

    Orion サーバーを再起動した時、まれに、Webコンソールにアクセスできずに以下エラーが発生するケースがあります。

     

    - HTTP 500 - 内部サーバー エラー。

    - HTTP 503 - サービスを使用できません。

     

    その際の対応方法について記載致します。

     

     

    ■ 概要

     

    監視サービスには影響を与えない、IIS再起動 または IIS Application Pool 再起動 で復旧するケースがありますので、

    それらコマンドにおいての対応方法について記載いたします。もし復旧しない場合は、OS再起動してください。それでも、

    エラー継続の場合は、設定ウィザードにて、Webサイトの再作成することをおすすめ致します。

     

     

    ■ 事前確認

     

    IIS 7.0、IIS 7.5、および IIS 8.0 の HTTP 状態コード - Microsoft

     

    以下の表で、一般的な HTTP 状態コードの原因を説明します。

    コード説明注意事項
    500内部サーバー エラー。

    この HTTP 状態コードは、多くのサーバー側の原因により発生します。

    942031 IIS 7.0 でホストされている Web サイトにアクセスすると、エラー メッセージ "HTTP エラー 500.0 - 内部サーバー エラー" が表示される

    503.0サービスを使用できません。現在停止されている、または現在無効になっているアプリケーション プールに要求が送信されました。この問題を解決するには、送信先のアプリケーション プールが開始していることを確認してください。イベント ログに、アプリケーション プールが停止または無効になっている原因についての情報が表示されている可能性があります。

     

     

    HTTPステータスコード - Wikipedia

     

    - 500 Internal Server Error

     サーバ内部エラー。サーバ内部にエラーが発生した場合に返される。

     例として、CGIとして動作させているプログラムに文法エラーがあったり、設定に誤りがあった場合などに返される。

     

    - 503 Service Unavailable

     サービス利用不可。サービスが一時的に過負荷やメンテナンスで使用不可能である。

     例として、アクセスが殺到して処理不能に陥った場合に返される。

     

     

    IISバージョンWindows Server バージョン
    IIS 7.0Windows Server 2008
    IIS 7.5Windows Server 2008 R2
    IIS 8.0Windows Server 2012
    IIS 8.5Windows Server 2012 R2
    IIS 10.0Windows Server 2016

     

    Internet Information Services - Wikipedia

    インターネット情報サーバー (IIS) のバージョンを取得する方法 - Microsoft

     

     

    ■ 対応方法

     

    Getting Started with AppCmd.exe : The Official Microsoft IIS Site - Microsoft

     

     

    【アプリケーションプール再起動 (Application Pool Reboot)】

     

    Start or Stop an Application Pool (IIS 7) - Microsoft

     

    /*** 停止 [STOP] ***/

     

    %windir%\system32\inetsrv\appcmd stop apppool "SolarWinds Orion Application Pool"

     

    /*** 開始 [START] ***/

     

    %windir%\system32\inetsrv\appcmd start apppool "SolarWinds Orion Application Pool"

     

     

     

    【NetPerfMon サイト再起動 (NetPerfMon Site Reboot)】

     

    /*** 停止 [STOP] ***/

     

    %windir%\system32\inetsrv\appcmd stop site "SolarWinds NetPerfMon"

     

    /*** 開始 [START] ***/

     

    %windir%\system32\inetsrv\appcmd start site "SolarWinds NetPerfMon"

     

     

     

    【IIS再起動 (IIS Reboot)】

     

    iisreset /restart

     

     

     

    アプリケーションプール再起動の実行例 (Example)

     

    // Windows Server 2012 R2 (IIS8)

     

    C:\Users\Administrator>%windir%\system32\inetsrv\appcmd stop apppool "SolarWinds Orion Application Pool"

    "SolarWinds Orion Application Pool" は正常に停止されました

     

    C:\Users\Administrator>%windir%\system32\inetsrv\appcmd start apppool "SolarWinds Orion Application Pool"

    "SolarWinds Orion Application Pool" は正常に開始されました。

     

     

     

    ■ 対応策

     

    【Windows Update および NPM Upgrade】

     

    - Windows Update にて、すべてのウィンドウズパッチ適応の実施をお願い致します。(再起動後、同様に行って追加パッチが無いことを確認して下さい)

    - NPM 最新版へのアップグレードの実施をお願い致します。(NPM 12.0 はパフォーマンス改善が含まれております)

     

    これらを実施していただくことにより、発生頻度を抑止できます。

     

     

     

    ■ アラートとアクショントリガー

     

    最新版 SAM (サーバー&アプリケーションモニター) を使用頂くことで、アラート内のアクショントリガーに IIS プールの再起動ができるアクションが利用できます。

    同機能をもちいていただくことにより、自動化された障害対応が可能となります。

     

    Restart IIS sites or application pools

     

    参考画面)

     -  アラート > アラート編集 > トリガーアクション > アクションを追加

     

     

    Restart IIS sites or application pools - SolarWinds Worldwide, LLC. Help and Support

    Available alert actions - SolarWinds Worldwide, LLC. Help and Support

     

     

     

    ■ タスクスケジューラーとバッチファイル

     

    SAM が入っていない環境におきましてはバッチなどで実行するための、IIS と IIS Application Pool 再起動の手順例を記載いたします。

     

    *** タスクスケジューラー ***

     

    Windows イベントファイルにある「アプリケーションとサービス ログ」内の "SolarWinds.Net" のイベントを確認します。

    確認しているログは "SolarWinds.Orion.Core.BusinessLayer" です。このイベントが発行されると以下のバッチを実行するスケジュールとしております。

    (起動・停止時にも同イベントが発行されるので、Orion サービス停止しても IIS と IIS Application Pool 再起動が実行されます)

     

    *** バッチファイル ***

     

    c:\For_SolarWinds_IISreset.bat

    ------------------------------------------------------------------------------------------------------------------------------------------------------------

    timeout /T 600

    %windir%\system32\iisreset /restart

    timeout /T 60

    %windir%\system32\inetsrv\appcmd stop apppool "SolarWinds Orion Application Pool"

    timeout /T 60

    %windir%\system32\inetsrv\appcmd start apppool "SolarWinds Orion Application Pool"

    ------------------------------------------------------------------------------------------------------------------------------------------------------------

    ※ 参考ファイルを添付いたしますが、必ず、検証環境にてご確認下さい。 同ファイルを使用しての責任は一切負いません。

     

     

     

    ■ 詳細情報

     

    【IISreset】

     

    IIS を再起動する - Microsoft

    Restarting IIS - Microsoft

     

    "iisreset /restart" は、IIS は、再起動する前にすべてのサービスを停止しようとします。

    IISReset コマンド ライン ユーティリティは、すべてのサービスが停止するまで 1 分間待ちます。

    (個別のNetPerfMon サイト再起動は不要であり、IIS すべてのサービスを再起動します)

     

    < IISreset 実行中画面 >

    iisreset1.png

     

     

     

    IISreset と Application Pool リサイクルの違い  (IISreset vs Application Pool Recycle)

     

    IISRESET vs Recycling Application Pools | Good Will & Technology civilize our living

    http://mvolo.com/starting-stopping-and-recycling-iis-70-web-sites-and-application-pools/

     

    先に記載した通り、IISreset はすべてのサービスを停止すると述べました。したがって、アプリケーションプール側のプロセスも再起動します。

    詳細は上記LINKをご確認いただければと思いますが、IISのみで検討すると、ほとんどのケースでは Application Pool リサイクルとなります。

    実際には、IIS worker process の w3wp.exe が再起動されます。SolarWindsにおいてこれだけでは不十分なケースがあり、IISreset を

    依頼しております。

     

    IISreset 実行後は、アクセスしない限り IIS worker process は動作しておりませんので、手動 Application Pool リサイクルは必要ではない

    との認識もありますが、障害対応の自動化プロセスにおいて、念の為、本記事では IISreset 後 Application Pool Recycle を記載しております。

    (メンテナンスされる方の判断において、必要なアクションのみを実行していただければ幸いです)

     

     /* IISreset */

     

                     svchost.exe                 Host Process for Windows Services

                          w3wp.exe               IIS Worker Process

                     inetinfo.exe                 Internet Information Services

     

       /* Application Pool */

     

                          w3wp.exe               IIS Worker Process

     

     

    < Memo >

      - Application Pools = IIS Worker Process = w3wp.exe

      - w3wp = WWW Worker Process

     

    IIS Worker Process - Microsoft

     

    < 関連プロセス >

    w3wp.exe.png

     

    [補足]

     

    -  Application Pool は、1740 分 (29Hr=1Day5Hr) ごとに、リサイクルが行われております。 また、使用しなければ 20 分でタイムアウトする動作となります。

    SolarWinds Orion Application Pool_Advanced setting.pngSolarWinds Orion Application Pool_Advanced settings_En.png

     

     

    ■ 参考情報

     

    Webコンソールにアクセス不能時の修復方法

    (500) Internal Server Error - SolarWinds Worldwide, LLC. Help and Support

    Restarting IIS Site or Application Pools - SolarWinds Worldwide, LLC. Help and Support

    Rebuild the Orion Website - SolarWinds Worldwide, LLC. Help and Support

    Error 500 on the Web Console - SolarWinds Worldwide, LLC. Help and Support

    Web Console Error 500: Rebuild website + reinstall IIS - SolarWinds Worldwide, LLC. Help and Support

    500 website error after installing Core Hotfix 6 - SolarWinds Worldwide, LLC. Help and Support

    Always running feature for IIS websites - SolarWinds Worldwide, LLC. Help and Support

    Configure the SolarWinds Orion application pool to improve loading period - SolarWinds Worldwide, LLC. Help and Support

    Website is not restarting in IIS after server reboot - SolarWinds Worldwide, LLC. Help and Support

    Recreate the Orion Web Console - SolarWinds Worldwide, LLC. Help and Support