nodetool gossipinfo
Displays the gossip information for all nodes in the cluster as seen by the local node.
Synopsis
Section titled “Synopsis”nodetool [connection_options] gossipinfoSee connection options for connection options.
Description
Section titled “Description”nodetool gossipinfo shows detailed gossip state for every node known to the cluster, including:
- Node status and state
- Generation and heartbeat information
- Schema version
- Datacenter and rack assignment
- Token ownership
- Release version
This is essential for troubleshooting cluster communication and state issues.
Output Example
Section titled “Output Example”/192.168.1.101 generation:1699574400 heartbeat:12345 STATUS:16:NORMAL,-9223372036854775808 LOAD:12340:2.56789E11 SCHEMA:10:a1b2c3d4-e5f6-7890-abcd-ef1234567890 DC:8:dc1 RACK:9:rack1 RELEASE_VERSION:7:4.1.3 RPC_ADDRESS:3:192.168.1.101 NATIVE_ADDRESS_AND_PORT:12:192.168.1.101:9042 NET_VERSION:1:12 HOST_ID:2:a1b2c3d4-e5f6-7890-abcd-ef1234567890 TOKENS:11:<hidden>
/192.168.1.102 generation:1699574500 heartbeat:12346 STATUS:16:NORMAL,-3074457345618258602 LOAD:12341:2.48789E11 SCHEMA:10:a1b2c3d4-e5f6-7890-abcd-ef1234567890 DC:8:dc1 RACK:9:rack2 RELEASE_VERSION:7:4.1.3 ...Output Fields
Section titled “Output Fields”Node Identification
Section titled “Node Identification”| Field | Description |
|---|---|
| IP Address | Node’s broadcast address |
| HOST_ID | Unique node identifier |
| RPC_ADDRESS | Address for client connections |
| NATIVE_ADDRESS_AND_PORT | CQL native protocol endpoint |
Generation and Heartbeat
Section titled “Generation and Heartbeat”| Field | Description |
|---|---|
| generation | Epoch timestamp when node started (resets on restart) |
| heartbeat | Counter incremented each gossip round |
Status Information
Section titled “Status Information”| Field | Format | Description |
|---|---|---|
| STATUS | version:state,token | Node state (NORMAL, LEAVING, etc.) |
| LOAD | version:bytes | Data size on node |
| SCHEMA | version:uuid | Schema version |
Location
Section titled “Location”| Field | Description |
|---|---|
| DC | Datacenter name |
| RACK | Rack name |
Version Information
Section titled “Version Information”| Field | Description |
|---|---|
| RELEASE_VERSION | Cassandra version |
| NET_VERSION | Protocol version |
Interpreting Status Values
Section titled “Interpreting Status Values”Node States
Section titled “Node States”| State | Meaning |
|---|---|
| NORMAL | Operating normally |
| LEAVING | Decommission in progress |
| LEFT | Has been decommissioned |
| MOVING | Moving to new token |
| BOOT | Bootstrap in progress |
| hibernate | Node is hibernating |
Generation Number
Section titled “Generation Number”generation:1699574400The generation is the Unix timestamp when the node started. Uses include:
- Identifying node restarts (new generation = restart)
- Gossip conflict resolution (higher generation wins)
Heartbeat
Section titled “Heartbeat”heartbeat:12345Increments every gossip round (~1 second). Used to detect:
- Node liveness
- Gossip communication problems
When to Use
Section titled “When to Use”Troubleshoot Node Communication
Section titled “Troubleshoot Node Communication”nodetool gossipinfo | grep -E "^/|STATUS|heartbeat"Identify nodes with stale heartbeats.
Verify Cluster Membership
Section titled “Verify Cluster Membership”nodetool gossipinfo | grep "^/"List all nodes known to gossip.
Check Schema Agreement
Section titled “Check Schema Agreement”nodetool gossipinfo | grep SCHEMAAll nodes should have the same SCHEMA UUID.
Investigate Topology Issues
Section titled “Investigate Topology Issues”nodetool gossipinfo | grep -E "DC|RACK"Verify datacenter and rack assignments.
Debug Node Not Joining
Section titled “Debug Node Not Joining”# Check if new node appears in gossipnodetool gossipinfo | grep <new-node-ip>Examples
Section titled “Examples”Basic Usage
Section titled “Basic Usage”nodetool gossipinfoFilter for Specific Node
Section titled “Filter for Specific Node”nodetool gossipinfo | grep -A20 "/192.168.1.102"Check All Status Values
Section titled “Check All Status Values”nodetool gossipinfo | grep STATUSFind Nodes Not in NORMAL State
Section titled “Find Nodes Not in NORMAL State”nodetool gossipinfo | grep STATUS | grep -v NORMALCompare Schema Across Nodes
Section titled “Compare Schema Across Nodes”nodetool gossipinfo | grep SCHEMA | sort | uniq -cCheck for Stale Nodes
Section titled “Check for Stale Nodes”# Nodes with old generations or low heartbeats may be stalenodetool gossipinfo | grep -E "generation|heartbeat"Common Issues
Section titled “Common Issues”Node Shows OLD Generation
Section titled “Node Shows OLD Generation”If a node’s generation is much older than others:
/192.168.1.102 generation:1609459200 (old)This node may have stale gossip information. Try:
# On the problematic nodenodetool gossipinfo # Compare with other nodesInconsistent Schema
Section titled “Inconsistent Schema”nodetool gossipinfo | grep SCHEMADifferent SCHEMA UUIDs indicate schema disagreement. See describecluster for resolution.
Node Stuck in LEAVING
Section titled “Node Stuck in LEAVING”STATUS:16:LEAVING,-9223372036854775808Decommission may have failed. Check logs and consider:
# If node is dead and stucknodetool assassinate <ip-address>Ghost Node (LEFT but Still Appearing)
Section titled “Ghost Node (LEFT but Still Appearing)”STATUS:16:LEFT,-9223372036854775808Node was decommissioned but still in gossip. Usually clears automatically, but if persistent:
nodetool assassinate <ip-address>Missing Node in Gossip
Section titled “Missing Node in Gossip”If a node doesn’t appear:
- Check if node is running
- Check network connectivity
- Verify seed configuration
- Check firewall rules for gossip port (7000/7001)
Gossip Troubleshooting Flow
Section titled “Gossip Troubleshooting Flow”| Check | If No | If Yes |
|---|---|---|
| Node appears in gossipinfo? | Check network/firewall, verify seeds | Continue to next check |
| Heartbeat increasing? | Node may be frozen - check GC and resources | Continue to next check |
| Status is NORMAL? | Check for stuck operations, may need intervention | Continue to next check |
| Schema matches other nodes? | Wait for propagation or reload schema | Node is healthy |
Gossip vs. Status
Section titled “Gossip vs. Status”| Command | Shows | Use For |
|---|---|---|
gossipinfo | Full gossip state, all fields | Debugging, detailed analysis |
status | Summary view, key metrics | Quick health check |
Use gossipinfo when status doesn’t provide enough detail.
Related Commands
Section titled “Related Commands”| Command | Relationship |
|---|---|
| status | Summary cluster status |
| describecluster | Cluster metadata and schema |
| ring | Token distribution |
| enablegossip | Enable gossip |
| disablegossip | Disable gossip |
| statusgossip | Check if gossip enabled |
| assassinate | Force remove stuck node |