From ce82b87d9f622f4e13b3de788afc1b8d6780b35a Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Wed, 8 Apr 2020 13:38:35 -0400 Subject: [PATCH] rsyslog hardening (fixing a few weird things we noticed) --- awx/main/utils/external_logging.py | 2 ++ awx/main/utils/formatters.py | 2 +- awx/main/utils/handlers.py | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/awx/main/utils/external_logging.py b/awx/main/utils/external_logging.py index 3f37e79f11..a8295ad399 100644 --- a/awx/main/utils/external_logging.py +++ b/awx/main/utils/external_logging.py @@ -26,9 +26,11 @@ def construct_rsyslog_conf_template(settings=settings): port = parsed.port except ValueError: port = settings.LOG_AGGREGATOR_PORT + max_bytes = settings.MAX_EVENT_RES_DATA parts.extend([ '$WorkDirectory /var/lib/awx/rsyslog', '$IncludeConfig /etc/rsyslog.d/*.conf', + f'$MaxMessageSize {max_bytes}b', '$ModLoad imuxsock', 'input(type="imuxsock" Socket="' + settings.LOGGING['handlers']['external_logger']['address'] + '" unlink="on")', 'template(name="awx" type="string" string="%msg%")', diff --git a/awx/main/utils/formatters.py b/awx/main/utils/formatters.py index 1c3146ee46..fb08034a5e 100644 --- a/awx/main/utils/formatters.py +++ b/awx/main/utils/formatters.py @@ -97,7 +97,7 @@ class LogstashFormatterBase(logging.Formatter): @classmethod def serialize(cls, message): - return bytes(json.dumps(message, cls=DjangoJSONEncoder), 'utf-8') + return ' ' + json.dumps(message, cls=DjangoJSONEncoder) + '\000' class LogstashFormatter(LogstashFormatterBase): diff --git a/awx/main/utils/handlers.py b/awx/main/utils/handlers.py index a883058df1..f7c11cbc53 100644 --- a/awx/main/utils/handlers.py +++ b/awx/main/utils/handlers.py @@ -11,6 +11,8 @@ from django.conf import settings class RSysLogHandler(logging.handlers.SysLogHandler): + append_nul = False + def emit(self, msg): if not os.path.exists(settings.LOGGING['handlers']['external_logger']['address']): return