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