-
Notifications
You must be signed in to change notification settings - Fork 39
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).
- 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)
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
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
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'
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
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'
Specify how long the Prometheus data should be kept for:
scylla_monitoring_retention: "14d"
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.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
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
# 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