iQCloud - Troubleshoot Communications
Problem
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:
- Open the Cloud UI and go to Settings (on the left hand side) / Discovery / Appliances
- 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
- Verify that Appliance Server has been registered.
- On the Appliance Server, check /opt/iqas/server-4.5/conf/Appliance/config.properties (Appliance Config File)
- The file should contain a REGISTRATION_KEY, if it doesn't then you need to register the appliance
- Verify that the websocket is configured correctly
- In the same file, check that WEBSOCKET_URL is correctly configured to a non-empty value (starting with the 'ws:' or 'wss:' protocol)
- Check the websocket configuration, /opt/communication/.env
- The value of TENANT_ID should match the ORGOID in the Appliance Config
- The value of WEBSOCKET_URL should be the same as the value in the Appliance Config
- Verify that the host in the WEBSOCKET_URL is accessible using netcat (the default port is 9001)
- The APPLIANCE_ID should be the same as the APPLIANCE_ID in the Appliance Config but only the bit after the last colon (:)
- 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.
Related articles
Filter by label
There are no items with the selected labels at this time.