-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdocker-compose.yml
123 lines (122 loc) · 3.29 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
version: '3.5'
services:
vmagent:
container_name: vmagent
image: victoriametrics/vmagent
depends_on:
- "victoriametrics"
ports:
- 8429:8429
volumes:
- ./vmagentdata:/vmagentdata
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--promscrape.config=/etc/prometheus/prometheus.yml'
- '--remoteWrite.url=http://victoriametrics:8428/api/v1/write'
networks:
- vm_net
restart: always
victoriametrics:
container_name: victoriametrics
image: victoriametrics/victoria-metrics
expose:
- 8428
- 8089
- 8089/udp
- 2003
- 2003/udp
- 4242
volumes:
- ./vmdata:/storage
command:
- '--storageDataPath=/storage'
- '--graphiteListenAddr=:2003'
- '--opentsdbListenAddr=:4242'
- '--httpListenAddr=:8428'
- '--influxListenAddr=:8089'
- '-retentionPeriod=3'
networks:
- vm_net
restart: always
grafana:
container_name: grafana
image: grafana/grafana:latest
depends_on:
- "victoriametrics"
ports:
- 3000:3000
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
# - ./dashboards/vmalert.json:/var/lib/grafana/dashboards/vmalert.json
networks:
- vm_net
restart: always
vmalert:
container_name: vmalert
image: victoriametrics/vmalert
depends_on:
- "victoriametrics"
- "alertmanager"
ports:
- 8880:8880
volumes:
- ./alerts.yml:/etc/alerts/alerts.yml
command:
- '--datasource.url=http://victoriametrics:8428/'
- '--remoteRead.url=http://victoriametrics:8428/'
- '--remoteWrite.url=http://victoriametrics:8428/'
- '--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
- '--external.alert.source=explore?orgId=1&left=["now-1h","now","VictoriaMetrics",{"expr":"{{$$expr|quotesEscape|crlfEscape|queryEscape}}"},{"mode":"Metrics"},{"ui":[true,true,true,"none"]}]' ## when copypaste the line be aware of '$$' for escaping in '$expr' networks:
networks:
- vm_net
restart: always
alertmanager:
container_name: alertmanager
image: prom/alertmanager
volumes:
- ./alertmanager.yml:/config/alertmanager.yml
command:
- '--config.file=/config/alertmanager.yml'
ports:
- 9093:9093
networks:
- vm_net
restart: always
collectd:
container_name: collectd
image: nuclearcat/collectd
depends_on:
- "victoriametrics"
volumes:
- ./collectd:/etc/collectd
command:
- '/.docker/run.sh'
ports:
- 25826:25826/udp
networks:
- vm_net
restart: always
blackboxexporter:
container_name: blackboxexporter
privileged: true
image: prom/blackbox-exporter
depends_on:
- "victoriametrics"
ports:
- 9115:9115
volumes:
- ./blackbox-exporter:/config
command:
- '--config.file=/config/blackbox.yml'
networks:
- vm_net
networks:
vm_net:
volumes:
grafanadata: {}