[PATCH 8/8] kbase: debuglogs: Fix for modular daemons
eskultet at redhat.com
Wed Jan 19 11:40:35 UTC 2022
On Mon, Jan 17, 2022 at 04:39:16PM +0100, Peter Krempa wrote:
> Modular daemons are now the default in many new installations, thus we
> need to include steps how to determine that modular daemons are used and
> modular-daemon specific locations for the config files and admin URIs.
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> docs/kbase/debuglogs.rst | 94 +++++++++++++++++++++++++++++++---------
> 1 file changed, 73 insertions(+), 21 deletions(-)
> diff --git a/docs/kbase/debuglogs.rst b/docs/kbase/debuglogs.rst
> index fc75ef14a4..ea7c2c1d52 100644
> --- a/docs/kbase/debuglogs.rst
> +++ b/docs/kbase/debuglogs.rst
> @@ -87,38 +87,87 @@ more information than lack something important.
> Libvirt daemons logging configuration
> -Persistent setting
> +Libvirt daemons can be configured either via a config file or via the
> +administration API. The configuration location depends on multiple factors.
> -The daemon configuration files location is dependent on `connection
> -URI <https://libvirt.org/uri.html>`__. For ``qemu:///system``:
> +Session vs. system daemons
> +The libvirt daemons run either on ``system`` level or on ``session`` (user)
> +level, depending on the configuration of the host and the available permission
> +The `connection URI <https://libvirt.org/uri.html>`__ influences which daemon
> +the client is communicating with.
s/is communicating/will communicate with
"A few facts about the two runtime modes"
> -- open ``/etc/libvirt/libvirtd.conf`` in your favourite editor
> -- find & replace, or set these variables:
> +``system`` daemon e.g ``qemu:///system`` URI
> + * config files are usually placed in ``/etc/libvirt/``
> - log_filters="3:remote 4:event 3:util.json 3:rpc 1:*"
> - log_outputs="1:file:/var/log/libvirt/libvirtd.log"
> + * ``virt-admin`` URI ending in ``/system`` should be used.
> -- save and exit
> -- restart libvirtd service
There should be a subsubsection for both IMO, how about:
- all connection URIs will end with '/system', e.g. ``qemu:///system```
- config files are usually placed..."
I deliberately left out the virt-admin part, because you're mentioning it again
in 'Modular vs monolithic daemons', it's enough if virt-admin is mentioned once
...analogically, the same apples to the 'session' mode section below...
> +``session`` daemon e.g. ``qemu:///session`` URI
> + * config files are usually placed in ``$XDG_CONFIG_HOME/libvirt/`` directory
> + * ``virt-admin`` URI ending in ``/session`` should be used
> +Modular vs. monolithic daemons
> +While the config file name for the monolithic daemon is simple, in case when
> +modular daemons are used, there's a lot of options.
> +All libvirt daemons support the logging configuration per this document, but
> +in most cases it's required to configure logging for the appropriate.
"While there is only a single 'libvirtd.conf' configuration file in case of the
monolithic daemon setup, each of the modular daemons has their own
configuration file giving you a lot of possibilities how to configure them
individually including logging. Realistically though, logging will have to be
configured only for a single or a couple of daemons in case debug logs are
> +Refer to `documentation about daemons <../daemons.html#checking-whether-modular-monolithic-mode-is-in-use>`__
> +to figure out which is in use by your system.
> + Modular daemons
Same as with system vs session --> should be a subsubsection
> + The configuration of modular daemons is in file named after the daemon. E.g.
> + for ``qemu:///system`` connection this is the ``virtqemud`` daemon and
> + correspondingly:
"Configuration files in the modular daemons setup are named after individual
daemons, each prefixed with 'virt', e.g. in case of the ``qemu:///system``
hypervisor connection, the underlying daemon handling it is called
``virtqemud`` and so the configuration file will be named ``virtqemud.conf``.
For runtime configuration with ``virt-admin`` (see below)
``virtqemud:///system`` or ``virtqemud:///session`` URIs would be used
depending on which runtime mode is used for the daemons (see above)."
...analogically, you can use the same with a few changes for the monolithic
> + * ``virtqemud.conf`` config file is used
> + * ``virtqemud:///system`` or ``virtqemud:///session`` admin URI is used
> - systemctl restart libvirtd.service
> + Monolithic daemon
> + * ``libvirtd.conf`` config file is used
> + * ``libvirtd:///system`` or ``libvirtd:///session`` admin URI is used
> + when the modular qemu hypervisor driver ``virtqemud``
> +Persistent setting
"In order to setup libvirt logging persistently, follow the steps below:"
> +- open the appropriate daemon config file in your favourite editor ::
> + /etc/libvirt/virtqemud.conf
> + /etc/libvirt/libvirtd.conf
> + $XDG_CONFIG_HOME/libvirt/libvirtd.conf
> + $XDG_CONFIG_HOME/libvirt/virtqemud.conf
> +- find & replace, or set the apropriate `Log outputs`_ and `Log filters`_, e.g ::
> + log_filters="3:remote 4:event 3:util.json 3:rpc 1:*"
> + log_outputs="1:file:/var/log/libvirt/libvirtd.log"
> +- save and exit
> +- restart the corresponding service/daemon e.g. ::
> + systemctl restart virtqemud.socket
> + systemctl restart libvirtd.socket
> + systemctl restart libvirtd.service
> *Note:* Libvirt prior to the ``libvirt-4.4.0`` release didn't support globbing
> patterns and thus requires more configuration. See
> `Legacy (pre-4.4.0) libvirt daemon logging configuration`_.
> -However, when you are using the session mode ``qemu:///session`` or you run the
> -``libvirtd`` as unprivileged user you will find configuration file under
> Runtime setting
> @@ -127,13 +176,16 @@ after the daemon restarts, since the new session can make the anomaly
> "disappear". Therefore, it's possible to enable the debug logs during runtime
> using libvirt administration API. To use it conveniently, there's the
> ``virt-admin`` client provided by the ``libvirt-admin`` package. Use the
> -package manager provided by your distribution to install this package. Once you
> -have it installed, run the following as root to see the set of log filters
> -currently being active:
> +package manager provided by your distribution to install this package.
> +**Important**: Substitute ``virt-admin -c $ADMIN_URI`` per above guidance in
s/per above/according to the guideline in the sections above
> +place of ``virt-admin`` in the examples below if needed.
> +The following command allows to query the list of log filters currently active:
"...list of currently active log filters:"
More information about the libvir-list