-
Notifications
You must be signed in to change notification settings - Fork 0
/
create-central-monitoring.sh
137 lines (126 loc) · 4.25 KB
/
create-central-monitoring.sh
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/usr/bin/env bash
LOGNAME=DROVE-MON
PREFIX=drove-mon
NETWORK=drove-mon
# NODE EXPORTER
NODE_EXPORTER_SERVICE=${PREFIX}-node-exporter
NODE_EXPORTER_IMAGE=basi/node-exporter:latest
# CADVISOR
CADVISOR_SERVICE=${PREFIX}-cadvisor
CADVISOR_IMAGE=google/cadvisor:v0.24.1
# PROMETHEUS
PROM_SERVICE=${PREFIX}-prometheus
PROM_IMAGE=caladreas/drove-prometheus
# GRAFANA
GRAFANA_SERVICE=${PREFIX}-grafana
GRAFANA_IMAGE=grafana/grafana:4.1.1
# Pull images
docker pull $NODE_EXPORTER_IMAGE
docker pull $CADVISOR_IMAGE
docker pull $PROM_IMAGE
docker pull $GRAFANA_IMAGE
######################################
docker network ls | grep $NETWORK
RC=$?
if [ $RC != 0 ]; then
echo "[$LOGNAME] creating network $NETWORK"
docker network create \
--driver overlay \
--subnet 10.0.9.0/24 \
--label drove \
$NETWORK
else
echo "[$LOGNAME] network $NETWORK already exists"
fi
#####################################
#### NODE EXPORTER
#####################################
EXISTING=`docker service ls | grep -c $NODE_EXPORTER_SERVICE`
if [ $EXISTING -gt 0 ]
then
echo "[$LOGNAME] service $NODE_EXPORTER_SERVICE already exists"
else
echo "[$LOGNAME] creating$NODE_EXPORTER_SERVICE"
docker \
service create \
--name $NODE_EXPORTER_SERVICE \
--mode global \
--network $NETWORK \
--label com.docker.stack.namespace=$NETWORK \
--mount type=bind,source=/proc,target=/host/proc \
--mount type=bind,source=/sys,target=/host/sys \
--mount type=bind,source=/,target=/rootfs \
--mount type=bind,source=/etc/hostname,target=/etc/host_hostname \
-e HOST_HOSTNAME=/etc/host_hostname \
$NODE_EXPORTER_IMAGE \
-collector.procfs /host/proc \
-collector.sysfs /host/sys \
-collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)" \
--collector.textfile.directory /etc/node-exporter/ \
--collectors.enabled="conntrack,diskstats,entropy,filefd,filesystem,loadavg,mdadm,meminfo,netdev,netstat,stat,textfile,time,vmstat,ipvs"
fi
######################################
######################################
#####################################
#### C Advisor
#####################################
EXISTING=`docker service ls | grep -c $CADVISOR_SERVICE`
if [ $EXISTING -gt 0 ]
then
echo "[$LOGNAME] service $CADVISOR_SERVICE already exists"
else
echo "[$LOGNAME] creating$CADVISOR_SERVICE"
docker service create --name $CADVISOR_SERVICE \
--mode global \
--network $NETWORK \
--label com.docker.stack.namespace=$NETWORK \
--container-label com.docker.stack.namespace=$NETWORK \
--mount type=bind,src=/,dst=/rootfs:ro \
--mount type=bind,src=/var/run,dst=/var/run:rw \
--mount type=bind,src=/sys,dst=/sys:ro \
--mount type=bind,src=/var/lib/docker/,dst=/var/lib/docker:ro \
$CADVISOR_IMAGE
fi
######################################
######################################
#####################################
#### PROMETHEUS
#####################################
EXISTING=`docker service ls | grep -c $PROM_SERVICE`
if [ $EXISTING -gt 0 ]
then
echo "[$LOGNAME] service $PROM_SERVICE already exists"
else
echo "[$LOGNAME] creating$PROM_SERVICE"
docker service create \
--name $PROM_SERVICE \
--network $NETWORK \
--label com.docker.stack.namespace=$NETWORK \
--container-label com.docker.stack.namespace=$NETWORK \
-p 9090:9090 \
$PROM_IMAGE \
-config.file=/etc/prometheus/prometheus.yml \
-storage.local.path=/prometheus
fi
######################################
######################################
#####################################
#### GRAFANA
#####################################
EXISTING=`docker service ls | grep -c $GRAFANA_SERVICE`
if [ $EXISTING -gt 0 ]
then
echo "[$LOGNAME] service $GRAFANA_SERVICE already exists"
else
echo "[$LOGNAME] creating$GRAFANA_SERVICE"
docker service create \
--name $GRAFANA_SERVICE \
--network $NETWORK \
--label com.docker.stack.namespace=$NETWORK \
--container-label com.docker.stack.namespace=$NETWORK \
-p 3000:3000 \
-e "GF_SECURITY_ADMIN_PASSWORD=password" \
$GRAFANA_IMAGE
fi
######################################
######################################