インスタンスと MID サーバーの接続のトラブルシューティングSummary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } この記事では、次のような状況で障害が発生している MID サーバーのトラブルシューティング手順を説明します。 MID サーバーのサービスは稼働しています。MID サーバーホストからブラウザ経由で MID サーバーインスタンスに接続できます。MID サーバーホストからインスタンスに ping を実行できます。Windows ファイアウォールは設定されていません。MID サーバーでプロキシが設定されている可能性があります。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Instructions<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 1.MID サーバーのエージェントログを確認 MID サーバー エージェント ログで次のエラーを確認します。 10/01/19 09:07:23 (175) StartupSequencer WARNING * WARNING org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 10000 ms when posting to https://<instance>.service-now.com/InstanceInfo.do?SOAP10/01/19 09:07:23 (175) StartupSequencer SEVERE ERROR SOAP Request: <SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://www.service-now.com/GetMIDInfo" xmlns:m="http://www.service-now.com" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><m:execute></m:execute></SOAP-ENV:Body></SOAP-ENV:Envelope>10/01/19 09:07:23 (175) StartupSequencer SEVERE ERROR SOAP Response: Status code=0, Response body=null10/01/19 09:07:23 (175) StartupSequencer SEVERE ERROR Problem invoking InstanceInfo on https://<instance>.service-now.com/: Please check that the InstanceInfo page exists in the sys_public table and active="true".10/01/19 09:07:23 (175) StartupSequencer SEVERE ERROR org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 10000 ms when posting to https://<instance>.service-now.com/InstanceInfo.do?SOAP(Network Configuration issue) Please check that the MID server can ping the instance: https://<instance>.service-now.com/You may also need to configure the network that the MID server uses to allow traffic over TCP port 443.10/01/19 09:07:23 (175) StartupSequencer SEVERE ERROR * test failurejava.lang.IllegalStateException: Unable to connect to instance.at com.service_now.mid.services.StartupSequencer.runTests(StartupSequencer.java:386)at com.service_now.mid.services.StartupSequencer$Starter.run(StartupSequencer.java:349) 2.SOAP 呼び出しを確認 起動シーケンス中に、MID サーバーが以下の URL への SOAP 呼び出しを行うことで、インスタンスとの接続を確認します。ここでの <instance> はターゲットインスタンス名です。 https://<instance>.service-now.com/InstanceInfo.do?SOAP 上記のリンクを参照すると、次の応答が返ってきます。 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Server</faultcode> <faultstring> Error completing SOAP request - Only HTTP POST supported </faultstring> <detail>Error completing SOAP request</detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> これは、InstanceInfo.do?SOAP が GET リクエストを受け付けないため、想定される応答です。ブラウザでこのメッセージを表示するには、フレンドリーメッセージ表示をオフにしてください。 このブラウザテストは包括的なものではありません。一部のファイアウォールやプロキシサーバーは、ブラウザから開始されたトラフィックは許可しますが、user-agent やその他の HTTP ヘッダーフィールドをフィルタリングすることで、他のトラフィックをブロックします。この場合、ブラウザで URL をテストすることは機能しますが、MID Server は依然として接続できません。より徹底的なテストを実行するには、Postman などの SOAP クライアントツールを使用して、以下の情報でインスタンスへの SOAP POST 呼び出しを実行してください: HTTP URL: https://<instance>.service-now.com/InstanceInfo.do?SOAP HTTP Headers: Content-Type: text/xml;charset=UTF-8 user-agent: internal_soap_client SOAPAction: Get HTTP Body: <SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://www.service-now.com/GetMIDInfo" xmlns:m="http://www.service-now.com" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><m:execute><table xsi:type="xsd:string">ecc_agent_log</table></m:execute></SOAP-ENV:Body></SOAP-ENV:Envelope> 次の応答が返ってきます。応答には、インスタンスからの情報を含むタグが付けられています。 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <executeResponse xmlns="http://www.service-now.com"> <result> <install_name>XXXX</install_name> <instance_name>myinstance</instance_name> <instance_id>XXXX</instance_id> <build_date>XXXX</build_date> <build_tag>XXXX</build_tag> <system_id>XXXX</system_id> <node_id>XXXX</node_id> <instance_ip>XXXX</instance_ip> <mid_buildstamp>mXXXX</mid_buildstamp> <mid_version>XXXX</mid_version> </result> </executeResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> MID サーバーが Linux で実行されている場合は、次のように curl を実行することもできます。出力 (xmllint でフォーマット) は上記と同じになります。 curl --header 'Content-Type: text/xml;charset=UTF-8' --header 'SOAPAction: Get' --header 'user-agent: internal_soap_client' --data '<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://www.service-now.com/GetMIDInfo" xmlns:m="http://www.service-now.com" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><m:execute><table xsi:type="xsd:string">ecc_agent_log</table></m:execute></SOAP-ENV:Body></SOAP-ENV:Envelope>' https://myinstance.service-now.com/InstanceInfo.do?SOAP | xmllint --format - 3.MID サーバーのプロキシ設定を確認 ファイル /agent/config.xml で MID サーバーのプロキシ設定を確認 <parameter name="mid.proxy.use_proxy" value="true"/><parameter name="mid.proxy.host" value="proxy.company.net"/><parameter name="mid.proxy.port" value="803"/> プロキシ情報パラメーターをブラウザに入力して手順 2 で接続をテストできます。 https://<instance>.service-now.com/InstanceInfo.do?SOAP 4.スクリプト済み Web サービス「InstanceInfo」の確認 スクリプト済み Web サービス「InstanceInfo」のカスタマイズの有無を確認します。 https://<instance>.service-now.com/nav_to.do?uri=sys_web_service.do?sys_id=0cbfe98d83301000dada83ec37d929c8 5.SSL のトラブルシューティング インスタンスの IP アドレスを確認するには、「インスタンスの IP アドレス情報の確認」を参照してください。 または、次のコマンドを使用できます: ping instance_name dig +noall +answer instance_name SSL ネゴシエーションの問題が疑われる場合は、SSL デバッグを有効にします: MID Server で、../agent/conf/wrapper-override.conf ファイルを開きます。ファイルの末尾に次の行を追加します: wrapper.java.additional.3=-Djavax.net.debug=sslMID Server サービスを再起動します。wrapper.log ファイルで SSL デバッグ情報を確認します。 重要: 調査が完了したら、この行を削除して MID Server を再起動してください。 ログで次の情報を探します: trustStore is: <Install>\agent\jre\lib\security\cacertsTLS プロトコルバージョン (TLSv1.2)ClientHello の Cipher SuiteServerHello の Cipher Suite MID Server ホストで Wireshark パケットキャプチャを実行すると、SSL セッションハンドシェイクを表示できます。インスタンスの IP アドレスでフィルタリングします。SSL ハンドシェイクは次のシーケンスに従う必要があります: MID Server Client Hello → Instance← Server Hello← Certificate← Server Key Exchange← Hello DoneClient Key Exchange → Change Cypher Spec → Encrypted Handshake Message → ← Change Cypher Spec← Encrypted Handshake Message← Application Data →