[libvirt] [PATCH] logging: ensure virtlogd rollover takes priority over logrotate

Jim Fehlig JFEHLIG at suse.com
Tue Jul 9 15:33:25 UTC 2019


On 7/8/19 8:12 AM, Daniel P. Berrangé  wrote:

I should have read more libvirt mail yesterday before responding to the other 
thread. Sorry for missing this message.

> The virtlogd config is set to rollover logs every 2 MB.
> 
> Normally a logrotate config file is also installed to handle cases where
> virtlogd is disabled. This is set to rollover weekly with no size
> constraint.
> 
> As a result logrotate can interfere with virtlogd's, rolling over files
> that virtlogd has already taken care of.
> 
> This changes logrotate configs to rollover based on a max size
> constraint of 2 MB + 1 byte. When virtlogd is running the log files will
> never get this large, making logrotate a no-op.
> 
> If the user changes the size in virtlogd's config to something larger,
> they are responsible for also changing the logrotate config suitably.

Documenting that is much better than my thoughts of trying to figure out 
virtlogd's config from some shell code between firstaction/endscript :-).

> 
> The LXC driver doesn't use virtlogd, but its logrotate config is altered
> to match the QEMU driver logrotate, just for the sake of consistency.

I suppose the libxl logrotate config file should be changed for the same reason.

> 
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> ---
>   src/logging/virtlogd.conf             |  6 ++++++
>   src/remote/libvirtd.lxc.logrotate.in  |  2 +-
>   src/remote/libvirtd.qemu.logrotate.in | 12 +++++++++---
>   3 files changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/src/logging/virtlogd.conf b/src/logging/virtlogd.conf
> index 72da7f0705..bc41edbc6b 100644
> --- a/src/logging/virtlogd.conf
> +++ b/src/logging/virtlogd.conf
> @@ -90,6 +90,12 @@
>   #admin_max_clients = 5
>   
>   # Maximum file size before rolling over. Defaults to 2 MB
> +#
> +# Beware that a logrotate config file might be installed too,
> +# to handle cases where virtlogd is disabled. To ensure that
> +# the logrotate config is a no-op when virtlogd is running,
> +# make sure that max_size here is smaller than size listed
> +# in the logrotate config.
>   #max_size = 2097152
>   
>   # Maximum number of backup files to keep. Defaults to 3,
> diff --git a/src/remote/libvirtd.lxc.logrotate.in b/src/remote/libvirtd.lxc.logrotate.in
> index 2bb9dfba12..b88dabb58e 100644
> --- a/src/remote/libvirtd.lxc.logrotate.in
> +++ b/src/remote/libvirtd.lxc.logrotate.in
> @@ -1,5 +1,5 @@
>   @localstatedir@/log/libvirt/lxc/*.log {
> -        weekly
> +        size 2097153
>           missingok
>           rotate 4
>           compress
> diff --git a/src/remote/libvirtd.qemu.logrotate.in b/src/remote/libvirtd.qemu.logrotate.in
> index cdb399ef23..9b9db716ab 100644
> --- a/src/remote/libvirtd.qemu.logrotate.in
> +++ b/src/remote/libvirtd.qemu.logrotate.in
> @@ -1,8 +1,14 @@
>   @localstatedir@/log/libvirt/qemu/*.log {
> -        weekly
> +        # The QEMU driver is configured to use virtlogd by
> +        # default, which will perform log rollover.
> +        # This logrotate config is still installed for cases
> +        # where the user has switched off virtlogd.
> +        #
> +        # If virtlogd is active, ensure that size here is
> +        # larger than 'max_size' in the virtlogd config
> +        # so that logrotate becomes a no-op
> +        size 2097153
>           missingok
>           rotate 4
> -        compress
> -        delaycompress

Are you sure you want to delete those?

Regards,
Jim




More information about the libvir-list mailing list