Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Problema

Solução

AMQP

CCO

CCM

Verificar

CCM

AMQP

CCO

Introduction

Este documento descreve como solucionar o erro do CloudCenter "Unable to communication with orchestrator" (Não é possível se comunicar com o orquestrador) com o erro 408

Prerequisites

Requirements

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Interface Linux

- Ambiente de Máquina Virtual

- VIM

Componentes Utilizados

A Cisco recomenda conhecimento em:

- Dispositivos CloudCenter

- Arquitetura do CloudCenter

- SO Linux

- CCM (gerenciamento do CloudCenter)

- CCO (CloudCenter Orchestrator)

- AMQP (Advanced Message Queuing Protocol)

As informações neste documento foram criadas a partir dos dispositivos em um ambiente de laboratório privado específico. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Problema

Interrupções de energia, reinicializações inesperadas ou falhas de rede por longos períodos podem fazer com que o dispositivo CloudCenter seja dessincronizado. É necessário executar as seguintes verificações para saber se os dispositivos estão conectados corretamente Ao configurar o orquestrador na interface gráfica do usuário do CloudCenter Manager (CCM GUI), os usuários podem receber o erro como mostrado na imagem.

Ao verificar os registros do CCO, o seguinte erro pode ser mostrado:

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)

Solução

É necessário reiniciar os componentes do CloudCenter um por um para atualizar o handshake entre os componentes

AMQP

Etapa 1. Fazer login como raiz

Etapa 2. Reiniciar o serviço AMQP

Em todas as versões até 4.8.1.2

# /etc/init.d/tomcatgua restart

Em versões a partir de 4.8.2

# systemctl restart rabbit

CCO

Etapa 1. Fazer login como raiz

Etapa 2. Reiniciar serviço CCO

Em todas as versões até 4.8.1.2

# /etc/init.d/tomcat restart

Em versões a partir de 4.8.2

# systemctl restart cco

CCM

Etapa 1. Fazer login como raiz

Etapa 2. Reiniciar o serviço CCM

Em todas as versões até 4.8.1.2

# /etc/init.d/tomcat restart

Em versões a partir de 4.8.2

# systemctl restart ccm

Verificar

É importante que todos os dispositivos estejam conectados corretamente, pois é necessário verificar cada um dos componentes do CloudCenter.

CCM

Etapa 1. Fazer login como raiz

Etapa 2. Verifique se o tomcat (anterior a 4.8.2) ou o serviço CCM (post 4.8.2) estão realmente em execução

Em todas as versões até 4.8.1.2

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

Em versões a partir de 4.8.2

[root@localhost ~]# systemctl status ccm

Etapa 3. Se telnet for instalado, uma tentativa pode ser feita do CCO para o CCM, isso permitirá entender que a comunicação é possível

[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 ocorrer um erro, nenhuma comunicação é possível. Isso tem que ser consertado.

Etapa 4. Se for configurar o orquestrador na GUI do CCM, um nome de host será usado, certifique-se de que o nome de host esteja presente no arquivo /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

Etapa 1. Fazer login como raiz

Etapa 2. Verifique se há uma conexão estabelecida do AMQP para cada um dos CCOs 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

No comando anterior, as conexões para o CCO podem ser vistas na linha com o usuário do cliente (nesse caso, há apenas um CCO)

No caso de alta disponibilidade (HA) e AMQP sob um balanceador de carga, você verá uma conexão por CCO conectado ao IP do balanceador de carga da AMQP (no exemplo a seguir, há 2 CCOs)

[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

Se não for esse o caso, reinicie o processo de tomcatgua (anterior a 4.8.2) ou o serviço de coelho (post 4.8.2)

CCO

Etapa 1. Fazer login como raiz

Em todas as versões até 4.8.1.2

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

Em versões a partir de 4.8.2

[root@localhost ~]# systemctl status cco

Etapa 3. Verifique se as conexões para o CCM estão estabelecidas. Ele também deve aparecer no status CLOSE_WAIT (Nesse caso, nosso CCM está em 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