From 96fafc69cf5e2e6981f6a5a0ea47cd0c2de36820 Mon Sep 17 00:00:00 2001 From: John Gasper Date: Mon, 26 Mar 2018 11:50:14 -0700 Subject: [PATCH] Creating a user/process agnostic logging pipe and sending output there --- Dockerfile | 4 ++-- container_files/api/log4j.properties | 8 ++++---- container_files/shibboleth/shibd.logger | 6 +++--- .../tier-support/supervisord-tomcat.conf | 16 ++++++++-------- .../tier-support/supervisord-tomee.conf | 10 +++++----- container_files/ui/classes/log4j.properties | 10 +++++----- container_files/usr-local-bin/library.sh | 4 ++++ container_files/ws/classes/log4j.properties | 10 +++++----- 8 files changed, 36 insertions(+), 32 deletions(-) diff --git a/Dockerfile b/Dockerfile index f0173d8..8f12322 100644 --- a/Dockerfile +++ b/Dockerfile @@ -109,8 +109,8 @@ COPY container_files/shibboleth/* /etc/shibboleth/ RUN cp /dev/null /etc/httpd/conf.d/ssl.conf \ && sed -i 's/LogFormat "/LogFormat "httpd-access /g' /etc/httpd/conf/httpd.conf \ && echo -e "\nErrorLogFormat \"httpd-error [%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i\"" >> /etc/httpd/conf/httpd.conf \ - && sed -i 's/CustomLog "logs\/access_log"/CustomLog "\/proc\/self\/fd\/1"/g' /etc/httpd/conf/httpd.conf \ - && sed -i 's/ErrorLog "logs\/error_log"/ErrorLog "\/proc\/self\/fd\/1"/g' /etc/httpd/conf/httpd.conf + && sed -i 's/CustomLog "logs\/access_log"/CustomLog "\/tmp\/logpipe"/g' /etc/httpd/conf/httpd.conf \ + && sed -i 's/ErrorLog "logs\/error_log"/ErrorLog "\/tmp\/logpipe"/g' /etc/httpd/conf/httpd.conf WORKDIR /opt/grouper/grouper.apiBinary/ diff --git a/container_files/api/log4j.properties b/container_files/api/log4j.properties index 22ec105..f9298f2 100644 --- a/container_files/api/log4j.properties +++ b/container_files/api/log4j.properties @@ -28,14 +28,14 @@ ## Grouper API event logging log4j.appender.grouper_event = org.apache.log4j.FileAppender -log4j.appender.grouper_event.file = /dev/fd/1 +log4j.appender.grouper_event.file = /tmp/logpipe log4j.appender.grouper_event.append = true log4j.appender.grouper_event.layout = org.apache.log4j.PatternLayout log4j.appender.grouper_event.layout.ConversionPattern = grouperd %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n ## Grouper API error logging log4j.appender.grouper_error = org.apache.log4j.FileAppender -log4j.appender.grouper_error.file = /dev/fd/1 +log4j.appender.grouper_error.file = /tmp/logpipe log4j.appender.grouper_errot.append = true log4j.appender.grouper_error.layout = org.apache.log4j.PatternLayout log4j.appender.grouper_error.layout.ConversionPattern = grouperd %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n @@ -43,7 +43,7 @@ log4j.appender.grouper_error.layout.ConversionPattern = grouperd %d{ISO8601}: # Debug logging (Or: logging that I haven't cleaned up yet to send elsewhere) log4j.appender.grouper_debug = org.apache.log4j.FileAppender -log4j.appender.grouper_debug.file = /dev/fd/1 +log4j.appender.grouper_debug.file = /tmp/logpipe log4j.appender.grouper_debug.append = true log4j.appender.grouper_debug.layout = org.apache.log4j.PatternLayout #log4j.appender.grouper_debug.layout.ConversionPattern = %d{ISO8601} %5p %c{2}: %m%n @@ -51,7 +51,7 @@ log4j.appender.grouper_debug.layout.ConversionPattern = grouperd %d{ISO8601}: ## Benchmark logging log4j.appender.grouper_gb = org.apache.log4j.FileAppender -log4j.appender.grouper_gb.file = /dev/fd/1 +log4j.appender.grouper_gb.file = /tmp/logpipe log4j.appender.grouper_gb.append = true log4j.appender.grouper_gb.layout = org.apache.log4j.PatternLayout #log4j.appender.grouper_gb.layout.ConversionPattern = %d{ISO8601} %5p %c{2}: %m%n diff --git a/container_files/shibboleth/shibd.logger b/container_files/shibboleth/shibd.logger index 345f327..22208ca 100644 --- a/container_files/shibboleth/shibd.logger +++ b/container_files/shibboleth/shibd.logger @@ -42,20 +42,20 @@ log4j.additivity.Shibboleth-TRANSACTION=false # define the appenders log4j.appender.shibd_log=org.apache.log4j.FileAppender -log4j.appender.shibd_log.fileName=/dev/fd/1 +log4j.appender.shibd_log.fileName=/tmp/logpipe log4j.appender.shibd_log.maxFileSize=1000000 log4j.appender.shibd_log.maxBackupIndex=10 log4j.appender.shibd_log.layout=org.apache.log4j.PatternLayout log4j.appender.shibd_log.layout.ConversionPattern=shibd-log %d{%Y-%m-%d %H:%M:%S} %p %c %x: %m%n log4j.appender.tran_log=org.apache.log4j.FileAppender -log4j.appender.tran_log.fileName=/dev/fd/1 +log4j.appender.tran_log.fileName=/tmp/logpipe log4j.appender.tran_log.maxFileSize=1000000 log4j.appender.tran_log.maxBackupIndex=20 log4j.appender.tran_log.layout=org.apache.log4j.PatternLayout log4j.appender.tran_log.layout.ConversionPattern=shibd-tran %d{%Y-%m-%d %H:%M:%S} %p %c %x: %m%n log4j.appender.sig_log=org.apache.log4j.FileAppender -log4j.appender.sig_log.fileName=/dev/fd/1 +log4j.appender.sig_log.fileName=/tmp/logpipe log4j.appender.sig_log.layout=org.apache.log4j.PatternLayout log4j.appender.sig_log.layout.ConversionPattern=shibd-sig %m diff --git a/container_files/tier-support/supervisord-tomcat.conf b/container_files/tier-support/supervisord-tomcat.conf index addcde9..78f0b2e 100644 --- a/container_files/tier-support/supervisord-tomcat.conf +++ b/container_files/tier-support/supervisord-tomcat.conf @@ -1,5 +1,5 @@ [supervisord] -logfile=/dev/fd/1 ; supervisord log file +logfile=/tmp/logpipe ; supervisord log file logfile_maxbytes=0 ; maximum size of logfile before rotation loglevel=error ; info, debug, warn, trace nodaemon=true ; run supervisord as a daemon @@ -16,24 +16,24 @@ serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix so [program:httpd] command=httpd -DFOREGROUND -stderr_logfile = /dev/fd/2 +stderr_logfile = /tmp/logpipe stderr_logfile_maxbytes=0 -stdout_logfile = /dev/fd/1 +stdout_logfile = /tmp/logpipe stdout_logfile_maxbytes=0 [program:shibbolethsp] -;user=shibd +user=shibd command=/usr/sbin/shibd -f -F -stderr_logfile = /dev/fd/2 +stderr_logfile = /tmp/logpipe stderr_logfile_maxbytes=0 -stdout_logfile = /dev/fd/1 +stdout_logfile = /tmp/logpipe stdout_logfile_maxbytes=0 [program:tomcat] user=tomcat command=/opt/tomcat/bin/catalina.sh run -stderr_logfile = /dev/fd/2 +stderr_logfile = /tmp/logpipe stderr_logfile_maxbytes=0 -stdout_logfile = /dev/fd/1 +stdout_logfile = /tmp/logpipe stdout_logfile_maxbytes=0 diff --git a/container_files/tier-support/supervisord-tomee.conf b/container_files/tier-support/supervisord-tomee.conf index 40d0c81..4d83843 100644 --- a/container_files/tier-support/supervisord-tomee.conf +++ b/container_files/tier-support/supervisord-tomee.conf @@ -1,5 +1,5 @@ [supervisord] -logfile=/dev/fd/1 ; supervisord log file +logfile=/tmp/logpipe ; supervisord log file logfile_maxbytes=0 ; maximum size of logfile before rotation loglevel=error ; info, debug, warn, trace nodaemon=true ; run supervisord as a daemon @@ -16,16 +16,16 @@ serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix so [program:httpd] command=httpd -DFOREGROUND -stderr_logfile = /dev/fd/2 +stderr_logfile = /tmp/logpipe stderr_logfile_maxbytes=0 -stdout_logfile = /dev/fd/1 +stdout_logfile = /tmp/logpipe stdout_logfile_maxbytes=0 [program:tomee] user=tomcat command=/opt/tomee/bin/catalina.sh run -stderr_logfile = /dev/fd/2 +stderr_logfile = /tmp/logpipe stderr_logfile_maxbytes=0 -stdout_logfile = /dev/fd/1 +stdout_logfile = /tmp/logpipe stdout_logfile_maxbytes=0 diff --git a/container_files/ui/classes/log4j.properties b/container_files/ui/classes/log4j.properties index 5c981e5..bbbfa94 100644 --- a/container_files/ui/classes/log4j.properties +++ b/container_files/ui/classes/log4j.properties @@ -28,14 +28,14 @@ ## Grouper API event logging log4j.appender.grouper_event = org.apache.log4j.FileAppender -log4j.appender.grouper_event.file = /dev/fd/1 +log4j.appender.grouper_event.file = /tmp/logpipe log4j.appender.grouper_event.append = true log4j.appender.grouper_event.layout = org.apache.log4j.PatternLayout log4j.appender.grouper_event.layout.ConversionPattern = grouper-ui %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n ## Grouper API error logging log4j.appender.grouper_error = org.apache.log4j.FileAppender -log4j.appender.grouper_error.file = /dev/fd/1 +log4j.appender.grouper_error.file = /tmp/logpipe log4j.appender.grouper_errot.append = true log4j.appender.grouper_error.layout = org.apache.log4j.PatternLayout log4j.appender.grouper_error.layout.ConversionPattern = grouper-ui %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n @@ -43,7 +43,7 @@ log4j.appender.grouper_error.layout.ConversionPattern = grouper-ui %d{ISO8601} # Debug logging (Or: logging that I haven't cleaned up yet to send elsewhere) log4j.appender.grouper_debug = org.apache.log4j.FileAppender -log4j.appender.grouper_debug.file = /dev/fd/1 +log4j.appender.grouper_debug.file = /tmp/logpipe log4j.appender.grouper_debug.append = true log4j.appender.grouper_debug.layout = org.apache.log4j.PatternLayout #log4j.appender.grouper_debug.layout.ConversionPattern = %d{ISO8601} %5p %c{2}: %m%n @@ -51,8 +51,8 @@ log4j.appender.grouper_debug.layout.ConversionPattern = grouper-ui %d{ISO8601} ## Benchmark logging log4j.appender.grouper_gb = org.apache.log4j.FileAppender -log4j.appender.grouper_gb.file = /dev/fd/1 -log4j.appender.grouper_gb.append = true +log4j.appender.grouper_gb.file = /tmp/logpipe +log4j.appender.grouper_gb.append = true log4j.appender.grouper_gb.layout = org.apache.log4j.PatternLayout #log4j.appender.grouper_gb.layout.ConversionPattern = %d{ISO8601} %5p %c{2}: %m%n log4j.appender.grouper_gb.layout.ConversionPattern = grouper-ui %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n diff --git a/container_files/usr-local-bin/library.sh b/container_files/usr-local-bin/library.sh index d8b1dd9..c89ef4c 100644 --- a/container_files/usr-local-bin/library.sh +++ b/container_files/usr-local-bin/library.sh @@ -1,5 +1,9 @@ #!/bin/sh +# Make a "console" logging pipe that anyone can write too regardless of who owns the process. +mkfifo -m 666 /tmp/logpipe +cat <> /tmp/logpipe 1>&2 & + linkGrouperSecrets() { for filepath in /run/secrets/*; do local label_file=`basename $filepath` diff --git a/container_files/ws/classes/log4j.properties b/container_files/ws/classes/log4j.properties index 88f684f..2ce32b6 100644 --- a/container_files/ws/classes/log4j.properties +++ b/container_files/ws/classes/log4j.properties @@ -28,14 +28,14 @@ ## Grouper API event logging log4j.appender.grouper_event = org.apache.log4j.FileAppender -log4j.appender.grouper_event.file = /dev/fd/1 +log4j.appender.grouper_event.file = /tmp/logpipe log4j.appender.grouper_event.append = true log4j.appender.grouper_event.layout = org.apache.log4j.PatternLayout log4j.appender.grouper_event.layout.ConversionPattern = grouper-ws %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n ## Grouper API error logging log4j.appender.grouper_error = org.apache.log4j.FileAppender -log4j.appender.grouper_error.file = /dev/fd/1 +log4j.appender.grouper_error.file = /tmp/logpipe log4j.appender.grouper_errot.append = true log4j.appender.grouper_error.layout = org.apache.log4j.PatternLayout log4j.appender.grouper_error.layout.ConversionPattern = grouper-ws %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n @@ -43,7 +43,7 @@ log4j.appender.grouper_error.layout.ConversionPattern = grouper-ws %d{ISO8601} # Debug logging (Or: logging that I haven't cleaned up yet to send elsewhere) log4j.appender.grouper_debug = org.apache.log4j.FileAppender -log4j.appender.grouper_debug.file = /dev/fd/1 +log4j.appender.grouper_debug.file = /tmp/logpipe log4j.appender.grouper_debug.append = true log4j.appender.grouper_debug.layout = org.apache.log4j.PatternLayout #log4j.appender.grouper_debug.layout.ConversionPattern = %d{ISO8601} %5p %c{2}: %m%n @@ -51,8 +51,8 @@ log4j.appender.grouper_debug.layout.ConversionPattern = grouper-ws %d{ISO8601} ## Benchmark logging log4j.appender.grouper_gb = org.apache.log4j.FileAppender -log4j.appender.grouper_gb.file = /dev/fd/1 -log4j.appender.grouper_gb.append = true +log4j.appender.grouper_gb.file = /tmp/logpipe +log4j.appender.grouper_gb.append = true log4j.appender.grouper_gb.layout = org.apache.log4j.PatternLayout #log4j.appender.grouper_gb.layout.ConversionPattern = %d{ISO8601} %5p %c{2}: %m%n log4j.appender.grouper_gb.layout.ConversionPattern = grouper-ws %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n