iQCloud - Troubleshoot Communications

Problem

The Appliance Server is not communicating with the Cloud

If the Appliance Server is properly configured to communicate with the cloud then 'Live' heartbeat messages will be sent from the appliance server to the cloud. You will know that this is happening by the following steps:

  1. Open the Cloud UI and go to Settings (on the left hand side) / Discovery / Appliances
  2. Look at the list of Appliance Servers. If your Appliance Server is listed there and has a green bar under 'Last Status' then it is communicating correctly with the cloud.

Solution

Check the Appliance Server

  1. Verify that Appliance Server has been registered.
    1. On the Appliance Server, check /opt/iqas/server-4.5/conf/Appliance/config.properties (Appliance Config File)
    2. The file should contain a REGISTRATION_KEY, if it doesn't then you need to register the appliance
  2. Verify that the websocket is configured correctly
    1. In the same file, check that WEBSOCKET_URL is correctly configured to a non-empty value (starting with the 'ws:' or 'wss:' protocol)
    2. Check the websocket configuration, /opt/communication/.env
    3. The value of TENANT_ID should match the ORGOID in the Appliance Config
    4. The value of WEBSOCKET_URL should be the same as the value in the Appliance Config
    5. Verify that the host in the WEBSOCKET_URL is accessible using netcat (the default port is 9001)
    6. The APPLIANCE_ID should be the same as the APPLIANCE_ID in the Appliance Config but only the bit after the last colon (:)
    7. Verify that the host and port in RABBIT_APPLIANCE_HOST and RABBIT_APPLIANCE_PORT can be accessed using netcat.


Using NetCat to verify a port

To verify a port is available on a host:

nc -vnzw1 <host ip address> <port>

For example:

nv -vnzw1 1.2.3.4 8888

Verify Connectivity Across the WebSocket

The ws connection used to communicate over the WebSocket is also a http connection.

To verify that change the protocol to https and add the live-data endpoint, then use curl to connect. For example:

curl -sI https://<host>:443/communication/live-data

On production this is:

curl -sI https://iqcloud.iquate.net:443/communication/live-data

If not, typically a 403 Forbidden response, indicates that the routes are not open. (Ask DevOps to resolve)

If this responds with a 2xx or 5xx error, then communication is okay.

(If the WebSocket URL is ws, then use a http connection)

In the Beta environment the Appliance Server public IP address needs to be whitelisted. (see /wiki/spaces/HADM/pages/1511969 for instructions)

Logs Required for Troubleshooting

On the Appliance Server

First, get the logs from the websocket in docker.

docker logs communication_websocket-client_1 > /opt/iqas/server-4.5/log/websocket.log
docker logs communication_rabbitmq-appliance_1 > /opt/iqas/server-4.5/log/rabbitmq.log

Then take all the logs in the /opt/iqas/server-4.5/logs directory.

Filter by label

There are no items with the selected labels at this time.