Modify the healtchecks to make them disapear from the logs.

This is not perfect...
- dovecot now complains about waitpid/finding a new process
- postfix is still regularly pinging rspamd / his milter and that
generates a few lines worth of logs each time.
main
Florent Daigniere 2 years ago
parent 874e58348f
commit edd303f54d

@ -23,7 +23,7 @@ RUN set -euxo pipefail \
RUN echo $VERSION >/version RUN echo $VERSION >/version
EXPOSE 80/tcp EXPOSE 80/tcp
HEALTHCHECK CMD curl -skfLo /dev/null http://localhost/sso/login?next=ui.index HEALTHCHECK CMD curl -skfLo /dev/null http://localhost/ping
VOLUME ["/data","/dkim"] VOLUME ["/data","/dkim"]

@ -5,9 +5,24 @@ import flask
import flask_bootstrap import flask_bootstrap
from mailu import utils, debug, models, manage, configuration from mailu import utils, debug, models, manage, configuration
from gunicorn import glogging
import logging
import hmac import hmac
class NoPingFilter(logging.Filter):
def filter(self, record):
if not (record.args['{host}i'] == 'localhost' and record.args['r'] == 'GET /ping HTTP/1.1'):
return True
class Logger(glogging.Logger):
def setup(self, cfg):
super().setup(cfg)
# Add filters to Gunicorn logger
logger = logging.getLogger("gunicorn.access")
logger.addFilter(NoPingFilter())
def create_app_from_config(config): def create_app_from_config(config):
""" Create a new application based on the given configuration """ Create a new application based on the given configuration
""" """
@ -69,6 +84,10 @@ def create_app_from_config(config):
def format_datetime(value): def format_datetime(value):
return utils.flask_babel.format_datetime(value) if value else '' return utils.flask_babel.format_datetime(value) if value else ''
def ping():
return ''
app.route('/ping')(ping)
# Import views # Import views
from mailu import ui, internal, sso from mailu import ui, internal, sso
app.register_blueprint(ui.ui, url_prefix=app.config['WEB_ADMIN']) app.register_blueprint(ui.ui, url_prefix=app.config['WEB_ADMIN'])

@ -52,12 +52,15 @@ def test_DNS():
test_DNS() test_DNS()
start_command="".join([ start_command=" ".join([
"gunicorn --threads ", str(os.cpu_count()), "gunicorn",
" -b :80 ", f"--threads {str(os.cpu_count())}",
"--access-logfile - " if (log.root.level<=log.INFO) else "", "-b :80",
"--error-logfile - ", "--logger-class mailu.Logger",
"--preload ", "--worker-tmp-dir /dev/shm",
"--access-logfile -" if (log.root.level<=log.INFO) else "",
"--error-logfile -",
"--preload",
"'mailu:create_app()'"]) "'mailu:create_app()'"])
os.system(start_command) os.system(start_command)

@ -16,7 +16,7 @@ COPY start.py /
RUN echo $VERSION >/version RUN echo $VERSION >/version
EXPOSE 110/tcp 143/tcp 993/tcp 4190/tcp 2525/tcp EXPOSE 110/tcp 143/tcp 993/tcp 4190/tcp 2525/tcp
HEALTHCHECK --start-period=350s CMD echo QUIT|nc localhost 110|grep "Dovecot ready." HEALTHCHECK CMD echo PING|nc -w2 localhost 5001|grep "PONG"
VOLUME ["/mail"] VOLUME ["/mail"]

@ -93,6 +93,13 @@ service auth-worker {
} }
} }
service health-check {
executable = script -p health-check.sh
inet_listener health-check {
port = 5001
}
}
############### ###############
# IMAP & POP # IMAP & POP
############### ###############

@ -1,41 +1,43 @@
# rsyslog configuration file # rsyslog configuration file
# #
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# or latest version online at http://www.rsyslog.com/doc/rsyslog_conf.html # or latest version online at http://www.rsyslog.com/doc/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
#### Global directives #### #### Global directives ####
# Sets the directory that rsyslog uses for work files. # Sets the directory that rsyslog uses for work files.
$WorkDirectory /var/lib/rsyslog $WorkDirectory /var/lib/rsyslog
# Sets default permissions for all log files. # Sets default permissions for all log files.
$FileOwner root $FileOwner root
$FileGroup adm $FileGroup adm
$FileCreateMode 0640 $FileCreateMode 0640
$DirCreateMode 0755 $DirCreateMode 0755
$Umask 0022 $Umask 0022
# Reduce repeating messages (default off). # Reduce repeating messages (default off).
$RepeatedMsgReduction on $RepeatedMsgReduction on
#### Modules #### #### Modules ####
# Provides support for local system logging (e.g. via logger command). # Provides support for local system logging (e.g. via logger command).
module(load="imuxsock") module(load="imuxsock")
#### Rules #### #### Rules ####
# Discard messages from local test requests # Discard messages from local test requests
:msg, contains, "connect from localhost[127.0.0.1]" ~ :msg, contains, "connect from localhost[127.0.0.1]" ~
:msg, contains, "connect from localhost[::1]" ~ :msg, contains, "connect from localhost[::1]" ~
:msg, contains, "haproxy read: short protocol header: QUIT" ~
{% if POSTFIX_LOG_FILE %} :msg, contains, "discarding EHLO keywords: PIPELINING" ~
# Log mail logs to file
mail.* -{{POSTFIX_LOG_FILE}} {% if POSTFIX_LOG_FILE %}
{% endif %} # Log mail logs to file
mail.* -{{POSTFIX_LOG_FILE}}
# Log mail logs to stdout {% endif %}
mail.* -/dev/stdout
# Log mail logs to stdout
mail.* -/dev/stdout

@ -0,0 +1 @@
Modify the healtchecks to make them disapear from the logs.
Loading…
Cancel
Save