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}

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).

Cluster Config
{
  <section-name>: {
    <prop-name>: <prop-value>,
      ...
  },
    ...
}

Example:

curl http://127.0.0.1:8888/cluster-configs

Output:

{
  "Test_Cluster": {
    "cassandra": {
    "agents": {
      "use_ssl": "false"
    },
      "seed_hosts": "localhost"
    },
    "cassandra_metrics": {},
    "jmx": {
      "port": 7199
    }
  },
    "Test_Cluster2": {
      "cassandra" {
        "seed_hosts": "2.3.4.5, 2.3.4.6",
        "api_port": 9160
      },
      "cassandra_metrics": {},
      "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 – A Cluster Config ID.

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 – A Cluster Config ID.
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 – A Cluster Config ID.
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 – A Cluster Config ID.
Responses:204 – Cluster removed successfully

Example:

curl -X DELETE http://127.0.0.1:8888/cluster-configs/Test_Cluster