OpsCenter Configuration¶
The OpsCenter API exposes REST interfaces that allow you to retrieve, create, update, and delete cluster configurations used by OpsCenter. The configurations sent or received are in JSON format.
The JSON configuration used by the API has the following format:
{
section name: {
property name: property value,
property name: property value,
...
},
...
}
See the OpsCenter User Guide for a complete list of settings.
You can manage the OpsCenter configuration for monitored clusters using these HTTP methods:
OpsCenter Configuration Management Methods | URL |
---|---|
List configuration information for all clusters. | GET /cluster-configs |
List configuration information for a cluster. | GET /cluster-configs/{cluster_id} |
Add a new cluster to OpsCenter. | POST /cluster-configs |
Update a cluster configuration. | PUT /cluster-configs/{cluster_id} |
Update part of a cluster configuration. | PUT /cluster-configs/{cluster_id}/partial |
Remove a cluster from OpsCenter management. | DELETE /cluster-configs/{cluster_id} |
Update logging level | PUT /{cluster_id}/log/level/{log_level} |
Getting Existing OpsCenter Cluster Configurations¶
- GET /cluster-configs¶
Retrieve a list of all configured clusters.
Returns a dictionary of cluster id (key), ClusterConfig objects (value). Each cluster configuration includes a seed_hosts entry (required).
The set of configured clusters is defined by the set of <cluster>.conf files in the
clusters
directory (/etc/opscenter/clusters
for packages installs;/path/to/opscenter/conf/clusters
for tarball installs). The cluster ID is based on the name of the configuration file, excluding the.conf
extension. Because OpsCenter can manage multiple clusters and these clusters may have the same name defined in cassandra.yaml, cluster IDs (and filenames) must be unique. As a result, the name of this file is typically auto-generated based on the name of the cluster, but might not match the cluster name verbatim. Non-alphanumeric characters in the cluster name are replaced with an underscore in the filename/cluster_id. If two clusters with the same name are configured in OpsCenter, a counter is automatically appended to the cluster ID.For example, a cluster whose name is defined as “Test Cluster” in cassandra.yaml (the default), has a cluster ID of
Test_Cluster
and filename ofTest_Cluster.conf
. If two clusters are configured in OpsCenter with the same name, such as “Test Cluster”, the first cluster hasTest_Cluster
as its cluster ID and the second cluster hasTest_Cluster2
as its cluster ID.Note: Users can rename the cluster configuration files however they choose. Restarting the opscenterd process reflects the updated cluster IDs.
- Cluster Config¶
A Cluster Config object is a JSON representation of the <cluster>.conf configuration file for a single cluster. <section-name> corresponds to sections in the configuration file denoted by square braces (for example
[cassandra]
). <prop-name> and <prop-value> correspond to properties specified in these sections, to the left and right of the=
sign respectively.{ <section-name>: { <prop-name>: <prop-value>, ... }, ... }
Example:
curl http://127.0.0.1:8888/cluster-configs
Output:
{ "Test_Cluster": { "cassandra": { "seed_hosts": "localhost" }, "jmx": { "port": 7199 } }, "Test_Cluster2": { "cassandra" { "seed_hosts": "2.3.4.5, 2.3.4.6", "api_port": 9160 }, "jmx": { "port": 7199, "username": "jmx_user", "password": "jmx_pass" } } }
- GET /cluster-configs/{cluster_id}¶
Retrieve the configuration for a single cluster.
Path arguments: cluster_id – The ID of a cluster returned from GET /cluster-configs
.Returns a Cluster Config.
Example:
curl http://127.0.0.1:8888/cluster-configs/Test_Cluster
Output:
{ "agents": {}, "cassandra": { "seed_hosts": "1.2.3.4, 1.2.3.5" }, "cassandra_metrics": {}, "jmx": { "port": 7199 } }
Adding, Updating, and Removing Configured Clusters¶
- POST /cluster-configs¶
Add a new cluster for OpsCenter monitoring and administration.
Body: A configuration in the format of Cluster Config. A seed_hosts
entry is required.Responses: 201 – Cluster was added successfully Returns the ID of the new cluster.
Example:
curl -X POST http://127.0.0.1:8888/cluster-configs -d '{ "cassandra": { "seed_hosts": "localhost" }, "cassandra_metrics": {}, "jmx": { "port": "7199" } }'
Output:
"Test_Cluster"
- PUT /cluster-configs/{cluster_id}¶
Update a cluster configuration.
Path arguments: cluster_id – The ID of a cluster returned from GET /cluster-configs
.Body: A configuration in the same format as Cluster Config. A seed_hosts
entry is required.Responses: 204 – Cluster updated successfully Example:
curl -X PUT http://127.0.0.1:8888/cluster-configs/Test_Cluster -d '{ "cassandra": { "seed_hosts": "192.168.1.1, 192.168.1.2" }, "jmx": { "port": "7199" } }'
- PUT /cluster-configs/{cluster_id}/partial¶
Update a cluster configuration with a partial config block. After a successful update of the cluster configuration, OpsCenter restarts all connections to the cluster.
Path arguments: cluster_id – The ID of a cluster returned from GET /cluster-configs
.Body: A subset of the configuration options in the same format as Cluster Config. Responses: 204 – Cluster configuration successfully updated Example:
curl -X PUT http://127.0.0.1:8888/cluster-configs/Test_Cluster/partial -d '{ "cassandra_metrics": { "ignored_keyspaces": "system, system_traces, system_auth, dse_auth" } }'
- DELETE /cluster-configs/{cluster_id}¶
Remove a cluster from the list of those to be managed and monitored by OpsCenter.
Path arguments: cluster_id – The ID of a cluster returned from GET /cluster-configs
.Responses: 204 – Cluster removed successfully Example:
curl -X DELETE http://127.0.0.1:8888/cluster-configs/Test_Cluster
Updating OpsCenter and Agent Log Level¶
- PUT /{cluster_id}/log/level/{log_level}¶
Dynamically update the logging level used in OpsCenter and in all of the OpsCenter agents.
Path arguments: - cluster_id – The ID of a cluster returned from
GET /cluster-configs
. - log_level – A string for the new target log level. Valid values include debug, info, warn, error.
Responses: 200 – Log level was updated on OpsCenter and as many agents as possible. The response includes agents that were updated and those that were skipped.
Example:
curl -X PUT http://127.0.0.1:8888/Test_Cluster/log/level/debug
Output:
- cluster_id – The ID of a cluster returned from