Configure multiple regions
OpsCenter can operate in multiple regions or in Internet Protocol (IP) forwarding deployments. Use the following approach for deployments where a public IP forwards to a private IP on the agent, but that machine is not aware of (that is, it cannot bind to) the public IP.
To configure DataStax agents for multiple regions or IP forwarding, edit the address.yaml file for each node.
This file is located at /var/lib/datastax-agent/conf/address.yaml for package installations, and at INSTALL_DIRECTORY/conf/address.yaml for tarball installations.
Add the following options to the address.yaml file:
-
local_interface (optional): The IP used to identify the node. If broadcast_address is set in
cassandra.yaml, this should be the same as that address. Otherwise, it is typically the same as listen_address incassandra.yaml. A good check is to confirm that this address is the same as the address that the nodetool ring outputs. Example:local_interface: 172.10.0.2 -
agent_rpc_interface: The IP that the agent HTTP server listens on. In a multiple region deployment, this is typically a private IP. Default: Matches
rpc_interface(native_transport_interface) fromcassandra.yaml. Example:agent_rpc_interface: 172.10.0.2 -
agent_rpc_broadcast_address: The IP that the central OpsCenter process uses to connect to the DataStax agent. Default: First available resolvable address in this order:
broadcast_rpc_address(native_transport_broadcast_address),rpc_address(native_transport_address), andlisten_addressfromcassandra.yaml. Example:agent_rpc_broadcast_address: 172.10.0.2
For example, the following configuration is for a three node cluster that spans two regions:
Region: us-west
Availability Zone: us-west-2
OpsCenter host
public IP: 198.51.100.5
private IP: 10.11.12.10
Node1
public IP: 198.51.100.1
private IP: 10.11.12.1
Cassandra (cassandra.yaml)
broadcast_address: 198.51.100.1
listen_address: 10.11.12.1
Agent (address.yaml)
local_interface: 198.51.100.1
agent_rpc_interface: 10.11.12.1
agent_rpc_broadcast_address: 198.51.100.1
stomp_interface: 198.51.100.5
Node2
public IP: 198.51.100.23
private IP: 10.11.12.15
Cassandra (cassandra.yaml)
broadcast_address: 198.51.100.23
listen_address: 10.11.12.15
Agent (address.yaml)
local_interface: 198.51.100.23
agent_rpc_interface: 10.11.12.15
agent_rpc_broadcast_address: 198.51.100.23
stomp_interface: 198.51.100.5
Region: us-east
Availability Zone: us-east-1
Node1
public IP: 203.0.113.20
private IP: 10.11.13.28
Cassandra (cassandra.yaml)
broadcast_address: 203.0.113.20
listen_address: 10.11.13.28
Agent (address.yaml)
local_interface: 203.0.113.20
agent_rpc_interface: 10.11.13.28
agent_rpc_broadcast_address: 203.0.113.20
stomp_interface: 198.51.100.5