To give some background on the ZooKeeper Canary, the ServiceMonitor will regularly check the health of the ZooKeeper Service by
1. connecting to the ZooKeeper quorum and locate the leader
2. create a znode
3. read the znode
4 deleting the znode.
If any of these steps fail the ServiceMonitor will report the ZOOKEEPER_CANARY_HEALTH has become bad.
In the health reported above, the reason was "Canary test failed to establish a connection or a client session to the ZooKeeper service", which means it failed on step 1.
The problem could lie in three locations:
1. The ZooKeeper Quorum - Fsync, low GC , Low max client connections
2. The Service Monitor - false reports
3. Network connectivity between the Service Monitor and the ZooKeepers
Now coming to your query regarding canary test commands, i dont think we have it available in docs. You can use the commands from ZK guide to test
Example - To verify if the ZK instance is leader
echo stat | nc ZOOKEEPER_IP ZOOKEEPER PORT | grep Mode