Storing collection data on a separate cluster

Configure a separate storage cluster for monitored clusters. Store collection data on a separate DataStax Enterprise cluster as an alternative to OpsCenter storing data in an OpsCenter keyspace on the same DataStax Enterprise cluster being monitored. Storing collection data in a separate storage cluster from the monitored cluster is an enterprise-only feature.

cluster_name.conf 

The location of the cluster_name.conf file depends on the type of installation:

  • Installer-Services or package installations: /etc/opscenter/clusters/cluster_name.conf
  • Installer-No Services or tarball installations: install_location/conf/clusters/cluster_name.conf
  • Windows installations: Program Files (x86)\DataStax Community\opscenter\conf\clusters\cluster_name.conf

address.yaml 

The location of the address.yaml file depends on the type of installation:

  • Installer-Services or package installations: /var/lib/datastax-agent/conf/address.yaml
  • Installer-No Services or tarball installations: install_location/conf/address.yaml

If you do not want OpsCenter to store data in an OpsCenter keyspace on the DataStax Enterprise cluster being monitored, you can store the data on a separate DataStax Enterprise cluster. Storing collection data in a separate storage cluster from the monitored cluster is an enterprise-only feature. OpsCenter supports connecting to a DataStax Enterprise storage cluster when SSL is enabled.

There are two different cluster connections in the agent. When monitored and storage clusters are separate, the agent monitors the health of the monitored cluster on one of those connections, and writes metrics to the storage cluster on the other connection. If there is not a separate storage cluster, both connection pools point to the same Cassandra (DataStax Enterprise) cluster instance.

Note: In versions earlier than OpsCenter 5.2.2, the authentication mechanism and credentials must be identical between the storage cluster and the monitored clusters. As of OpsCenter 5.2.2, OpsCenter supports distinct SSL or authentication connection settings between a monitored cluster and its corresponding storage cluster.
Version availability for configuration options:
  • The SSL configuration options are applicable to OpsCenter versions 5.1.1+ only.
  • The monitored_* and storage_ssl_ keystore* settings are applicable to OpsCenter versions 5.2.2+ only.

Prerequisites

  • The seed nodes must be accessible without Kerberos security.
  • A unique keyspace must be used for each DataStax Enterprise cluster monitored by OpsCenter. If you are storing data for multiple clusters, DataStax recommends adding the cluster name as a suffix to the default keyspace name of OpsCenter. For example, set the keyspace name to OpsCenter_Cluster1.
  • If you are using SSL to access the storage cluster and have a CER-encoded certificate, use the following command to convert it:
    $ openssl x509 -inform der -in certificate.cer -out certificate.pem

Procedure

  1. Open the storage cluster configuration file cluster_name.conf for editing. The cluster_name.conf represents the named configuration file for a particular cluster. Replace cluster_name with your actual cluster name.
  2. Add a [storage_cassandra] section with the applicable storage configuration options for your environment.

    The following example configuration assumes similar authentication between the monitored and storage cluster:

    
    [storage_cassandra]
    username = opsusr
    password = opscenter
    seed_hosts = host1, host2
    api_port = 9160
    cql_port = 9042
    keyspace = OpsCenter_Cluster1

    Available cluster configuration options for monitored and storage clusters:

    [agents] ssl_keystore
    The SSL keystore location for agents to use to connect to CQL on the monitored cluster.
    [agents] ssl_keystore_password
    The SSL truststore password for agents to use to connect to CQL on the monitored cluster.
    [agents] storage_ssl_keystore
    The SSL keystore location for agents to use to connect to CQL on the storage cluster.
    [agents] storage_ssl_keystore_password
    The SSL truststore password for agents to use to connect to CQL on the storage cluster.
    [cassandra] seed_hosts
    A Cassandra seed node is used to determine the ring topology and obtain gossip information about the nodes in the cluster. This should be the same comma-delimited list of seed nodes as the one configured for your Cassandra or DataStax Enterprise cluster by the seeds property in the cassandra.yaml configuration file. The default value is localhost.
    [storage_cassandra] seed_hosts
    Configure when using a different cluster for OpsCenter storage. A Cassandra seed node is used to determine the ring topology and obtain gossip information about the nodes in the cluster. This should be the same comma-delimited list of seed nodes as the one configured for your DataStax Enterprise cluster by the seeds property in the cassandra.yaml configuration file.
    [storage_cassandra] api_port
    Configure when using a different cluster for OpsCenter storage. The Thrift remote procedure call port configured for your cluster. Same as the rpc_port property in the cassandra.yaml configuration file. Default is 9160.
    [storage_cassandra] cql_port
    Configure when using a different cluster for OpsCenter storage. The CQL port configured for your cluster, the default port is 9042.
    [storage_cassandra] local_dc_pref
    Configure when using a different cluster for OpsCenter storage. When specified OpsCenter will prefer using connections to the specified data center.
    [storage_cassandra] used_hosts_per_remote_dc
    Configure when using a different cluster for OpsCenter storage. If using local_dc_pref, this option specified how many remote dc connections may be used as a fallback, the default value is 1.
    [storage_cassandra] connect_timeout
    Configure when using a different cluster for OpsCenter storage. Sets the timeout, in seconds, of a thrift connection from OpsCenter to Cassandra. The default value is 6.0.
    [storage_cassandra] bind_interface
    Configure when using a different cluster for OpsCenter storage. The interface used for thrift connections.
    [storage_cassandra] connection_pool_size
    Configure when using a different cluster for OpsCenter storage. The number of connections to thrift to build for the connection pool. The default value is 5.
    [storage_cassandra] username
    Configure when using a different cluster for OpsCenter storage. The username used to connect to Cassandra if authentication is enabled.
    [storage_cassandra] password
    Configure when using a different cluster for OpsCenter storage. The password used to connect to Cassandra if authentication is enabled.
    [storage_cassandra] send_rpc
    Configure when using a different cluster for OpsCenter storage. Specifies whether to send the Cassandra RPC IP to agents. The default value is True.
    [storage_cassandra] keyspace
    The name of the keyspace used for OpsCenter data. The keyspace name must be unique for each managed cluster.
    [storage_cassandra] ssl_ca_certs
    Configure when using a different cluster for OpsCenter storage. The server certificate to use to validate SSL for thrift connections.
    [storage_cassandra] ssl_validate
    Configure when using a different cluster for OpsCenter storage. Specifies whether the SSL thrift connection should be validated. The default value is True.
    [storage_cassandra] ssl_client_pem
    Configure when using a different cluster for OpsCenter storage. Specifies the client-side SSL PEM file to use if using two-way auth
    [storage_cassandra] ssl_client_key
    Configure when using a different cluster for OpsCenter storage. Specifies the client-side SSL key file to use if using two-way auth
    [storage_cassandra] retry_delay
    The number of seconds to wait between retry attempts when initially connecting to cassandra
    [storage_cassandra] max_schema_agreement_wait
    The maximum period of time in seconds to wait for schema agreement after a schema change. Default: 30 seconds.
  3. If your storage and monitored clusters require different authentication or ssl settings, open cluster_name.conf for editing and add the settings in an [agents], [storage_cassandra], and[cassandra] (monitored) sections as applicable for your environment:
    [agents]
    ssl_keystore = /etc/dse/keystore
    ssl_keystore_password = example
    storage_ssl_keystore = /etc/dse/keystore_storage
    storage_ssl_keystore_password = example2
    
    [storage_cassandra]
    username = foo
    password = bar
    
    [cassandra] #monitored 
    username = baz
    password = test
    Note: If only the cassandra_user settings were configured for a storage cluster prior to 5.2.2, with no differentiation in authentication, opscenterd sets both the cassandra_user for storage and the monitored_cassandra_user settings on your behalf when upgrading to 5.2.2.
  4. If your environment requires setting options in address.yaml for reasons such as integration with third-party CMS applications, set the storage configuration options (sans the monitored_ prefix) and corresponding monitored_ configuration options as appropriate for your environment. If you set these agent options in address.yaml, you must do so for every node, whereas setting the options in cluster_name.conf automatically propagates the settings to all agents.

    Available configuration options for storage and monitored clusters in address.yaml:

    cassandra_port
    Port used to connect to the storage cassandra node. The native transport port.
    thrift_port
    Port used to connect to storage thrift server. The default setting is 9160. This information will be sent by opscenterd for convenience, but can be configured locally as needed.
    cassandra_user
    The username used to connect to storage cassandra when authentication is enabled.
    cassandra_pass
    The password used to connect to storage cassandra when authentication is enabled.
    ssl_keystore
    The SSL keystore location for the storage cluster that agents to use to connect to CQL.
    ssl_keystore_password
    The SSL keystore password for the storage cluster that agents to use to connect to CQL.
    monitored_cassandra_port
    Port used to connect to the monitored cassandra node. The native transport port.
    monitored_thrift_port
    Port used to connect to monitored thrift server. The default setting is 9160. This information will be sent by opscenterd for convenience, but can be configured locally as needed.
    monitored_cassandra_user
    The username used to connect to monitored cassandra when authentication is enabled.
    monitored_cassandra_pass
    The password used to connect to monitored cassandra when authentication is enabled.
    monitored_ssl_keystore_password
    The SSL keystore password for the monitored cluster that agents to use to connect to CQL.
    monitored_ssl_keystore
    The SSL keystore location for the monitored cluster that agents to use to connect to CQL.
  5. Restart OpsCenter for the changes to take effect.