searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

libvirt日志轮转介绍

2023-06-09 06:28:13
131
0

logrotate即日志轮转,是定期对日志进行切片,压缩等处理的工具;

它是由每天的定时任务自动触发的,读取的是/etc/logrotate.d下的文件; 然后根据里面的配置再决定对各个日志文件如何处理;

由于是定时任务自动触发,所以这些配置文件只需要放进去就好,不需要重启logroate; 以下是执行的路径:

/usr/sbin/crond → /etc/cron.d/0hourly → /etc/cron.hourly/0anacron →  /usr/sbin/anacron → /etc/anacrontab ->/etc/cron.daily/logrotate → /etc/logroate.d/libvirtd+libvird.qemu

 

libvirt lograte涉及到二个配置文件:

/etc/logrotate.d/libvirtd               # libvirtd本身的日志文件

/etc/logrotate.d/libvirtd.qemu     # 虚拟机的qemu日志文件

 

默认配置:

libvirtd:

/var/log/libvirt/libvirtd.log {
        weekly                                   # 每周轮转一次,还要结合下面的minisize,即同时满足minisize指定的大小才会进行切片操作;另外还有size, maxsize参数,可以参考后面的说明; 
        missingok                              # 如果文件不存在,忽略
        rotate 4                                 # 轮转4次,即最终会保留5个文件:libvirtd.log、libvirtd.log.1、libvirtd.log.2.gz、libvirtd.log.3.gz、libvirtd.log.4.gz
        compress                              # 轮转后的文件进行压缩
        delaycompress                     # 延迟压缩,就是上面的libvirtd.log.1; 如果再转轮一次,这个libvirtd.log.1就会变成libvirtd.log2.gz
        copytruncate                        # 切片日志的创建方式; copytruncate可以理解为: cp libvirtd.log libvirt.log.1; echo > libvirtd.log; 这样就清空了日志文件内容同时不改变原文件的句柄,因为有些程序不支持运行时重新打开日志文件;

                                                     #另外一种方式是create,可以理解为:mv libvirtd.log libvirtd.log.1; touch libvirtd.log; 然后lograte通知程序重新打开新的libvirtd.log文件
        minsize 100k                        # 文件最小达到100k时才切片
}

 

libvirtd.qemu:

/var/log/libvirt/qemu/*.log {
        # 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                # 这儿日志只要达到2M+1个字节就切片;
        missingok
        rotate 4
        compress
        delaycompress
        copytruncate
}

对上述注释一点说明:

libvirt默认有一个virtlogd日志服务程序,是用来记录虚拟机控制台输出的; 它和libvirtd是分开的,目的是重启libvirtd时不用丢失虚拟机的日志; 

需要在xml中配置:

<serial type='pty'>
      <log file='/var/log/dpc-test-console.log' append='on'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
</serial>

同时虚拟机中打开控制台输出:console=tty0 console=ttyS0

这样虚拟机控制台日志会输出到/var/log/dpc-test-console.log中; 这个日志由/etc/libvirt/virtlog.conf控制切片:默认是2M,最多保留三个备份;

注:这个配置会同时对虚拟机控制台日志(/var/log/dpc-test-console.log)和虚拟机qemu日志(/var/log/libvirt/qemu/dpc-test.log)生效,即使它们不是在同一个目录;所以只要virtlogd.conf中设置的max_size比libvirtd.qemu中的size小,这个切片就会由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;

 

logrotate其他一些参数说明:

  • size
    触发分割的条件是:1.日志大小达到这个值,和时间周期没有关系。
  • minisize
    触发分割的条件是:1.时间周期到了,2.日志大小达到这个值;两个条件都要满足。
  • maxsize
    触发分割的条件是:1.时间周期到了,2. 日志大小大于这个值;两个条件任何一个满足。

另外还有个参数 :dateext,生成的切片文件会是时间结尾的,比如:libvirtd.log-20210207.gz

0条评论
作者已关闭评论
邓****程
2文章数
0粉丝数
邓****程
2 文章 | 0 粉丝
邓****程
2文章数
0粉丝数
邓****程
2 文章 | 0 粉丝
原创

libvirt日志轮转介绍

2023-06-09 06:28:13
131
0

logrotate即日志轮转,是定期对日志进行切片,压缩等处理的工具;

它是由每天的定时任务自动触发的,读取的是/etc/logrotate.d下的文件; 然后根据里面的配置再决定对各个日志文件如何处理;

由于是定时任务自动触发,所以这些配置文件只需要放进去就好,不需要重启logroate; 以下是执行的路径:

/usr/sbin/crond → /etc/cron.d/0hourly → /etc/cron.hourly/0anacron →  /usr/sbin/anacron → /etc/anacrontab ->/etc/cron.daily/logrotate → /etc/logroate.d/libvirtd+libvird.qemu

 

libvirt lograte涉及到二个配置文件:

/etc/logrotate.d/libvirtd               # libvirtd本身的日志文件

/etc/logrotate.d/libvirtd.qemu     # 虚拟机的qemu日志文件

 

默认配置:

libvirtd:

/var/log/libvirt/libvirtd.log {
        weekly                                   # 每周轮转一次,还要结合下面的minisize,即同时满足minisize指定的大小才会进行切片操作;另外还有size, maxsize参数,可以参考后面的说明; 
        missingok                              # 如果文件不存在,忽略
        rotate 4                                 # 轮转4次,即最终会保留5个文件:libvirtd.log、libvirtd.log.1、libvirtd.log.2.gz、libvirtd.log.3.gz、libvirtd.log.4.gz
        compress                              # 轮转后的文件进行压缩
        delaycompress                     # 延迟压缩,就是上面的libvirtd.log.1; 如果再转轮一次,这个libvirtd.log.1就会变成libvirtd.log2.gz
        copytruncate                        # 切片日志的创建方式; copytruncate可以理解为: cp libvirtd.log libvirt.log.1; echo > libvirtd.log; 这样就清空了日志文件内容同时不改变原文件的句柄,因为有些程序不支持运行时重新打开日志文件;

                                                     #另外一种方式是create,可以理解为:mv libvirtd.log libvirtd.log.1; touch libvirtd.log; 然后lograte通知程序重新打开新的libvirtd.log文件
        minsize 100k                        # 文件最小达到100k时才切片
}

 

libvirtd.qemu:

/var/log/libvirt/qemu/*.log {
        # 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                # 这儿日志只要达到2M+1个字节就切片;
        missingok
        rotate 4
        compress
        delaycompress
        copytruncate
}

对上述注释一点说明:

libvirt默认有一个virtlogd日志服务程序,是用来记录虚拟机控制台输出的; 它和libvirtd是分开的,目的是重启libvirtd时不用丢失虚拟机的日志; 

需要在xml中配置:

<serial type='pty'>
      <log file='/var/log/dpc-test-console.log' append='on'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
</serial>

同时虚拟机中打开控制台输出:console=tty0 console=ttyS0

这样虚拟机控制台日志会输出到/var/log/dpc-test-console.log中; 这个日志由/etc/libvirt/virtlog.conf控制切片:默认是2M,最多保留三个备份;

注:这个配置会同时对虚拟机控制台日志(/var/log/dpc-test-console.log)和虚拟机qemu日志(/var/log/libvirt/qemu/dpc-test.log)生效,即使它们不是在同一个目录;所以只要virtlogd.conf中设置的max_size比libvirtd.qemu中的size小,这个切片就会由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;

 

logrotate其他一些参数说明:

  • size
    触发分割的条件是:1.日志大小达到这个值,和时间周期没有关系。
  • minisize
    触发分割的条件是:1.时间周期到了,2.日志大小达到这个值;两个条件都要满足。
  • maxsize
    触发分割的条件是:1.时间周期到了,2. 日志大小大于这个值;两个条件任何一个满足。

另外还有个参数 :dateext,生成的切片文件会是时间结尾的,比如:libvirtd.log-20210207.gz

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0