Skip to content

Deploying Scylla Monitoring and connecting it to a Scylla Cluster

Dan Yasny edited this page Sep 4, 2020 · 1 revision

Deploying Scylla Monitoring and connecting it to a Scylla Cluster

This guide will follow the steps required to deploy the Scylla Monitoring stack using the ansible-scylla-monitoring role.

At the moment, the role only supports a dockerized install, using either docker-ce or podman. Docker-CE is automatically installed for most distributions, except the ones where it is not supported (CentOS 8 at the moment of this writing).

Requirements

  • An inventory file in a supported format (ini/yaml)
  • Ansible 2.8 or higher
  • SSH access to all the Scylla Monitoring hosts (usually just one host)

Variables

Monitoring stack release URL

The defaults/main.yml file of the role is highly commented. It can be found here: https://github.com/scylladb/scylla-ansible-roles/blob/master/ansible-scylla-monitoring/defaults/main.yml

Open the Scylla Monitoring GitHub releases page: https://github.com/scylladb/scylla-monitoring/releases Copy the URL of the required release's .tar.gz package:

scylla_monitoring_archive_url: https://github.com/scylladb/scylla-monitoring/archive/scylla-monitoring-3.4.3.tar.gz

scylla_servers.yml: prepared manually or automatically

If you ran ansible-scylla-node it has already produced scylla_servers.yml for you. If you haven't, you will need to create or generate this file manually. Please see https://github.com/scylladb/scylla-monitoring/blob/master/prometheus/scylla_servers.example.yml for an example file.

scylla_servers_yml_path: scylla_servers.yml

Scylla Manager monitoring

If Scylla Manager is in use as well, this variable needs to be set (the default is 127.0.0.1 because Manager and Monitoring are very often deployed together):

scylla_manager_ip: '127.0.0.1'

Installation path

Scylla Monitoring can be unpacked and run anywhere in the system. Since there is a requirement for a sudo enabled user, the path will be created if need be:

# Location for unpacking and running the monitoring stack
scylla_monitoring_deploy_path: /opt/scylla-monitoring

# Location for storing the Prometheus data
scylla_monitoring_data_path: /opt/scylla-monitoring/data

Dashboard versions

Scylla Monitoring ships with several preconfigured dashboards. For different versions of Scylla you might want to use different dashboards (i.e. 2020.1 for Enterprise and 4.1 or "latest" for OSS, or even both)

scylla_monitoring_dashboards_versions:
  - 'latest'
  - '2020.1'

Data retention

Specify how long the Prometheus data should be kept for:

scylla_monitoring_retention: "14d"

Other parameters

The role supports passing additional parameters to the Monitoring stack (please refer to the Monitoring documentation wrt the parameters supported with start-all.sh)

scylla_monitoring_params: '-M 2.1 -a P@ssw0rd123'

Parameters file

#parameters.yml
scylla_monitoring_archive_url: https://github.com/scylladb/scylla-monitoring/archive/scylla-monitoring-3.4.3.tar.gz
scylla_monitoring_dashboards_versions: 
  - latest
  - 2020.1
scylla_monitoring_retention: 14d
scylla_monitoring_params: -M 2.1 -a P@ssw0rd123

Inventory

The inventory should contain a host under the "scylla-monitor" section

#inventory.ini
[scylla-manager]
10.142.0.2
[scylla-monitor]
10.142.0.2
[scylla]
10.142.0.3 dc=us-east1 rack=rack-b
10.142.0.4 dc=us-east1 rack=rack-b
10.142.0.5 dc=us-east1 rack=rack-b
10.128.0.2 dc=us-central1 rack=rack-a
10.128.0.3 dc=us-central1 rack=rack-a
10.128.0.4 dc=us-central1 rack=rack-a

Example playbook

# monitoring.yml
- hosts: scylla-monitor
  roles:
    - ansible-scylla-monitoring

Run the playbook:

ansible-playbook -i inventory.ini -e '@parameters.yml' monitoring.yml

When the node is configured, access the host using a web browser on port 3000