Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Problema

Soluzione

AMQP

CCO

CCM

Verifica

CCM

AMQP

CCO

Introduzione

In questo documento viene descritto come risolvere i problemi relativi all'errore CloudCenter "Unable to communication with orchestrator" (Impossibile comunicare con l'orchestrator) con l'errore 408

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- Interfaccia Linux

- Ambiente macchina virtuale

- VIM

Componenti usati

Cisco raccomanda la conoscenza di:

- Appliance CloudCenter

- Architettura CloudCenter

- Linux OS

- CCM (CloudCenter Management)

- CCO (CloudCenter Orchestrator)

- AMQP (Advanced Message Queuing Protocol)

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Problema

Interruzioni dell'alimentazione, riavvii imprevisti o guasti di rete per lunghi periodi di tempo potrebbero causare la desincronizzazione dell'appliance CloudCenter. È necessario eseguire i controlli seguenti per verificare che gli accessori siano collegati correttamente Quando si configura l'orchestrator con l'interfaccia grafica utente di CloudCenter Manager (GUI CCM), gli utenti potrebbero ricevere l'errore, come mostrato nell'immagine.

Quando si controllano i registri CCO, è possibile visualizzare il seguente errore:

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)

Soluzione

È necessario riavviare i componenti CloudCenter uno alla volta per aggiornare l'handshake tra i componenti

AMQP

Passaggio 1. Accedere come utente root

Passaggio 2. Riavviare il servizio AMQP

Su tutte le versioni fino a 4.8.1.2

# /etc/init.d/tomcatgua restart

Nelle versioni a partire dalla 4.8.2

# systemctl restart rabbit

CCO

Passaggio 1. Accedere come utente root

Passaggio 2. Riavviare il servizio CCO

Su tutte le versioni fino a 4.8.1.2

# /etc/init.d/tomcat restart

Nelle versioni a partire dalla 4.8.2

# systemctl restart cco

CCM

Passaggio 1. Accedere come utente root

Passaggio 2. Riavviare il servizio CCM

Su tutte le versioni fino a 4.8.1.2

# /etc/init.d/tomcat restart

Nelle versioni a partire dalla 4.8.2

# systemctl restart ccm

Verifica

È importante che tutti gli accessori siano collegati correttamente, per questo è necessario eseguire il check-in di ciascuno dei componenti CloudCenter.

CCM

Passaggio 1. Accedere come utente root

Passaggio 2. Verificare che tomcat (precedente alla 4.8.2) o il servizio CCM (successivo alla 4.8.2) siano effettivamente in esecuzione

Su tutte le versioni fino a 4.8.1.2

[root@localhost ~]# ps -ef | grep -i tomcat

Nelle versioni a partire dalla 4.8.2

[root@localhost ~]# systemctl status ccm

Passaggio 3. Se è installato telnet, è possibile effettuare un tentativo da CCO verso CCM, in modo da comprendere che la comunicazione è possibile

[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 '^]'.

Se si verifica un errore, non è possibile alcuna comunicazione. Questo deve essere risolto.

Passaggio 4. Se per configurare Orchestrator sull'interfaccia GUI di CCM verrà utilizzato un nome host, assicurarsi che il nome host sia presente nel file /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

Passaggio 1. Accedere come utente root

Passaggio 2. Verificare che sia stata stabilita una connessione tra l'AMQP e ognuno dei CCO esistenti.

[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

Nel comando precedente, le connessioni verso il CCO possono essere visualizzate nella riga con l'utente del client (in questo caso c'è un solo CCO)

In caso di alta disponibilità (HA) e AMQP in un load balancer, verrà visualizzata una connessione per CCO collegata all'IP del load balancer di AMQP (nell'esempio seguente sono presenti 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

In caso contrario, riavviare il processo tomcatgua (precedente al punto 4.8.2) o il servizio conigli (successivo al punto 4.8.2)

CCO

Passaggio 1. Accedere come utente root

Su tutte le versioni fino a 4.8.1.2

[root@localhost ~]# ps -ef | grep -i tomcat

Nelle versioni a partire dalla 4.8.2

[root@localhost ~]# systemctl status cco

Passaggio 3. Verificare che siano stati stabiliti collegamenti verso la CCM. Dovrebbe apparire anche nello stato CLOSE_WAIT (In questo caso il nostro CCM è su 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