Skip to content

Commit 64cfc3b

Browse files
authored
Added option to set docker max log size (#157)
Signed-off-by: fastlorenzo <git@bernardi.be>
1 parent d3b3645 commit 64cfc3b

File tree

4 files changed

+117
-5
lines changed

4 files changed

+117
-5
lines changed

elkserver/.env.tmpl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ REDELKREPO=outflanknl
1515

1616
## Docker generic variables
1717
COMPOSE_PROJECT_NAME=redelk
18-
18+
# Defines the maximum log size per container (https://docs.docker.com/compose/compose-file/compose-file-v3/#logging)
19+
LOG_MAX_SIZE=200m
20+
LOG_MAX_FILE=1
1921

2022
## Variables for ES, Logstash and Kibana
2123
CERTS_DIR_ES=/usr/share/elasticsearch/config/certificates

elkserver/redelk-dev.yml

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ services:
6464
- CREDS_redelk=${CREDS_redelk}
6565
- ES_URL=${ES_URL}
6666
restart: always
67+
logging:
68+
driver: "json-file"
69+
options:
70+
max-size: "${LOG_MAX_SIZE}"
71+
max-file: "${LOG_MAX_FILE}"
6772

6873
logstash:
6974
container_name: redelk-logstash
@@ -101,6 +106,11 @@ services:
101106
- XPACK_MONITORING_ELASTICSEARCH_PASSWORD=${CREDS_logstash_system}
102107
- XPACK_MONITORING_ELASTICSEARCH_SSL_CERTIFICATE_AUTHORITY=${CERTS_LOGSTASH_OUTPUT_CA}
103108
restart: always
109+
logging:
110+
driver: "json-file"
111+
options:
112+
max-size: "${LOG_MAX_SIZE}"
113+
max-file: "${LOG_MAX_FILE}"
104114
depends_on:
105115
- elasticsearch
106116

@@ -129,11 +139,14 @@ services:
129139
- SERVER_SSL_KEY=${CERTS_DIR_KBN}/redelk-kibana/redelk-kibana.key
130140
- XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=${KBN_XPACK_ENCRYPTEDSAVEDOBJECTS}
131141
restart: always
142+
logging:
143+
driver: "json-file"
144+
options:
145+
max-size: "${LOG_MAX_SIZE}"
146+
max-file: "${LOG_MAX_FILE}"
132147
depends_on:
133148
- logstash
134149

135-
restart: always
136-
137150
nginx:
138151
container_name: redelk-nginx
139152
image: nginx:latest
@@ -155,6 +168,11 @@ services:
155168
- TLS_NGINX_CA_PATH=${TLS_NGINX_CA_PATH}
156169
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & /docker-entrypoint.d/20-envsubst-on-templates.sh; nginx -g \"daemon off;\"'"
157170
restart: always
171+
logging:
172+
driver: "json-file"
173+
options:
174+
max-size: "${LOG_MAX_SIZE}"
175+
max-file: "${LOG_MAX_FILE}"
158176

159177
certbot:
160178
container_name: redelk-certbot
@@ -166,6 +184,11 @@ services:
166184
- ./mounts/certbot/www:/var/www/certbot
167185
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
168186
restart: always
187+
logging:
188+
driver: "json-file"
189+
options:
190+
max-size: "${LOG_MAX_SIZE}"
191+
max-file: "${LOG_MAX_FILE}"
169192
depends_on:
170193
- nginx
171194

@@ -184,6 +207,11 @@ services:
184207
environment:
185208
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
186209
restart: always
210+
logging:
211+
driver: "json-file"
212+
options:
213+
max-size: "${LOG_MAX_SIZE}"
214+
max-file: "${LOG_MAX_FILE}"
187215
depends_on:
188216
- nginx
189217

@@ -197,6 +225,11 @@ services:
197225
volumes:
198226
- ./mounts/jupyter-workbooks:/home/jovyan/work
199227
restart: always
228+
logging:
229+
driver: "json-file"
230+
options:
231+
max-size: "${LOG_MAX_SIZE}"
232+
max-file: "${LOG_MAX_FILE}"
200233
depends_on:
201234
- base
202235

@@ -216,6 +249,11 @@ services:
216249
- NEO4J_dbms_memory_heap_max__size=${NEO4J_dbms_memory_heap_max__size}
217250
- NEO4J_dbms_memory_pagecache_size=${NEO4J_dbms_memory_pagecache_size}
218251
restart: always
252+
logging:
253+
driver: "json-file"
254+
options:
255+
max-size: "${LOG_MAX_SIZE}"
256+
max-file: "${LOG_MAX_FILE}"
219257
depends_on:
220258
- jupyter
221259

@@ -229,5 +267,10 @@ services:
229267
- ./mounts/sample-data/logs:/var/log/sample-data:ro
230268
- ./mounts/certs:/usr/share/filebeat/certs:ro
231269
command: ['filebeat', '-e', '-strict.perms=false']
270+
logging:
271+
driver: "json-file"
272+
options:
273+
max-size: "${LOG_MAX_SIZE}"
274+
max-file: "${LOG_MAX_FILE}"
232275
depends_on:
233276
- logstash

elkserver/redelk-full.yml

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ services:
2929
networks:
3030
- net
3131
ports:
32-
- "127.0.0.01:9200:9200"
32+
- "127.0.0.1:9200:9200"
3333
expose:
3434
- "9200"
3535
volumes:
@@ -64,6 +64,11 @@ services:
6464
- CREDS_redelk=${CREDS_redelk}
6565
- ES_URL=${ES_URL}
6666
restart: always
67+
logging:
68+
driver: "json-file"
69+
options:
70+
max-size: "${LOG_MAX_SIZE}"
71+
max-file: "${LOG_MAX_FILE}"
6772

6873
logstash:
6974
container_name: redelk-logstash
@@ -101,6 +106,11 @@ services:
101106
- XPACK_MONITORING_ELASTICSEARCH_PASSWORD=${CREDS_logstash_system}
102107
- XPACK_MONITORING_ELASTICSEARCH_SSL_CERTIFICATE_AUTHORITY=${CERTS_LOGSTASH_OUTPUT_CA}
103108
restart: always
109+
logging:
110+
driver: "json-file"
111+
options:
112+
max-size: "${LOG_MAX_SIZE}"
113+
max-file: "${LOG_MAX_FILE}"
104114
depends_on:
105115
- elasticsearch
106116

@@ -126,6 +136,11 @@ services:
126136
- SERVER_SSL_KEY=${CERTS_DIR_KBN}/redelk-kibana/redelk-kibana.key
127137
- XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=${KBN_XPACK_ENCRYPTEDSAVEDOBJECTS}
128138
restart: always
139+
logging:
140+
driver: "json-file"
141+
options:
142+
max-size: "${LOG_MAX_SIZE}"
143+
max-file: "${LOG_MAX_FILE}"
129144
depends_on:
130145
- logstash
131146

@@ -150,17 +165,27 @@ services:
150165
- TLS_NGINX_CA_PATH=${TLS_NGINX_CA_PATH}
151166
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & /docker-entrypoint.d/20-envsubst-on-templates.sh; nginx -g \"daemon off;\"'"
152167
restart: always
168+
logging:
169+
driver: "json-file"
170+
options:
171+
max-size: "${LOG_MAX_SIZE}"
172+
max-file: "${LOG_MAX_FILE}"
153173

154174
certbot:
155175
container_name: redelk-certbot
156176
image: certbot/certbot
157177
networks:
158-
- net
178+
- net
159179
volumes:
160180
- ./mounts/certbot/conf:/etc/letsencrypt
161181
- ./mounts/certbot/www:/var/www/certbot
162182
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
163183
restart: always
184+
logging:
185+
driver: "json-file"
186+
options:
187+
max-size: "${LOG_MAX_SIZE}"
188+
max-file: "${LOG_MAX_FILE}"
164189
depends_on:
165190
- nginx
166191

@@ -178,6 +203,11 @@ services:
178203
environment:
179204
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
180205
restart: always
206+
logging:
207+
driver: "json-file"
208+
options:
209+
max-size: "${LOG_MAX_SIZE}"
210+
max-file: "${LOG_MAX_FILE}"
181211
depends_on:
182212
- nginx
183213

@@ -210,5 +240,10 @@ services:
210240
- NEO4J_dbms_memory_heap_max__size=${NEO4J_dbms_memory_heap_max__size}
211241
- NEO4J_dbms_memory_pagecache_size=${NEO4J_dbms_memory_pagecache_size}
212242
restart: always
243+
logging:
244+
driver: "json-file"
245+
options:
246+
max-size: "${LOG_MAX_SIZE}"
247+
max-file: "${LOG_MAX_FILE}"
213248
depends_on:
214249
- jupyter

elkserver/redelk-limited.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ services:
6262
- CREDS_redelk=${CREDS_redelk}
6363
- ES_URL=${ES_URL}
6464
restart: always
65+
logging:
66+
driver: "json-file"
67+
options:
68+
max-size: "${LOG_MAX_SIZE}"
69+
max-file: "${LOG_MAX_FILE}"
6570

6671
logstash:
6772
container_name: redelk-logstash
@@ -99,6 +104,11 @@ services:
99104
- XPACK_MONITORING_ELASTICSEARCH_PASSWORD=${CREDS_logstash_system}
100105
- XPACK_MONITORING_ELASTICSEARCH_SSL_CERTIFICATE_AUTHORITY=${CERTS_LOGSTASH_OUTPUT_CA}
101106
restart: always
107+
logging:
108+
driver: "json-file"
109+
options:
110+
max-size: "${LOG_MAX_SIZE}"
111+
max-file: "${LOG_MAX_FILE}"
102112
depends_on:
103113
- elasticsearch
104114

@@ -124,6 +134,11 @@ services:
124134
- SERVER_SSL_KEY=${CERTS_DIR_KBN}/redelk-kibana/redelk-kibana.key
125135
- XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=${KBN_XPACK_ENCRYPTEDSAVEDOBJECTS}
126136
restart: always
137+
logging:
138+
driver: "json-file"
139+
options:
140+
max-size: "${LOG_MAX_SIZE}"
141+
max-file: "${LOG_MAX_FILE}"
127142
depends_on:
128143
- logstash
129144

@@ -148,15 +163,27 @@ services:
148163
- TLS_NGINX_CA_PATH=${TLS_NGINX_CA_PATH}
149164
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & /docker-entrypoint.d/20-envsubst-on-templates.sh; nginx -g \"daemon off;\"'"
150165
restart: always
166+
logging:
167+
driver: "json-file"
168+
options:
169+
max-size: "${LOG_MAX_SIZE}"
170+
max-file: "${LOG_MAX_FILE}"
151171

152172
certbot:
153173
container_name: redelk-certbot
154174
image: certbot/certbot
175+
networks:
176+
- net
155177
volumes:
156178
- ./mounts/certbot/conf:/etc/letsencrypt
157179
- ./mounts/certbot/www:/var/www/certbot
158180
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
159181
restart: always
182+
logging:
183+
driver: "json-file"
184+
options:
185+
max-size: "${LOG_MAX_SIZE}"
186+
max-file: "${LOG_MAX_FILE}"
160187
depends_on:
161188
- nginx
162189

@@ -174,5 +201,10 @@ services:
174201
environment:
175202
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
176203
restart: always
204+
logging:
205+
driver: "json-file"
206+
options:
207+
max-size: "${LOG_MAX_SIZE}"
208+
max-file: "${LOG_MAX_FILE}"
177209
depends_on:
178210
- nginx

0 commit comments

Comments
 (0)