From: Aleš Mrázek Date: Mon, 10 Jul 2023 14:13:16 +0000 (+0200) Subject: docs: config: declarative logging/monitoring X-Git-Tag: v6.0.2~16^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84ee6a23743c252ad602dcf0e19f283234bbd363;p=thirdparty%2Fknot-resolver.git docs: config: declarative logging/monitoring --- diff --git a/doc/config-logging-bogus.rst b/doc/config-logging-bogus.rst new file mode 100644 index 000000000..578767bdd --- /dev/null +++ b/doc/config-logging-bogus.rst @@ -0,0 +1,46 @@ +.. SPDX-License-Identifier: GPL-3.0-or-later + +.. _config-logging-bogus: + +DNSSEC validation failure logging +================================= + +This logs a message for each DNSSEC validation failure (on ``notice`` logging level). +It is meant to provide hint to operators which queries should be +investigated using diagnostic tools like DNSViz_. + +Add following line to your configuration file to enable it: + +.. code-block:: yaml + + logging: + dnssec-bogus: true + +Example of error message logged: + +.. code-block:: none + + [dnssec] validation failure: dnssec-failed.org. DNSKEY + +.. _DNSViz: http://dnsviz.net/ + +.. List of most frequent queries which fail as DNSSEC bogus can be obtained at run-time: + +.. .. code-block:: lua + +.. > bogus_log.frequent() +.. { +.. { +.. ['count'] = 1, +.. ['name'] = 'dnssec-failed.org.', +.. ['type'] = 'DNSKEY', +.. }, +.. { +.. ['count'] = 13, +.. ['name'] = 'rhybar.cz.', +.. ['type'] = 'DNSKEY', +.. }, +.. } + +.. Please note that in future this might be replaced +.. with some other way to log this information. diff --git a/doc/config-logging-debugging.rst b/doc/config-logging-debugging.rst new file mode 100644 index 000000000..79dd54e42 --- /dev/null +++ b/doc/config-logging-debugging.rst @@ -0,0 +1,44 @@ +.. SPDX-License-Identifier: GPL-3.0-or-later + +Debugging options +================= + +In case the resolver crashes, it is often helpful to collect a coredump from +the crashed process. Configuring the system to collect coredump from crashed +process is out of the scope of this documentation, but some tips can be found +`here `_. + +Kresd uses its own mechanism for assertions. They are checks that should always +pass and indicate some weird or unexpected state if they don't. In such cases, +they show up in the log as errors. By default, the process recovers from those +states if possible, but the behaviour can be changed with the following options +to aid further debugging. + +.. option:: logging/debugging: + + .. option:: assertion-abort: true|false + + :default: false + + Allow the process to be aborted in case it encounters a failed assertion. + (Some critical conditions always lead to abortion, regardless of settings.) + + .. option:: assertion-fork: