troubleshooting: nodetool does not work
First some background:
Scylla implement a HTTP server, exposing REST API.
A different java program, running from service scylla-jmx, listen to JMX request, convert it to REST, and than convert the response back to JMX.
Nodetool use JMX for all of its operations.
check the nodetool with nodetool info
If you get a response nodetool is working with scylla and you are done.
If you get the following response:
nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused'.
scylla-jmx service is probably down (see below)
If you get something like
$ nodetool invalidatekeycache
error: API call is not supported yet
The nodetool operation you are looking for is not implemented yet. Look for the relevant issue or open a new issue if its not there yet.
Use sudo service scylla-server status
. The results should look like
● scylla-server.service - Scylla Server
Loaded: loaded (/usr/lib/systemd/system/scylla-server.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2015-12-29 10:44:20 UTC; 6h ago
(Notice the Active)
If this is not the case, try starting scylla service with sudo service scylla-server start
and check the logs for errors
scylla should response to the following REST request:
$ curl http://localhost:10000/storage_service/release_version
"2.1.8"
The 2.1.8 response prove the HTTP server is up and running.
If this is not the case, scylla might listen on a different IP:Port.
Check api_port and api_address in /etc/scylla/scylla.yaml
. Usually it will look like:
api_port: 10000
api_address: 127.0.0.1
scylla-smx do use scylla.yaml, so using different value is not a problem.
Use sudo service scylla-jmx status
to check the service is active.
If, for any reason, scylla-jmx fails to connect to scylla, the process will restart (by systemd) every few seconds.
Looking at the logs with journalctl -u scylla-jmx
will show that.
If this is the case, make sure to add the two API params mentioned above to scylla.yaml