-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yml
173 lines (161 loc) · 4.28 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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
version: "3"
services:
backend:
build:
context: ./backend
command: gunicorn backend.wsgi --bind 0.0.0.0:8000
ports:
- 8000:8000
volumes:
- ./backend/:/backend/
expose:
- 8000
backend-rep:
build:
context: ./backend
command: gunicorn backend.wsgi --bind 0.0.0.0:8001
ports:
- 8001:8001
volumes:
- ./backend/:/backend/
expose:
- 8001
# nginx 컨테이너(서버)
nginx:
build: ./nginx
ports:
- 80:8080
volumes:
- ./nginx/log:/var/log/nginx
depends_on:
- backend
elasticsearch:
build:
context: elk/elasticsearch
args:
ELASTIC_VERSION: 8.5.2
volumes:
- ./elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,Z
ports:
- 9200:9200
- 9300:9300
environment:
node.name: elasticsearch
ES_JAVA_OPTS: -Xms512m -Xmx512m
# Bootstrap password.
# Used to initialize the keystore during the initial startup of
# Elasticsearch. Ignored on subsequent runs.
ELASTIC_PASSWORD: changeme
# Use single node discovery in order to disable production mode and avoid bootstrap checks.
# see: https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
discovery.type: single-node
restart: unless-stopped
logstash:
build:
context: elk/logstash
args:
ELASTIC_VERSION: 8.5.2
volumes:
- ./elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro,Z
- ./elk/logstash/pipeline:/usr/share/logstash/pipeline:ro,Z
ports:
- 5044:5044
- 50000:50000/tcp
- 50000:50000/udp
- 9600:9600
environment:
LS_JAVA_OPTS: -Xms256m -Xmx256m
LOGSTASH_INTERNAL_PASSWORD: changeme
depends_on:
- elasticsearch
restart: unless-stopped
kibana:
build:
context: elk/kibana
args:
ELASTIC_VERSION: 8.5.2
volumes:
- ./elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro,Z
ports:
- 5601:5601
environment:
KIBANA_SYSTEM_PASSWORD: changeme
depends_on:
- elasticsearch
restart: unless-stopped
filebeat:
build:
context: elk/filebeat
args:
ELASTIC_VERSION: 8.5.2
entrypoint: "filebeat -e -strict.perms=false"
volumes:
- ./elk/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml
- ./nginx/log:/var/log/nginx # nginx log path (require same option on nginx container)
depends_on:
- logstash
- elasticsearch
- kibana
prometheus:
image: prom/prometheus:latest
restart: always
ports:
- "9090:9090"
links:
- cadvisor
- alertmanager
volumes:
- ./monitoring/prometheus/:/etc/prometheus/
user: root
depends_on:
- cadvisor
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
grafana:
build:
context: ./monitoring/grafana
container_name: grafana
ports:
- "3001:3000"
depends_on:
- prometheus
node-exporter:
container_name: node-exporter
image: prom/node-exporter
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- --collector.filesystem.ignored-mount-points
- "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
ports:
- "9100:9100"
restart: always
alertmanager:
container_name: alertmanager
image: prom/alertmanager
ports:
- "9093:9093"
volumes:
- ./monitoring/alertmanager/:/etc/alertmanager/
restart: always
command:
- '--config.file=/etc/alertmanager/config.yml'
- '--storage.path=/alertmanager'
cadvisor:
container_name: cadvisor
image: gcr.io/cadvisor/cadvisor:v0.46.0
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
ports:
- "8080:8080"
restart: always