Check YugabyteDB servers
To troubleshoot server issues, you should perform a number of checks.
Are the YugabyteDB servers running?
To verify whether or not the servers are running, you need to connect to the local node where YugabyteDB is running. On a local setup, this would be your local machine (or a Docker instance running on your local machine). On a multi-node cluster, you may need to ssh
into the machines where the YugabyteDB nodes are running, as follows:
ps aux | grep yb-tserver
If you are expecting a YB-Master server on this node, execute the following command:
$ ps aux | grep yb-master
If the servers are not running, you can start them by using the following:
-
yb-ctl
when using a local cluster. -
bin/yb-tserver
andbin/yb-master
servers when using a multi-node cluster.
Once the servers are running, yet they are not accessible from your client machine, it may indicate a network issue.
Are the YB-Master and YB-TServer endpoints accessible?
Typically, the endpoints are defined as follows:
Description | URL |
---|---|
Master Web Page | <node-ip>:7000 |
TServer Web Page | <node-ip>:9000 |
Redis Metrics | <node-ip>:11000/metrics |
YCQL Metrics | <node-ip>:12000/metrics |
Redis Server | <node-ip>:6379 |
YCQL Server | <node-ip>:9042 |
However, in some cases these endpoints may not be accessible, depending on the configuration on your physical machines or on your cloud provider account.
IP not accessible
Private versus Public IP: Consider setting up a VPN or using the node’s public IP (for example, get it from the machine status on your cloud-provider account).
Ports closed
-
Cloud Account Configuration: Open the relevant ports, as per the following definition, for TCP traffic on your cloud provider account (for example, security group rules).
-
Firewall is enabled: If your host has firewall enabled, run the following commands to open the ports using firewall exceptions.
sudo firewall-cmd --zone=public --add-port=7000/tcp; sudo firewall-cmd --zone=public --add-port=7100/tcp; sudo firewall-cmd --zone=public --add-port=9000/tcp; sudo firewall-cmd --zone=public --add-port=9100/tcp; sudo firewall-cmd --zone=public --add-port=11000/tcp; sudo firewall-cmd --zone=public --add-port=12000/tcp; sudo firewall-cmd --zone=public --add-port=9300/tcp; sudo firewall-cmd --zone=public --add-port=9042/tcp; sudo firewall-cmd --zone=public --add-port=6379/tcp;
Ports already in use
macOS Monterey enables AirPlay receiving by default, which listens on port 7000. This conflicts with YugabyteDB and causes yugabyted start
to fail, as follows:
./bin/yugabyted start
Starting yugabyted...
/ Running system checks...Failed to bind to address: 0.0.0.0:7000
The workaround is to disable AirPlay receiving, then start YugabyteDB, and then, optionally, enable AirPlay receiving. Alternatively, and this is the recommended approach, you can change the default port number using the --master_webserver_port
flag when you start the cluster, as follows:
./bin/yugabyted start --master_webserver_port=9999