Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Problema

Solución

AMQP

CCO

CCM

Verificación

CCM

AMQP

CCO

Introducción

Este documento describe cómo resolver el error de CloudCenter "No se puede comunicar con el orquestador" con el error 408

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Interfaz Linux

- Entorno de máquina virtual

- VIM

Componentes Utilizados

Cisco recomienda conocimientos en:

- Dispositivos CloudCenter

- Arquitectura de CloudCenter

- Linux O.S.

- CCM (gestión de CloudCenter)

- CCO (CloudCenter Orchestrator)

- AMQP (protocolo avanzado de Message Queue Server)

La información de este documento se creó a partir de los dispositivos en un entorno de laboratorio privado específico. All of the devices used in this document started with a cleared (default) configuration. Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Problema

Las interrupciones del suministro eléctrico, los reinicios inesperados o los fallos de red durante largos períodos de tiempo podrían provocar la dessincronización del dispositivo CloudCenter. Es necesario realizar las siguientes comprobaciones para saber que los dispositivos están correctamente conectados. Al configurar el orquestador en la interfaz gráfica de usuario de CloudCenter Manager (GUI de CCM), los usuarios pueden obtener el error como se muestra en la imagen.

Al verificar los registros de CCO, se puede mostrar el siguiente error:

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)

Solución

Es necesario reiniciar los componentes de CloudCenter uno por uno para actualizar el intercambio de señales entre los componentes

AMQP

Paso 1. Inicie sesión como root

Paso 2. Reiniciar servicio AMQP

En todas las versiones hasta 4.8.1.2

# /etc/init.d/tomcatgua restart

En versiones a partir de 4.8.2

# systemctl restart rabbit

CCO

Paso 1. Inicie sesión como root

Paso 2. Reiniciar servicio CCO

En todas las versiones hasta 4.8.1.2

# /etc/init.d/tomcat restart

En versiones a partir de 4.8.2

# systemctl restart cco

CCM

Paso 1. Inicie sesión como root

Paso 2. Reiniciar servicio CCM

En todas las versiones hasta 4.8.1.2

# /etc/init.d/tomcat restart

En versiones a partir de 4.8.2

# systemctl restart ccm

Verificación

Es importante que todos los dispositivos estén correctamente conectados, por lo que es necesario comprobar cada uno de los componentes de CloudCenter.

CCM

Paso 1. Inicie sesión como root

Paso 2. Compruebe que tomcat (anterior a 4.8.2) o el servicio CCM (posterior a 4.8.2) se estén ejecutando realmente

En todas las versiones hasta 4.8.1.2

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

En versiones a partir de 4.8.2

[root@localhost ~]# systemctl status ccm

Paso 3. Si Telnet está instalado, se puede realizar un intento de CCO hacia CCM, esto permitirá comprender que la comunicación es posible

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

Si se produce un error, no es posible realizar ninguna comunicación. Esto tiene que solucionarse.

Paso 4. Si para configurar el orquestador en la GUI de CCM se utilizará un nombre de host, asegúrese de que el nombre de host esté presente en el archivo /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

Paso 1. Inicie sesión como root

Paso 2. Verifique que se haya establecido una conexión de AMQP a cada uno de los CCO existentes.

[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

En el comando anterior, las conexiones hacia el CCO se pueden ver en la línea con el usuario del cliente (en este caso hay sólo un CCO)

En el caso de High Availability (HA) y AMQP bajo un equilibrador de carga, verá una conexión por CCO conectada con la IP del equilibrador de carga de AMQP (en el siguiente ejemplo hay 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

Si este no es el caso, reinicie el proceso tomcatgua (anterior a 4.8.2) o el servicio de conejo (post 4.8.2)

CCO

Paso 1. Inicie sesión como root

En todas las versiones hasta 4.8.1.2

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

En versiones a partir de 4.8.2

[root@localhost ~]# systemctl status cco

Paso 3. Compruebe que se han establecido las conexiones hacia el CCM. También debe aparecer en el estado CLOSE_WAIT (en este caso, nuestro CCM se encuentra en 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