Port 7199 is the Apache Cassandra JMX (Java Management Extensions) monitoring port. JMX on port 7199 exposes Cassandra metrics, thread dumps, and management operations. Unauthenticated JMX enables remote code execution via MBean deserialization – never expose port 7199 beyond localhost or a management network.
Port Number
7199
Protocol
TCP
Service
Apache Cassandra JMX
Range
IANA Registered (1024–49151)
Test JMX connectivity and show cluster ring status
nodetool -h localhost -p 7199 statusVerify JMX bind address (should be 127.0.0.1, not 0.0.0.0)
ss -tlnp | grep 7199Check if JMX is remotely accessible (should be refused if properly firewalled)
nmap -sV -p 7199 targetAudit JMX configuration – look for authenticate=false or ssl=false
grep -E 'jmx|remote' /etc/cassandra/cassandra-env.sh | grep -v '^#'nodetool -h localhost -p 7199 status
nodetool -h localhost -p 7199 repair
jconsole localhost:7199Port 7199 was chosen as Cassandra's JMX port when JMX management was added in early versions. JMX (Java Management Extensions) is the standard Java monitoring/management protocol. Cassandra relies heavily on JMX for operational tooling – nodetool, OpsCenter, and Reaper all use it. The shift to localhost-only binding in 3.11 (2017) was a response to widespread exploitation of exposed JMX ports across Java applications.
Can I disable JMX on Cassandra entirely?
Not recommended. nodetool (repair, compaction, status), DataStax OpsCenter, and Cassandra Reaper all require JMX. Instead: bind to localhost (cassandra.jmx.local.port=7199), enable authentication (jmxremote.password file), and use SSH tunneling for remote access. For monitoring, metrics-reporter-config can export to Prometheus without JMX exposure.
How do I enable JMX authentication on Cassandra?
In cassandra-env.sh: set LOCAL_JMX=no, then configure -Dcom.sun.management.jmxremote.authenticate=true, -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password. Create jmxremote.password (user pass) and jmxremote.access (user readwrite) files with chmod 400. Test: nodetool -u user -pw pass status.