# Configure Monitoring with Toolbox

> **📝 Note**: Using Toolbox to configure cluster monitoring is the preferred and default method. Toolbox largely automates the monitoring configuration by using standard `metrics` database and pipeline DDLs and predefined values. To customize these DDLs and values, you may [configure monitoring manually](https://docs.singlestore.com/db/v9.1/user-and-cluster-administration/cluster-health-and-performance/configure-monitoring/customize-monitoring.md) by using SQL.

## Enable the Exporter Process

The `memsql-exporter` process (or simply “the exporter”) collects data about a running cluster.

## Set the Exporter User

The exporter is typically owned by the database `root` user. To start the exporter as a database user other than `root`, run the following SQL statements and specify the desired database user for `<exporter-user>` and this user's password for `<secure-password>`.

**Note**: The database user that starts the exporter process can differ from the database user that starts the monitoring process.

```sql
CREATE USER '<exporter-user>' IDENTIFIED BY '<secure-password>';
GRANT CLUSTER, SHOW METADATA, SELECT, PROCESS ON *.* to '<exporter-user>'@'%';
```

## Start the Exporter Process

Perform the following steps on the Source cluster's Master Aggregator.

Note that the exporter process is restarted when the `exporter_port` variable is set to any non-zero value, including the current value. The `exporter_port` variable can be set by running `sdb-admin configure-monitoring --exporter-port <port>`.

Run either of the following to start the exporter. This command starts the exporter using the specified database user and default port (`9104`). The exporter username and password are used to access the Source cluster. Refer to [sdb-admin configure-monitoring](https://docs.singlestore.com/db/v9.1/reference/singlestore-tools-reference/sdb-admin-commands/configure-monitoring.md) for more information.

**Note**: If starting the exporter as a database user other than `root`, substitute the database user for `root` in the `--exporter-user` option and this user’s password for `<secure-password>` in the `--exporter-password` option.

## HTTP Connections

On the Source cluster’s Master Aggregator, run the following command to start the exporter.

```shell
sdb-admin configure-monitoring \
--exporter-user root \
--exporter-password <secure-password>

```

## HTTPS Connections

1. Copy the server certificate and key to the Master Aggregator host of the Source cluster. This certificate will be used by the exporter process and must be readable by the user under which the nodes are running on the host (typically the `memsql` user).

2. On the Source cluster's Master Aggregator, run the following command to start the exporter.
   ```shell
   sdb-admin configure-monitoring \
       --exporter-user root \
       --exporter-password <secure-password> \
       --exporter-use-https \
       --exporter-ssl-cert=/path/to/server-cert.pem \
       --exporter-ssl-key=/path/to/server-key.pem \
       --exporter-ssl-passphrase=<passphrase>
   ```
   **Note**: The `--exporter-ssl-passphrase` option should only be included if the server key has a passphrase.

   Refer to [configure-monitoring](https://docs.singlestore.com/db/v9.1/reference/singlestore-tools-reference/sdb-admin-commands/configure-monitoring.md) for additional options, including `--exporter-user` and `--exporter-password`.

## Stop the Exporter

You may stop the exporter at any time by running the following command on the Source cluster's Master Aggregator.

```shell
sdb-admin configure-monitoring --stop-exporter

```

## Configure the metrics Database

The monitoring process configures the `metrics` database and starts monitoring the cluster.

## Set the Monitoring User

Monitoring is typically owned by the database `root` user. To start monitoring as a database user other than `root`, run the following SQL statements and specify the desired database user for `<monitoring-user>` and this user's password for `<secure-password>`.

**Note**: The database user that starts the monitoring process can differ from the database user that starts the exporter process.

```sql
CREATE USER '<monitoring-user>' IDENTIFIED BY '<secure-password>';
GRANT SELECT, CREATE, INSERT, UPDATE, DELETE, EXECUTE, INDEX, ALTER, DROP, CREATE DATABASE, LOCK TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE ON metrics.* to '<monitoring-user>'@'%';
GRANT CREATE PIPELINE, DROP PIPELINE, ALTER PIPELINE, START PIPELINE, SHOW PIPELINE ON metrics.* to '<monitoring-user>'@'%';
```

## Start the Monitoring Process

The monitoring process configures the `metrics` database and starts monitoring the cluster.

The following command creates a database named `metrics` with a 10-day retention period for the data, and also creates the associated `metrics` and `blobs` pipelines. These pipelines are responsible for extracting data from the exporter and storing it in the `metrics` database.

The `exporter-host` value must be the Master Aggregator host in the Source cluster. The `user` and `password` are the credentials for the Metrics cluster. The variable `retention-period` defines the number of days that data is retained before being deleted. Refer to [sdb-admin start-monitoring](https://docs.singlestore.com/db/v9.1/reference/singlestore-tools-reference/sdb-admin-commands/start-monitoring.md) for more information.

**Please note the following**:

* The database that is created to store monitoring data is named `metrics` by default. You may change the database name by updating the value of the `--database-name` option.
* The IP address provided in the `exporter-host` argument must be resolvable by all hosts in the cluster. If the cluster you are monitoring has hosts that contain leaf nodes (as is common in a multi-host vs. single-host deployment), do not use `localhost`. Instead, provide the explicit IP address or hostname that the other hosts in the cluster can resolve.
* This command must be run on the Metrics cluster.
* By default, data from a Source cluster is collected every minute. This interval can be changed via the `--batch-interval` option in the [sdb-admin start-monitoring](https://docs.singlestore.com/db/v9.1/reference/singlestore-tools-reference/sdb-admin-commands/start-monitoring.md) command.

> **📝 Note**: For Metrics clusters running SingleStore 7.3.12 and earlier that are managed by Toolbox 1.11.7 and earlier, when a new Source cluster is monitored, the specified `--retention-period` applies to all existing Source clusters.For Metrics clusters running SingleStore 7.3.13 and later that are managed with Toolbox 1.11.8 and later, a unique `--retention-period` can be specified for each Source cluster. Therefore, when a new Source cluster is monitored, the specified `--retention-period` only applies to that Source cluster.

> **📝 Note**: Existing cluster monitoring instances can be configured to collect event traces after upgrading a cluster to SingleStore v8.5 or later. Refer to [Query History](https://docs.singlestore.com/db/v9.1/query-data/query-tuning/query-history.md) for more information on how to fully enable this feature.Run the following command to restart monitoring and collect event traces.**Note**: If starting the monitoring process as a database user other than `root`, substitute the database user for `root` in the `--user` option and this user’s password for `<secure-password>` in the `--password` option.**HTTP Connections**```shell
> sdb-admin start-monitoring \
>   --database-name metrics \
>   --collect-event-traces \
>   --exporter-host <exporter-hostname-or-IP-address> \
>   --user root \
>   --password <secure-password> \
>   --retention-period 10
>
> ```**HTTPS Connections**```shell
> sdb-admin start-monitoring \
>   --database-name metrics \
>   --collect-event-traces \
>   --exporter-host <exporter-hostname-or-IP-address> \
>   --user root \
>   --password <secure-password> \
>   --retention-period 10 \
>   --ssl-ca /path/to/ca-cert.pem      --or-- 
>   --ssl-capath /ca-directory/including/path
> ```

**Note**: If starting the monitoring process as a database user other than `root`, substitute the database user for `root` in the `--user` option and this user’s password for `<secure-password>` in the `--password` option.

## HTTP Connections

Run the following command to start monitoring.

```shell
sdb-admin start-monitoring \
  --database-name metrics \
  --collect-event-traces \
  --exporter-host <exporter-hostname-or-IP-address> \
  --user root \
  --password <secure-password> \
  --retention-period 10

```

## HTTPS Connections

1. Copy the CA certificate to the same file path on *each host* of the Metrics cluster.

   Alternatively, a directory containing multiple CA certificates can be provided, and this path must be the same on all hosts. This directory will be used by the monitoring pipelines and must be readable by the user under which the nodes are running on the host (typically the `memsql` user).

2. Run the following command to start monitoring.
   ```shell
   sdb-admin start-monitoring \
     --database-name metrics \
     --collect-event-traces \
     --exporter-host <exporter-hostname-or-IP-address> \
     --user root \
     --password <secure-password> \
     --retention-period 10 \
     --ssl-ca /path/to/ca-cert.pem      --or-- 
     --ssl-capath /ca-directory/including/path
   ```
   Refer to [start-monitoring](https://docs.singlestore.com/db/v9.1/reference/singlestore-tools-reference/sdb-admin-commands/start-monitoring.md) for additional options.

## Stop the Monitoring Process

You may stop the monitoring process at any time by running the following command.

**Note**: If stopping the monitoring process as a database user other than `root`, substitute the database user for `root` in the `--user` option and this user’s password for `<secure-password>` in the `--password` option.

```shell
sdb-admin stop-monitoring \
--exporter-host <exporter-hostname-or-IP-address> \
--user root \
--password <secure-password>

```

***

Modified at: September 13, 2024

Source: [/db/v9.1/user-and-cluster-administration/cluster-health-and-performance/configure-monitoring/configure-monitoring-with-toolbox/](https://docs.singlestore.com/db/v9.1/user-and-cluster-administration/cluster-health-and-performance/configure-monitoring/configure-monitoring-with-toolbox/)

(An index of the documentation is available at /llms.txt)
