gluster 3.4.5 logrotate默认配置如下:

[root@lab25 logrotate.d]# cat glusterd

/var/log/glusterfs/*glusterd.vol.log {

    missingok

    postrotate

        /bin/kill -HUP `cat /var/run/glusterd.pid 2>/dev/null` 2>/dev/null || true

    endscript

}

[root@lab25 logrotate.d]# cat glusterfsd

/var/log/glusterfs/*glusterfsd.log /var/log/glusterfs/bricks/*.log {

    missingok

    postrotate

        /bin/kill -HUP `cat /var/run/glusterfsd.pid 2>/dev/null` 2>/dev/null || true

    endscript

}

[root@lab25 logrotate.d]# cat glusterfs-fuse

/var/log/glusterfs/glusterfs.log {

    missingok

    postrotate

        /usr/bin/killall -HUP gluster 2>/dev/null || true

    endscript

}

说明:

    1、正常情况下,glusterfs-fuse配置文件操作的glusterfs.log不存在,没用影响,不予管理,可删除。

    2、glusterd和glusterfsd配置文件不会对客户端日志文件进行切割(显然没用匹配),会保留全部日志信息。

     

     

默认配置存在的问题,以CentOS 6.5默认配置进行说明:

    1、默认情况下,logrotate.conf每周执行一次,保留4个副本,最多纪录5周的日志,太少。(weekly、rotate 4)

    2、gluster对应配置无notifempty选项,若最近4周一直没用日志输出,则5个日志文件全部为空,丢日志信息。

    3、日志为压缩,可以考虑新增compress选项。

为解决上述问题,修改后的配置文件如下:

[root@lab25 logrotate.d]# cat glusterd

/var/log/glusterfs/*glusterd.vol.log {

    rotate 4

    dateext

    size 20MB

    notifempty

    sharedscripts

    missingok

    postrotate

        /bin/kill -HUP `cat /var/run/glusterd.pid 2>/dev/null` 2>/dev/null || true

    endscript

}

[root@lab25 logrotate.d]# cat glusterfsd

/var/log/glusterfs/*glustershd.log /var/log/glusterfs/bricks/*.log {

    rotate 4

    dateext

    size 20MB

    notifempty

    sharedscripts

    missingok

    postrotate

        /bin/kill -HUP `cat /var/run/glusterfsd.pid 2>/dev/null` 2>/dev/null || true

    endscript

}

[root@lab25 logrotate.d]# cat glusterfs-fuse

/var/log/glusterfs/glusterfs.log {

    rotate 4

    dateext

    size 20MB

    notifempty

    sharedscripts

    missingok

    postrotate

        /usr/bin/killall -HUP gluster 2>/dev/null || true

    endscript

}

修改说明:

    默认情况下,gluster 3.4.5官方给出的日志切割策略是:每周执行一次,保留52个副本。

    这样配置存在的缺点有:

        1、备份日志文件太多,不便于查看。

        2、备份的总日志所占空间不可控,在特殊情况下很有可能出现空间不足问题。

     

    解决方案:

        更改切割策略:

        1)每周执行一次改为日志文件大小超过20MB再执行。

        2)副本数保留4个,单个日志文件+备份不超过100MB。

        3)*glusterfsd.log文件不存在,修改为*glustershd.log。

        3)若想解压空间,可启用日志压缩功能,添加如下参数即可:

            compress

            delaycompress

        4)若想切割gluster客户端日志,可修改glusterfs-fuse文件,将glusterfs.log改为目标log名称即可。

         

    备注:

        若设置通过时间进行日志切割,请添加notifempty参数,该参数会在日志文件为空的情况下,不做任何操作。