ScyllaDB University Live | Free Virtual Training Event
Learn more
ScyllaDB Documentation Logo Documentation
  • Server
  • Cloud
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Download
ScyllaDB Docs ScyllaDB Monitoring Download and Install Scylla Monitoring Stack Using Docker Compose

Caution

You're viewing documentation for a previous version of ScyllaDB Monitoring. Switch to the latest stable version.

Using Docker Compose¶

Scylla-Monitoring Stack is container-based. You can start and stop the Scylla Monitoring Stack with the start-all.sh and kill-all.sh scripts.

Docker Compose is an alternative method to start and stop the stack. It requires more manual steps, but once configured, it simplifies starting and stopping the stack.

Warning

docker-compose and start_all.sh are two alternative ways to launch Scylla Monitoring Stack. You should use one method, not both. In particular, creating and updating docker-compose.yml is ignored when using start_all.sh

Prerequisite¶

Make sure you have docker and docker-compose installed.

Setting Prometheus¶

The Prometheus configuration file contains among others the IP address of the alertmanager and either the location of the scylla_server.yml file or a Consul IP address of Scylla Manager, if Scylla Manager is used for server provisioning.

You can use ./prometheus-config.sh to generate the file, for example:

./prometheus-config.sh --compose

For production systems, It is advised to use an external directory for the Prometheus database. Make sure to create one and update the docker-compose file accordingly (see the docker-compose example below).

Setting Grafana Provisioning¶

Grafana reads its provisioning configuration from files, one for the data-source and one for the dashboards. Note that the latter tells Grafana where the dashboards are located, it is not the dashboards themselves, which are at a different location.

Grafana Data-Source file¶

Run the following command to update the datasource:

./grafana-datasource.sh --compose

You can see the generated file under: grafana/provisioning/datasources/datasource.yaml

Grafana Dashboard Load file¶

To set the dashboard load file, you can run the ./generate-sashboards.sh with the -t command line flag and the -v flag to specify the version. For example, Scylla-enterprise version 2020.1:

./generate-dashboards.sh -t -v 2020.1

This command generates the files under: grafana/provisioning/dashboards/

Docker Compose file¶

You can use the following example as a base for your docker compose.

Pass the following to a file called docker-compose.yml

services:
  alertmanager:
    container_name: aalert
    image: prom/alertmanager:v0.21.0
    ports:
    - 9093:9093
    volumes:
    - ./prometheus/rule_config.yml:/etc/alertmanager/config.yml
  grafana:
    container_name: agraf
    environment:
    - GF_PANELS_DISABLE_SANITIZE_HTML=true
    - GF_PATHS_PROVISIONING=/var/lib/grafana/provisioning
    - GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=scylladb-scylla-datasource
    # This is where you set Grafana security
    - GF_AUTH_BASIC_ENABLED=false
    - GF_AUTH_ANONYMOUS_ENABLED=true
    - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
    - GF_SECURITY_ADMIN_PASSWORD=admin
    image: grafana/grafana:7.3.5
    ports:
    - 3000:3000
    user: 1000:1000
    volumes:
    - ./grafana/build:/var/lib/grafana/dashboards
    - ./grafana/plugins:/var/lib/grafana/plugins
    - ./grafana/provisioning:/var/lib/grafana/provisioning
    # Uncomment the following line for grafana persistency
    # - path/to/grafana/dir:/var/lib/grafana
  loki:
    command:
    - --config.file=/mnt/config/loki-config.yaml
    container_name: loki
    image: grafana/loki:2.0.0
    ports:
    - 3100:3100
    volumes:
    - ./loki/rules:/etc/loki/rules
    - ./loki/conf:/mnt/config
  promotheus:
    command:
    - --config.file=/etc/prometheus/prometheus.compose.yml
    container_name: aprom
    image: prom/prometheus:v2.18.1
    ports:
    - 9090:9090
    volumes:
    - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
    - ./prometheus/prometheus.rules.yml:/etc/prometheus/prometheus.rules.yml
    - ./prometheus/scylla_servers.yml:/etc/scylla.d/prometheus/scylla_servers.yml
    - ./prometheus/scylla_manager_servers.yml:/etc/scylla.d/prometheus/scylla_manager_servers.yml
    - ./prometheus/scylla_servers.yml:/etc/scylla.d/prometheus/node_exporter_servers.yml
    # Uncomment the following line for prometheus persistency 
    # - path/to/data/dir:/prometheus/data
  promtail:
    command:
    - --config.file=/etc/promtail/config.yml
    container_name: promtail
    image: grafana/promtail:2.0.0
    ports:
    - 1514:1514
    - 9080:9080
    volumes:
    - ./loki/promtail/promtail_config.compose.yml:/etc/promtail/config.yml
version: '3'

Start and Stop¶

To start the Scylla Monitoring Stack run docker-compose up and to stop run docker-compose down.

Was this page helpful?

PREVIOUS
Deploying Scylla Monitoring Stack Without Docker
NEXT
Minimal Production System Recommendations
  • Create an issue
  • Edit this page

On this page

  • Using Docker Compose
    • Prerequisite
    • Setting Prometheus
    • Setting Grafana Provisioning
      • Grafana Data-Source file
      • Grafana Dashboard Load file
    • Docker Compose file
      • Start and Stop
ScyllaDB Monitoring
  • 4.3
    • 4.9
    • 4.8
    • 4.7
    • 4.6
    • 4.5
    • 4.4
    • 4.3
    • 4.2
    • 4.1
    • 4.0
    • 3.10
    • 3.9
    • 3.8
    • 3.7
    • 3.6
    • 3.5
  • Introduction
  • Download and Install
    • Install
    • The start-all.sh script
    • Deploy without Docker
    • Docker Compose
    • System Recommendations
    • Using Thanos
  • User Guide
    • CQL Optimization Dashboard
    • Advisor
      • Some queries use ALLOW FILTERING
      • Some queries use Consistency Level: ALL
      • Some queries use Consistency Level: ANY
      • Some queries are not token-aware
      • Some SELECT queries are non-paged
      • Some queries are non-prepared
      • Some queries use reverse order
      • Compaction takes lots of memory and CPU
      • Some operation failed due to unsatisfied consistency level
      • I/O Errors can indicate a node with a faulty disk
      • Some operations failed on the replica side
      • CQL queries are not balanced among shards
      • Prepared statements cache eviction
      • System Overload
  • Procedures
    • Datadog Integration
    • Alert Manager
      • Alerting
    • Adding and Modifying Dashboards
    • Upgrade Guides
      • Monitoring 3.x to 4.y
      • Monitoring 3.x to 3.y
      • Monitoring 2.x to 3.y
      • Monitoring 2.x to 2.y
      • Monitoring 1.x to 2.x
  • Upgrade
    • Monitoring 3.x to 4.y
    • Monitoring 3.x to 3.y
    • Monitoring 2.x to 3.y
    • Monitoring 2.x to 2.y
    • Monitoring 1.x to 2.x
  • Troubleshooting
    • Troubleshooting
    • Troubleshooting Guide for Scylla Manager and Scylla Monitor Integration
  • Reference
    • Support Matrix
    • Interfaces
  • GitHub Project
Docs Tutorials University Contact Us About Us
© 2025, ScyllaDB. All rights reserved. | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 04 May 2025.
Powered by Sphinx 7.4.7 & ScyllaDB Theme 1.8.6