Merge pull request #3750 from modoboa/fix/dns_logs

Stop logging DNS issues to the database
This commit is contained in:
Antoine Nguyen
2025-10-15 10:28:06 +02:00
committed by GitHub
4 changed files with 54 additions and 14 deletions
+30
View File
@@ -130,6 +130,36 @@ Rebuild Virtual Environment
Specific instructions
*********************
Version 2.6.1
=============
Required changes to :file:`settings.py`
---------------------------------------
- Add the following lines to ``LOGGING`` variable:
.. sourcecode:: python
'handlers': {
...
'syslog': {
'class': 'logging.handlers.SysLogHandler',
'facility': SysLogHandler.LOG_SYSLOG,
'formatter': 'syslog'
},
...
},
'loggers': {
...
'modoboa.dns': {
'handlers': ['syslog'],
'level': 'INFO',
'propagate': False
},
...
}
Version 2.6.0
=============
+2 -2
View File
@@ -213,7 +213,7 @@ def get_authoritative_resolver(domain, resolver=None):
def get_dns_records(name, typ, resolver=None):
"""Retrieve DNS records for given name and type."""
logger = logging.getLogger("modoboa.admin")
logger = logging.getLogger("modoboa.dns")
try:
resolver = get_authoritative_resolver(name, resolver=resolver)
@@ -242,7 +242,7 @@ def get_dns_records(name, typ, resolver=None):
def get_domain_mx_list(domain):
"""Return a list of MX IP address for domain."""
result = []
logger = logging.getLogger("modoboa.admin")
logger = logging.getLogger("modoboa.dns")
resolver = get_dns_resolver()
dns_answers = get_dns_records(domain, "MX", resolver)
if dns_answers is None:
+12 -12
View File
@@ -138,7 +138,7 @@ class MXTestCase(ModoTestCase):
"""Test to get error loggins from specific DNS server."""
mock_query.side_effect = utils.mock_dns_query_result
mock_ip_address.side_effect = utils.mock_ip_address_result
with LogCapture("modoboa.admin") as log:
with LogCapture("modoboa.dns") as log:
get_domain_mx_list("does-not-exist.example.com")
get_domain_mx_list("no-mx.example.com")
get_domain_mx_list("no-ns-servers.example.com")
@@ -148,36 +148,36 @@ class MXTestCase(ModoTestCase):
get_domain_mx_list("bad-response.example.com")
log.check(
(
"modoboa.admin",
"modoboa.dns",
"ERROR",
_("No DNS record found for %s") % "does-not-exist.example.com",
),
("modoboa.admin", "ERROR", _("No MX record for %s") % "no-mx.example.com"),
("modoboa.admin", "ERROR", _("No working name servers found")),
("modoboa.dns", "ERROR", _("No MX record for %s") % "no-mx.example.com"),
("modoboa.dns", "ERROR", _("No working name servers found")),
(
"modoboa.admin",
"modoboa.dns",
"WARNING",
_("DNS resolution timeout, unable to query %s at the moment")
% "timeout.example.com",
),
(
"modoboa.admin",
"modoboa.dns",
"ERROR",
_("No DNS record found for %s") % "does-not-exist.example.com",
),
(
"modoboa.admin",
"modoboa.dns",
"ERROR",
_("No DNS record found for %s") % "does-not-exist.example.com",
),
(
"modoboa.admin",
"modoboa.dns",
"WARNING",
_("Invalid IP address format for %(domain)s; %(addr)s")
% {"domain": "bad-response.example.com", "addr": "000.0.0.0"},
),
(
"modoboa.admin",
"modoboa.dns",
"WARNING",
_("Invalid IP address format for %(domain)s; %(addr)s")
% {"domain": "bad-response.example.com", "addr": "000.0.0.0"},
@@ -193,15 +193,15 @@ class MXTestCase(ModoTestCase):
localconfig = core_models.LocalConfig.objects.first()
localconfig.parameters.set_value("enable_ipv6_mx_checks", True, "admin")
localconfig.save()
with LogCapture("modoboa.admin") as log:
with LogCapture("modoboa.dns") as log:
get_domain_mx_list("test3.com")
log.check(
("modoboa.admin", "ERROR", _("No AAAA record for %s") % "mx3.example.com")
("modoboa.dns", "ERROR", _("No AAAA record for %s") % "mx3.example.com")
)
localconfig = core_models.LocalConfig.objects.first()
localconfig.parameters.set_value("enable_ipv6_mx_checks", False, "admin")
localconfig.save()
with LogCapture("modoboa.admin") as log2:
with LogCapture("modoboa.dns") as log2:
get_domain_mx_list("test3.com")
log2.check()
@@ -361,6 +361,11 @@ LOGGING = {
'facility': SysLogHandler.LOG_MAIL,
'formatter': 'syslog'
},
'syslog': {
'class': 'logging.handlers.SysLogHandler',
'facility': SysLogHandler.LOG_SYSLOG,
'formatter': 'syslog'
},
'modoboa': {
'class': 'modoboa.core.loggers.SQLHandler',
}
@@ -381,6 +386,11 @@ LOGGING = {
'level': 'INFO',
'propagate': False
},
'modoboa.dns': {
'handlers': ['syslog'],
'level': 'INFO',
'propagate': False
},
'modoboa.policyd': {
'handlers': ['syslog-mail'],
'level': 'INFO',