概要
このドキュメントでは、CloudCenterエラー「Unable to communicate with orchestrator」(エラー408)のトラブルシューティング方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Linux インターフェイス
- 仮想マシン環境
- VIM
使用するコンポーネント
シスコでは、次の分野の知識を推奨しています。
- CloudCenterアプライアンス
- CloudCenterアーキテクチャ
- Linux O.S
- CCM(CloudCenter Management)
- CCO(CloudCenter Orchestrator)
- AMQP(Advanced Message Queuing Protocol)
このドキュメントの情報は、特定のプライベートラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
問題
停電、予期しない再起動、または長時間のネットワーク障害が原因で、CloudCenterアプライアンスの同期が解除されることがあります。アプライアンスが正しく接続されていることを確認するには、次のチェックを行う必要があります。CloudCenter ManagerのGraphical User Interface(CCM GUI)でオーケストレータを設定すると、図に示すようにエラーが表示されることがあります。
CCOログを確認すると、次のエラーが表示されます。
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:337)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
... 87 more
java.lang.RuntimeException: Failed to connect to CCM, please check network connection between CCM and CCO. JobId: 21912
at com.osmosix.commons.mgmtserver.impl.MgmtServerServiceImpl.getUserCloudAccountByJobId(MgmtServerServiceImpl.java:236)
at com.osmosix.gateway.persistence.impl.hazelcast.AbstractDistributedJobDaoImpl.find(AbstractDistributedJobDaoImpl.java:109)
at com.osmosix.gateway.persistence.impl.hazelcast.AbstractDistributedJobDaoImpl.find(AbstractDistributedJobDaoImpl.java:17)
at com.osmosix.gateway.lifecycle.impl.AbstractLifecycle.getJob(AbstractLifecycle.java:207)
at com.osmosix.gateway.lifecycle.helpers.LifecycleReaper.reapApp(LifecycleReaper.java:62)
at com.osmosix.gateway.lifecycle.helpers.LifecycleReaper.reapDeadApps(LifecycleReaper.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
解決方法
コンポーネント間のハンドシェイクを更新するために、CloudCenterコンポーネントを1つずつ再起動する必要がある
AMQP
ステップ1:rootとしてログインします。
ステップ2:AMQPサービスを再起動します。
4.8.1.2までのすべてのバージョン
# /etc/init.d/tomcatgua restart
4.8.2以降のバージョン
# systemctl restart rabbit
CCO
ステップ1:rootとしてログインします。
ステップ2:CCOサービスの再起動
4.8.1.2までのすべてのバージョン
# /etc/init.d/tomcat restart
4.8.2以降のバージョン
# systemctl restart cco
CCM
ステップ1:rootとしてログインします。
ステップ2:CCMサービスの再起動
4.8.1.2までのすべてのバージョン
# /etc/init.d/tomcat restart
4.8.2以降のバージョン
# systemctl restart ccm
確認
すべてのアプライアンスが正しく接続されていることが重要です。そのため、CloudCenterの各コンポーネントをチェックインする必要があります。
CCM
ステップ1:rootとしてログインします。
ステップ2:tomcat(4.8.2より前)またはCCMサービス(4.8.2以降)が実際に実行されていることを確認します
4.8.1.2までのすべてのバージョン
[root@localhost ~]# ps -ef | grep -i tomcat
4.8.2以降のバージョン
[root@localhost ~]# systemctl status ccm
ステップ3:Telnetがインストールされている場合、CCOからCCMに向けて試行を行うことができます。これにより、通信が可能であることを理解できます
[root@cliqr-centos7-base-image ~]# telnet 10.31.127.41 8443
Trying 10.31.127.41...
Connected to 10.31.127.41.
Escape character is '^]'.
エラーが発生すると、通信できません。これは修正する必要があります。
ステップ4:CCM GUIでオーケストレータを設定する場合は、ホスト名が/etc/hostsファイルに存在することを確認します
[root@cliqr-centos7-base-image ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 devCC
10.31.127.42 CCO
AMQP
ステップ1:rootとしてログインします。
ステップ2:AMQPから既存の各CCOへの接続が確立されていることを確認します。
[root@localhost ~]# rabbitmqctl list_connections -p /cliqr
Listing connections ...
cliqr 10.31.127.42 33062 running
cliqr_worker 10.31.127.42 33130 running
cliqr_worker 10.31.127.59 38596 running
cliqr_worker 10.31.127.67 49781 running
cliqr_worker 10.31.127.79 49778 running
cliqr_worker 10.31.127.85 49786 running
前のコマンドでは、CCOへの接続はcliqrユーザの行に表示されます(この場合、CCOは1つだけです)
ロードバランサでハイアベイラビリティ(HA)とAMQPを使用すると、AMQPのロードバランサIPに接続されたCCOごとに1つの接続が表示されます(次の例では2つのCCOがあります)
[root@amqp-azre1 ~]# rabbitmqctl list_connections -p /cliqr
Listing connections ...
cliqr 15.1.0.10 35788 running
cliqr 15.1.0.10 36212 running
cliqr_worker 15.1.0.10 37714 running
cliqr_worker 15.1.0.10 38362 running
cliqr_worker 15.1.0.10 41102 running
そうでない場合は、tomcatguaプロセス(4.8.2以前)またはrabbitサービス(4.8.2以降)を再起動します
CCO
ステップ1:rootとしてログインします。
4.8.1.2までのすべてのバージョン
[root@localhost ~]# ps -ef | grep -i tomcat
4.8.2以降のバージョン
[root@localhost ~]# systemctl status cco
ステップ3:CCMへの接続が確立されていることを確認します。CLOSE_WAITステータスにも表示されます(この場合、CCMは10.31.127.41です)
[root@cliqr-centos7-base-image ~]# netstat -anp | grep 10.31.127.41
tcp 86 0 10.31.127.42:38542 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38562 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38546 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38566 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38556 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38554 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38550 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38564 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38560 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38568 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38552 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38558 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38570 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38548 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38572 10.31.127.41:8443 CLOSE_WAIT 1330/java
tcp 86 0 10.31.127.42:38544 10.31.127.41:8443 CLOSE_WAIT 1330/java