From 6cbe4b8faf1fbabc71d50189d42f9df8bb209ee7 Mon Sep 17 00:00:00 2001 From: geekup-legodevops <72587752+geekup-legodevops@users.noreply.github.com> Date: Tue, 19 Oct 2021 14:29:55 +0700 Subject: [PATCH] Config supervisord to write logs into log files (#8145) --- Dockerfile | 5 ++++- deploy/docker/entrypoint.sh | 3 +++ deploy/docker/templates/supervisord.conf | 9 +++++++++ .../supervisord/application_process/backend.conf | 12 ++++++++---- .../supervisord/application_process/cron.conf | 12 ++++++++---- .../supervisord/application_process/editor.conf | 12 ++++++++---- .../supervisord/application_process/rts.conf | 12 ++++++++---- deploy/docker/templates/supervisord/mongodb.conf | 12 ++++++++---- deploy/docker/templates/supervisord/redis.conf | 12 ++++++++---- 9 files changed, 64 insertions(+), 25 deletions(-) diff --git a/Dockerfile b/Dockerfile index b86912fc1b..d3bea1be0a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,10 +10,13 @@ ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 # Update APT packages - Base Layer -RUN apt-get update && apt-get install --no-install-recommends -y \ +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ supervisor curl cron certbot nginx gnupg wget \ software-properties-common gettext openjdk-11-jre \ + python3-pip python-setuptools git \ && add-apt-repository ppa:redislabs/redis \ + && pip install --no-cache-dir git+https://github.com/coderanger/supervisor-stdout@973ba19967cdaf46d9c1634d1675fc65b9574f6e \ + && apt-get remove -y git python3-pip \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* diff --git a/deploy/docker/entrypoint.sh b/deploy/docker/entrypoint.sh index 5b5f8f8b60..f2446ce84e 100755 --- a/deploy/docker/entrypoint.sh +++ b/deploy/docker/entrypoint.sh @@ -198,5 +198,8 @@ configure_supervisord # Ensure the restore path exists in the container, so an archive can be copied to it, if need be. mkdir -p /appsmith-stacks/data/{backup,restore} +# Create sub-directory to store services log in the container mounting folder +mkdir -p /appsmith-stacks/logs/{backend,cron,editor,rts,mongodb,redis} + # Handle CMD command exec "$@" diff --git a/deploy/docker/templates/supervisord.conf b/deploy/docker/templates/supervisord.conf index ede3038a30..d027f74aa9 100644 --- a/deploy/docker/templates/supervisord.conf +++ b/deploy/docker/templates/supervisord.conf @@ -33,3 +33,12 @@ serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket [include] files = /etc/supervisor/conf.d/*.conf + +; This event listener is used to capture processes log +; and forward to container log using supervisor_stdout +; Ref: https://github.com/coderanger/supervisor-stdout +[eventlistener:stdout] +command = supervisor_stdout +buffer_size = 100 +events = PROCESS_LOG +result_handler = supervisor_stdout:event_handler \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/application_process/backend.conf b/deploy/docker/templates/supervisord/application_process/backend.conf index 4686b423c9..ecb18f7945 100644 --- a/deploy/docker/templates/supervisord/application_process/backend.conf +++ b/deploy/docker/templates/supervisord/application_process/backend.conf @@ -6,7 +6,11 @@ autostart=true autorestart=true startsecs=10 startretries=3 -stdout_logfile_maxbytes = 0 -stderr_logfile_maxbytes = 0 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr \ No newline at end of file +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/application_process/cron.conf b/deploy/docker/templates/supervisord/application_process/cron.conf index 88a228da29..16b24e79a3 100644 --- a/deploy/docker/templates/supervisord/application_process/cron.conf +++ b/deploy/docker/templates/supervisord/application_process/cron.conf @@ -6,7 +6,11 @@ autostart=true autorestart=true startsecs=0 startretries=3 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr -stdout_logfile_maxbytes=0 -stderr_logfile_maxbytes=0 \ No newline at end of file +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/application_process/editor.conf b/deploy/docker/templates/supervisord/application_process/editor.conf index 9ef1a38b45..f66e8ebb00 100644 --- a/deploy/docker/templates/supervisord/application_process/editor.conf +++ b/deploy/docker/templates/supervisord/application_process/editor.conf @@ -5,8 +5,12 @@ autostart=true autorestart=true startsecs=0 startretries=3 -stdout_logfile_maxbytes = 0 -stderr_logfile_maxbytes = 0 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true stopsignal=QUIT \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/application_process/rts.conf b/deploy/docker/templates/supervisord/application_process/rts.conf index 00d8fc1363..b0964c1eb1 100644 --- a/deploy/docker/templates/supervisord/application_process/rts.conf +++ b/deploy/docker/templates/supervisord/application_process/rts.conf @@ -6,7 +6,11 @@ autostart=true autorestart=true startsecs=0 startretries=3 -stdout_logfile_maxbytes = 0 -stderr_logfile_maxbytes = 0 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr \ No newline at end of file +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/mongodb.conf b/deploy/docker/templates/supervisord/mongodb.conf index 4ff70d2cc8..d54ee43f0b 100644 --- a/deploy/docker/templates/supervisord/mongodb.conf +++ b/deploy/docker/templates/supervisord/mongodb.conf @@ -6,7 +6,11 @@ autostart=true autorestart=true startsecs=10 startretries=3 -stdout_logfile_maxbytes = 0 -stderr_logfile_maxbytes = 0 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr \ No newline at end of file +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/redis.conf b/deploy/docker/templates/supervisord/redis.conf index 7f2a6f1593..ed6c6dfac4 100644 --- a/deploy/docker/templates/supervisord/redis.conf +++ b/deploy/docker/templates/supervisord/redis.conf @@ -6,7 +6,11 @@ autostart=true autorestart=true startsecs=0 startretries=3 -stdout_logfile_maxbytes = 0 -stderr_logfile_maxbytes = 0 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr \ No newline at end of file +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true \ No newline at end of file