cockroachdb 官方提供的是一個直接使用docker 運行的方式,可是使用docker-compose 會比較方便,能夠快速搭建一個集羣
同時官方也提供了prometheus 的metrics,咱們能夠快速的經過grafana 提供一個dashboardhtml
version: "3"
services:
grafana:
image: grafana/grafana
ports:
- "3000:3000"
alert:
image: prom/alertmanager
ports:
- "9093:9093"
prometheus:
image: prom/prometheus
volumes:
- "./rules:/rules"
- "./prometheus.yml:/etc/prometheus/prometheus.yml"
ports:
- "9090:9090"
roach1:
image: cockroachdb/cockroach:v19.1.5
hostname: roach1
command: start --insecure
volumes:
- "./data1:/cockroach/cockroach-data"
ports:
- "26257:26257"
- "8081:8080"
roach2:
image: cockroachdb/cockroach:v19.1.5
hostname: roach2
command: start --insecure --join=roach1
volumes:
- "./data2:/cockroach/cockroach-data"
ports:
- "26258:26257"
- "8082:8080"
roach3:
image: cockroachdb/cockroach:v19.1.5
hostname: roach3
command: start --insecure --join=roach1
volumes:
- "./data3:/cockroach/cockroach-data"
ports:
- "26259:26257"
- "8083:8080"
官方已經提供好了alertmanager 的rule同時也給咱們提供了grafana dashboard 的json 文件
參考https://www.cockroachlabs.com/docs/stable/monitor-cockroachdb-with-prometheus.html
prometheus.yml:git
# Prometheus configuration for cockroach clusters.
# Requires prometheus 2.X
#
# Run with:
# $ prometheus -config.file=prometheus.yml
global:
scrape_interval: 10s
evaluation_interval: 10s
rule_files:
- "/rules/alerts.rules.yml"
- "/rules/aggregation.rules.yml"
# Alert manager running on the same host:
alerting:
alertmanagers:
- path_prefix: "/alertmanager/"
static_configs:
- targets:
- alert:9093
scrape_configs:
- job_name: 'cockroachdb'
metrics_path: '/_status/vars'
# Insecure mode:
scheme: 'http'
tls_config:
insecure_skip_verify: true
static_configs:
- targets: ['roach1:8080','roach2:8080','roach3:8080']
labels:
cluster: 'my-cockroachdb-cluster'
grafana dashboard json 文件能夠參考官方文檔,或者github 項目github
https://www.cockroachlabs.com/docs/stable/monitor-cockroachdb-with-prometheus.html
https://github.com/rongfengliang/cockroachdb-docker-compose-local-clusterdocker