MID サーバーのユーザー接続に関する問題

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:22分
  • このインスタンスは、MID サーバーのユーザー ログインとネットワーク接続に関する問題を MID サーバーの問題 [ecc_agent_issue] テーブルに書き込み、カスタムスクリプトで使用できるイベントまたはメール通知を送信するイベントを作成します。

    MID サーバーの問題 [ecc_agent_issue] テーブルのレコードは、MID サーバーユーザーがログインできない理由、または MID サーバーがそのインスタンスに接続できない理由についての情報を提供します。システムは、考えられる原因を示唆する情報を含むエラーメッセージが含まれている、このテーブル内の接続問題のレコードを表示します。デフォルトでは、MIDUserConnectivity というスケジュール済みジョブが 4 時間ごとに実行され、MIDUserConnectivity スクリプトインクルードが起動されて MID サーバーの接続アクティビティを評価します。MID サーバーの問題 [ecc_agent_issue] テーブルのレコードには、スケジュール済みジョブが実行されたときの MID サーバーのログイン試行および接続のステータスが反映されます。

    インスタンスの観点からは、次の場合 MID サーバーは [停止] です。
    • ユーザー認証が失敗する。
    • ユーザー認可が失敗する。
    • ネットワークの問題により MID サーバーが TCP/IP 接続を確立できなくなる。
    注:
    ユーザーを MID サーバーに関連付けるには、servicenow/<MID サーバー名>/agent/config.xml ファイルに移動して mid.instance.usernamemid.instance.password パラメーターにユーザー認証情報を入力します。変更を有効にするには、MID サーバーを再起動します。

    問題のログ記録方法

    ユーザー認証の失敗と認可の問題は、自動的に MID サーバーのエージェント ログ ファイルに記録されます。両方のメッセージは同じです:[ユーザーを認証できないか、適切なロールがありません]。問題が認可に関連している場合は、agent.log ファイルには欠落しているロールのリストが表示されます。

    デバッグを有効にすると、MID サーバーの問題はシステム ログ (syslog) に記録され、サマリーまたは詳細形式で表示できます。また、修復作業を追跡するためにサンプリング間隔をデフォルトの 4 時間から短くすることもできます。MID サーバーユーザーの問題のデバッグを有効にして設定する方法については、「MID サーバーのユーザー接続に関する問題の修復作業をテストする」を参照してください。

    提供されるデータ

    インスタンスでユーザー接続の問題が発生すると、MID サーバーの問題 [ecc_agent_issue] テーブルのレコードが開きます。
    図 : 1. ユーザー認証のエラーメッセージの例
    ユーザー認証のエラーメッセージの例
    MID サーバーの問題テーブルには、次のフィールドがあります。
    表 : 1. MID サーバーの問題のフィールド
    フィールド 説明
    前回検出日時 問題が最後に検出された日時。
    簡単な説明 指定されたユーザーまたは MID サーバーで発生する可能性のある問題を指定する、生成されたメッセージの内容。
    MID サーバー ジャカルタのリリースでは空です。
    問題ソース 問題を特定したプロセス。MID サーバーのユーザー接続に関するすべての問題については、ソースは MIDUserConnectivity です。
    状況 問題の現在の状態。次の状況が使用されます。
    • [新規]:インスタンスにより問題が作成されたときの開始状態。
    • [確認済み]:アドミニストレーターが最初に問題を調査したときに設定される状態。
    • [解決済み]:インスタンスにより設定される、問題が解決したことを示す終了状態。スケジュール済みジョブが再度実行されたときに問題が発生しなかった場合は、インスタンスにより自動的にこの値に設定されます。
    ドメイン MID サーバーのユーザーアカウントに関連付けられたドメイン。
    カウント 問題が検出された回数。スケジュール済みジョブが実行され、同じ問題が発生するたびに、このフィールドがインクリメントされます。

    ユーザー認証失敗

    インスタンスが MID サーバーのユーザーを認証するために使用する認証情報は、MID サーバー設定パラメーター [ecc_agent_config] テーブルで構成されます。MID サーバーのユーザーが無効な認証情報でインスタンスにログインしようとすると、インスタンスは接続を拒否し、login.failed イベントをユーザーのイベント [sysevents] テーブルに書き込みます。アドミニストレーターは、カスタムスクリプトまたは認証失敗のメール通知でこのイベントを使用できます。

    注:
    ユーザーの認証が失敗した場合、ユーザーの認可は試みられません。

    MID サーバーに関連付けられたユーザーアカウント

    MID サーバーの問題 [ecc_agent_issue] テーブルの次のメッセージのどちらも、MID サーバーに関連付けられているユーザーアカウントの認証に失敗したことを示します。
    • 1 つの停止中の MID サーバーに関連付けられているユーザー <ユーザー名> のログイン認証が失敗しました。MID サーバーのパスワードを確認してください。
    • <n> 個の停止中の MID サーバーに関連付けられているユーザー <ユーザー名> のログイン認証が失敗しました。MID サーバーのパスワードを確認してください。
    これらのメッセージが表示されるために必要な条件は次のとおりです。
    • MID サーバーに関連付けられている MID Server [ecc_agent] テーブルの [ステータス] フィールドが、MID サーバーが停止していることを示している。
    • MID サーバー設定パラメーター [ecc_agent_config] テーブルで識別されるユーザーが、1 つ以上の MID サーバーがインスタンスに接続する際に認証および認可に使用するように構成されているユーザーである。[ecc_agent_config] テーブルのレコードは、次の値を持つ必要があります。
      • パラメーター名 [param_name] フィールドが mid.instance.username に設定されている。
      • 値 [value] フィールドがユーザーの名前に設定され、ユーザー [sys_user] テーブルのユーザー ID [user_name] フィールドに対応している。
    • イベント [sysevent] テーブルに、スケジュールされた期間中にユーザーに関連付けられた最後のログイン試行が失敗したことを示すポストが含まれている。[sysevent] テーブルで作成されたレコードに次のフィールド値が含まれる。
      • イベント名 [name] フィールドが [login.failed] に設定されている。
      • パラメーター 1 [parm1] フィールドがユーザーの名前に設定されている。
    注:
    MID サーバーの問題 [ecc_agent_issue] テーブルの MID Server [mid_server] フィールドは空 (=NULL) です。

    mid-server ロールが MID サーバーに関連付けられていないユーザーアカウント

    MID サーバーに関連付けられていない mid_server ロールのユーザーが認証に失敗すると、次のメッセージが表示されます。[MID サーバーに関連付けられていない mid_server ロールのユーザー <ユーザー名> のログイン認証に失敗しました]

    このメッセージが表示されるために必要な条件は次のとおりです。
    • ユーザー ロール [sys_user_has_role] テーブルに、[sys_user] テーブルに格納されているユーザー レコードに関連付けられている sys_id と、[sys_user_role] テーブルに格納されている mid_server ロール レコードに関連付けられている sys_id をリンクするレコードが含まれている。
    • ユーザーが、MID サーバー設定パラメーター [ecc_agent_config] テーブルで、1 つ以上の MID サーバーがインスタンスに接続する際に認証および認可に使用するように構成されているユーザーとして識別されない。
    • イベント [sysevent] テーブルに、スケジュールされた期間中にユーザーに関連付けられた最後のログイン試行が失敗したことを示すポストが含まれている。
      • [sysevent] テーブルに、イベント名 [name] フィールドが [login.failed] に設定されているレコードが含まれる。
      • パラメーター 1 [parm1] フィールドがユーザーの名前に設定され、ユーザー [sys_user] テーブルのユーザー ID [user_name] フィールドに対応している。
    注:
    MID サーバーの問題 [ecc_agent_issue] テーブルの MID Server [mid_server] フィールドは空 (=NULL) です。

    ユーザー認可の失敗

    ユーザー認可のチェックは、MID サーバーがインスタンスで正常に認証された後に行われます。この手順では、システムは MID サーバーに関連付けられたユーザーアカウントに必要な最小限のロールが与えられていることを確認します。MIDServerCheck と呼ばれる SOAP Web サービスは、インスタンスでロール チェックを実行します。MID サーバーユーザーに適切なロールがある場合、接続は許可され、login イベントがイベント [sysevents] テーブルに書き込まれます。ユーザーに適切なロールがない場合、インスタンスは login.authorization.failed イベントをイベント [sysevents] テーブルに書き込みます。このイベントは、ユーザーの不足しているロールのカンマ区切りリストを提供します。アドミニストレーターは、カスタムスクリプトまたは認可失敗のメール通知でこのイベントを使用できます。

    次のように、ユーザーに mid_server ロールまたは重要な SOAP ロールがない場合、認可が失敗することがあります。
    • ユーザーに soap_script ロールがある場合、MIDServerCheck SOAP Web サービスが実行され、適切な MID サーバーのロールが確認されます。ユーザーに mid_server ロールまたは他の SOAP ロールのいずれかがない場合、認可は失敗し、login.authorization.failed イベントが作成されます。
    • ユーザーに soap_script ロールがない場合、そのユーザーは必要なすべての MID サーバーのロールを確認する MIDServerCheck SOAP Web サービスの起動を許可されません。認可は失敗しますが、login.authorization.failed イベントは作成されません。これが発生すると、インスタンスは次のメッセージを表示します。[MID サーバーユーザー <ユーザー名> の接続はインスタンスによって検出できません]

    1 つ以上の停止中の MID サーバーに関連付けられているユーザー

    MID サーバーの問題 [ecc_agent_issue] テーブルの次のメッセージのどちらも、停止している MID サーバーに関連付けられているユーザーアカウントの認可に失敗したことを示します。
    • 1 つの停止中の MID サーバーに関連付けられているユーザー <ユーザー名> のログイン認可が失敗しました。mid_server ロールを再割り当てして、必要なすべてのロールを付与してください。
    • <n> 個の停止中の MID サーバーに関連付けられているユーザー <ユーザー名> のログイン認可が失敗しました。mid_server ロールを再割り当てして、必要なすべてのロールを付与してください。
    MIDUserConnectivity スクリプトインクルードは、レポート期間内の最後のログイン試行がユーザー認可に失敗した 1 つ以上の停止中の MID サーバーに関連付けられたアクティブ ユーザーを識別します。このメッセージは、ユーザー認可の失敗が検出され、MIDServerCheck スクリプト化 Web サービスによってレポートされたときに生成されます。ただし、soap_script ロールが割り当てられていないユーザーのユーザー認可の失敗はレポートされません。これが発生した場合、ネットワーク接続メッセージによってユーザーの問題がレポートされます。
    このメッセージは、次の場合に MID サーバーの問題 [ecc_agent_issue] テーブルに表示されます。
    • ユーザーに、mid_server のロールがあるかどうかわからない。
    • ユーザーが、MID サーバー設定パラメーター [ecc_agent_config] テーブルで、1 つ以上の MID サーバーがインスタンスに接続する際に認証および認可に使用するように構成されているユーザーとして識別される。
    • イベント [sysevent] テーブルに、スケジュールされた期間中にユーザーに関連付けられた最後のログイン試行が失敗したことを示すポストが含まれている。[sysevent] テーブルに次の設定のレコードが含まれている。
      • イベント名 [name] フィールドが login.authorization.failed に設定されている。
      • パラメーター 1 [parm1] フィールドがユーザーの名前に設定され、ユーザー [sys_user] テーブルのユーザー ID [user_name] フィールドに対応している。
    注:
    MID サーバーの問題 [ecc_agent_issue] テーブルの MID サーバー [mid_server] フィールドは空 (=NULL) です。

    MID サーバーに関連付けられていない適切なロールを持つユーザー

    MID サーバーに関連付けられていない mid_server ロールのユーザーが認可に失敗すると、次のメッセージが表示されます。[MID サーバーに関連付けられていない mid_server ロールのユーザー <ユーザー名> のログイン認可に失敗しました]

    このメッセージは、mid_server ロールを持つユーザーアカウントが [ecc_agent_config] テーブル内の構成済み MID サーバーのユーザーとして識別されないユーザー認可の失敗が検出された場合に生成されます。失敗の発生時にユーザーアカウントが MID サーバーに関連付けられていた可能性があります。

    このメッセージは、次の場合に MID サーバーの問題 [ecc_agent_issue] テーブルに表示されます。
    • ユーザーに、mid_server ロールがある。ユーザー ロール [sys_user_has_role] テーブルに、[sys_user] テーブルに格納されているユーザー レコードに関連付けられている sys_id と、[sys_user_role] テーブルに格納されている mid_server ロール レコードに関連付けられている sys_id をリンクするレコードがある。
    • ユーザーが、MID サーバー設定パラメーター [ecc_agent_config] テーブルで、1 つ以上の MID サーバーがインスタンスに接続する際に認証および認可に使用するように構成されているユーザーとして識別されない。
    • イベント [sysevent] テーブルに、スケジュールされた期間中にユーザーに関連付けられた最後のログイン試行が失敗したことを示すポストが含まれている。[sysevent] テーブルに次の設定のレコードが含まれている。
      • イベント名 [name] フィールドが login.authorization.failed に設定されている。
      • パラメーター 1 [parm1] フィールドがユーザーの名前に設定され、ユーザー [sys_user] テーブルのユーザー ID [user_name] フィールドに対応している。
    注:
    MID サーバーの問題 [ecc_agent_issue] テーブルの MID サーバー [mid_server] フィールドは空 (=NULL) です。

    ネットワークの問題

    ネットワークの問題により、セッションを開始するために MID サーバーがインスタンスの TCP/IP サーバーに接続できなくなる可能性があります。この場合、インスタンスは MID サーバーを [停止] としてマークします。これは、インスタンスが所定の 5 分間隔以内に MID サーバーのハートビートを受信できなかったためです。

    ログインを試行していない、停止中の MID サーバーに関連付けられたユーザー

    MID サーバーの問題 [ecc_agent_issue] テーブル名の次のメッセージはいずれも、レポート期間中にログインを試行していない、MID サーバーに関連付けられているユーザーを指定します。
    • ユーザー <ユーザー名> は、1 つの停止中の MID サーバーに関連付けられています。レポート期間内にログイン試行はありません。
    • ユーザー <ユーザー名> は <n> 台の停止中の MID サーバーに関連付けられています。レポート期間内にログイン試行はありません。

    MIDUserConnectivity スクリプトインクルードは、インスタンスによってネットワーク接続が検出されない停止中の MID サーバーに関連付けられたアクティブ ユーザーをレポートします。

    このメッセージは、次の場合に MID サーバーの問題 [ecc_agent_issue] テーブルに表示されます。
    • ユーザーに、mid_server のロールがあるかどうかわからない。
    • ユーザーが、MID サーバー設定パラメーター [ecc_agent_config] テーブルで、1 つ以上の MID サーバーがインスタンスに接続する際に認証および認可に使用するように構成されているユーザーとして識別される。
    • スケジュール済みレポート期間中にユーザーのイベント [sysevent] テーブルに記録された、失敗または成功したログイン試行はありません。
    注:
    MID サーバーの問題 [ecc_agent_issue] テーブルの MID サーバー [mid_server] フィールドは空 (=NULL) です。

    ログインを試行していない、MID サーバーに関連付けられていないユーザー

    MID サーバーに関連付けられていない mid_server ロールのユーザーが、設定されたレポート間隔中にログインを試行しなかった場合、次のメッセージが表示されます。mid_server ロールのユーザー <ユーザー名> は MID サーバーに関連付けられていません。レポート期間内にログイン試行はありません。

    MIDUserConnectivity スクリプトインクルードは、インスタンスによって接続が検出されない MID サーバーに関連付けられていない mid_server ロールのアクティブ ユーザーをレポートします。

    このメッセージは、次の場合に MID サーバーの問題 [ecc_agent_issue] テーブルに表示されます。
    • ユーザーに、mid_server ロールがある。ユーザー ロール [sys_user_has_role] テーブルに、[sys_user] テーブルに格納されているユーザー レコードに関連付けられている sys_id と、[sys_user_role] テーブルに格納されている mid_server ロール レコードに関連付けられている sys_id をリンクするレコードがある。
    • ユーザーが、MID サーバー設定パラメーター [ecc_agent_config] テーブルで、1 つ以上の MID サーバーがインスタンスに接続する際に認証および認可に使用するように構成されているユーザーとして識別されない。
    • スケジュール済みレポート期間中にユーザーのイベント [sysevent] テーブルに記録された、失敗または成功したログイン試行はありません。
    注:
    MID サーバーの問題 [ecc_agent_issue] テーブルの MID サーバー [mid_server] フィールドは空 (=NULL) です。

    構成の問題

    上で説明した以下のメッセージのいずれかは、構成の問題を示す可能性があります。
    • MID サーバーに関連付けられていない mid_server ロールのユーザー <ユーザー名> のログイン認証に失敗しました。
    • MID サーバーに関連付けられていない mid_server ロールのユーザー <ユーザー名> のログイン認可に失敗しました。
    • mid_server ロールのユーザー <ユーザー名> は MID サーバーに関連付けられていません。レポート期間内にログイン試行はありません。
    これらは一般的な構成エラーです。
    • アドミニストレーターが、MID サーバー設定パラメーター [ecc_agent_config] テーブルに示されているようにユーザー レコードを MID サーバーレコードに関連付けませんでした。このテーブルは読み取り専用であり、直接更新することはできません。ユーザーを MID サーバーに関連付けるには、MID サーバーの config.xml ファイルでユーザー名とパスワードを設定し、MID サーバーを再起動します。
    • TCP/IP 接続に別のアカウントを使用するように MID サーバーを再構成するプロセス中に、まだアドミニストレーターがアカウントから mid_server ロールを削除したり、アカウントを削除したりしていません。
    • 多目的ユーザーアカウントは、MID サーバーアカウントとして使用する目的はありませんでしたが、このアカウントが作成されて mid_server ロールを含む多数のロールが付与されました。

    正常に認証および認可されたが、mid_server ロールは必要ない可能性があるユーザー

    MID サーバーに関連付けられていない mid_server ロールを持つユーザーが正常にログインすると、次のメッセージが表示されます。mid_server ロールのユーザー <ユーザー名> は正常に接続されていますが MID サーバーに関連付けられていません。mid_server ロールは、MID サーバーでのみ使用するために予約する必要があります。

    MIDUserConnectivity スクリプトインクルードは、設定済み MID サーバーのユーザーとして識別されない、スケジュールされた期間中に最後のログイン試行が成功した mid_server ロールを持つアクティブ ユーザーをレポートします。このメッセージは、ユーザーの認証情報が、システムアドミニストレーターまたは MID サーバーで実行されていないプロセスによって使用されていることを示します。ここでは、MID サーバーにデプロイされたアプリケーションに対してのみ mid_server ロールを使用する必要があるという前提があります。このメッセージの存在により、関係のない mid_server ロールを、それらを必要としないユーザーアカウントから削除することをシステムアドミニストレーターにリマインドします。

    このメッセージは、次の場合に MID サーバーの問題 [ecc_agent_issue] テーブルに表示されます。
    • ユーザーに、mid_server ロールがある。
    • ユーザーが、MID サーバー設定パラメーター [ecc_agent_config] テーブルで、1 つ以上の MID サーバーがインスタンスに接続する際に認証および認可に使用するように構成されているユーザーとして識別されない。
    • イベント [sysevent] テーブルに、スケジュールされた期間中にユーザーに関連付けられた最後のログイン試行が成功したことを示すポストが含まれている。[sysevent] テーブルに次の設定のレコードが含まれている。
      • イベント名 [name] フィールドが [ログイン] に設定されている。
      • パラメーター 1 [parm1] フィールドがユーザーの名前に設定され、ユーザー [sys_user] テーブルのユーザー ID [user_name] フィールドに対応している。
    注:
    MID サーバーの問題 [ecc_agent_issue] テーブルの MID Server [mid_server] フィールドは空 (=NULL) です。

    MID サーバーのユーザー接続に関する問題の修復作業をテストする

    MID サーバーの問題 [ecc_agent_issue] テーブルに表示されるユーザー接続の問題の解決を試みた後、サンプリング間隔を短くして次のスケジュール済みレポート期間まで待つ必要がなく修復作業をテストできます。

    始める前に

    必要なロール:admin

    このタスクについて

    この手順を使用してサンプリング間隔を再設定し、MID サーバーの問題 [ecc_agent_issue] テーブルの結果を調べます。サンプルの任意の時間スパンを設定できますが、5 分以上のウィンドウを定義する必要があります。これは、そのステータスをレポートする MID サーバーのハートビートのデフォルト間隔です。サンプリング間隔を短く設定するために推奨される方法は、MIDUserConnectivity スケジュール済みジョブからコードをコピーして変更し、バックグラウンド スクリプト ユーティリティで手動で実行することです。
    警告:
    MIDUserConnectivity スケジュール レコードのスクリプトを編集しないでください。このレコードを変更すると、インスタンスをアップグレードするときに更新されなくなります。

    手順

    1. 次のように移動する。 All (すべて) > システム定義 > スケジュール済みジョブ.
    2. MIDUserConnectivity スケジュール済みジョブを開きます。
    3. 次の行を [このスクリプトを実行] フィールドからコピーします。
      MIDUserConnectivity(0).checkConnectivity(4 * (60 * 60 * 1000));

      このコードは、4 時間のサンプリング間隔をミリ秒単位で設定し、MIDUserConnectivity(0) の値を使用してデバッグをオフにします。

    4. 次のように移動する。 システム定義 > スクリプト - バックグラウンド.
    5. スケジュール済みジョブのコードを [スクリプトを実行] フィールドに貼り付けます。
    6. 時間計算を (5 * 60 *1000) に変更して、サンプリング間隔を 5 分に設定します。
      変更されたコマンドは次のようになります。MIDUserConnectivity(0).checkConnectivity (5 * 60 *1000);
    7. [スクリプトを実行] をクリックします。
    8. 問題が発生している MID サーバーのレコードを開き、MID サーバーの問題関連リストを選択します。
      問題が次のように更新されます。
      • 問題が解決しない場合は、[カウント] 列がインクリメントされ、[前回検出日時] 列に現在の日付と時刻が表示されます。
      • 問題が解決した場合は、システムにより [状態][解決済み] に変更されます。
    9. オプション: レベルを選択してデバッグを有効にしてから、スクリプトを再度実行して、評価された各条件の内訳を確認することができます。
      これらの設定を使用して、デバッグ レベルを選択します。
      • サマリー ビューの場合は、[MIDUserConnectivity(1)] を入力します。
      • 詳細ビューの場合は、[MIDUserConnectivity(2)] を入力します。

      提供されるデバッグ情報の種類の詳細については、「MID サーバーユーザーのデバッグ出力の解釈」を参照してください。