Skip to content

Instantly share code, notes, and snippets.

@denisgolius
Created June 18, 2021 06:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save denisgolius/31080880424381a26557e76d46008a1d to your computer and use it in GitHub Desktop.
Save denisgolius/31080880424381a26557e76d46008a1d to your computer and use it in GitHub Desktop.
VictoriaMetrics cluster with 2 vmstorages
version: '3.5'
services:
vmagent:
container_name: vmagent
image: victoriametrics/vmagent
depends_on:
- "vminsert"
ports:
- 8429:8429
volumes:
- vmagentdata:/vmagentdata
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--promscrape.config=/etc/prometheus/prometheus.yml'
- '--remoteWrite.url=http://vminsert:8480/insert/0/prometheus/'
restart: always
grafana:
container_name: grafana
image: grafana/grafana:7.5.7
depends_on:
- "vmselect"
ports:
- 3000:3000
restart: always
volumes:
- grafanadata:/var/lib/grafana
- ./provisioning/:/etc/grafana/provisioning/
- ./../../dashboards/victoriametrics.json:/var/lib/grafana/dashboards/vm.json
- ./../../dashboards/vmagent.json:/var/lib/grafana/dashboards/vmagent.json
vmstorage1:
container_name: vmstorage1
image: victoriametrics/vmstorage
ports:
- 8482
- 8400
- 8401
volumes:
- strgdata1:/storage
command:
- '--storageDataPath=/storage'
restart: always
vmstorage2:
container_name: vmstorage2
image: victoriametrics/vmstorage
ports:
- 8482
- 8400
- 8401
volumes:
- strgdata2:/storage
command:
- '--storageDataPath=/storage'
restart: always
vminsert:
container_name: vminsert
image: victoriametrics/vminsert
depends_on:
- "vmstorage1"
- "vmstorage2"
command:
- '--storageNode=vmstorage1:8400'
- '--storageNode=vmstorage2:8400'
ports:
- 8480
restart: always
vmselect:
container_name: vmselect
image: victoriametrics/vmselect
depends_on:
- "vmstorage1"
- "vmstorage2"
command:
- '--storageNode=vmstorage1:8401'
- '--storageNode=vmstorage2:8401'
ports:
- 8481:8481
restart: always
vmalert:
container_name: vmalert
image: victoriametrics/vmalert
depends_on:
- "vmselect"
ports:
- 8880:8880
volumes:
- ./alerts.yml:/etc/alerts/alerts.yml
command:
- '--datasource.url=http://vmselect:8481/select/0/prometheus'
- '--remoteRead.url=http://vmselect:8481/select/0/prometheus'
- '--remoteWrite.url=http://vminsert:8480/insert/0/prometheus'
- '--notifier.url=http://alertmanager:9093/'
- '--rule=/etc/alerts/*.yml'
# display source of alerts in grafana
- '-external.url=http://127.0.0.1:3000' #grafana outside container
# when copypaste the line below be aware of '$$' for escaping in '$expr'
- '--external.alert.source=explore?orgId=1&left=["now-1h","now","VictoriaMetrics",{"expr":"{{$$expr|quotesEscape|crlfEscape|queryEscape}}"},{"mode":"Metrics"},{"ui":[true,true,true,"none"]}]'
restart: always
alertmanager:
container_name: alertmanager
image: prom/alertmanager
volumes:
- ./alertmanager.yml:/config/alertmanager.yml
command:
- '--config.file=/config/alertmanager.yml'
ports:
- 9093:9093
restart: always
volumes:
vmagentdata: {}
strgdata1: {}
strgdata2: {}
grafanadata: {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment