Thanks Vijay - 

> The appropriate mechanism to do log rotation would be to use logrotate 
> command with the 
> config file available at /etc/logrotate.d/glusterfs. This mechanism rotates 
> log files of all glusterfs processes.
> The log rotate <volname> command will be deprecated in a  future release.

I wonder how to do this?  If I am following this correctly - there are a bunch 
of layers to make this happen:

First, a facility named anacron runs periodically to handle things such as log 
file maintenance.  Looking at a file named /etc/anacrontab that drives the 
whole thing:

[root@chicago-fw1 etc]# more /etc/anacrontab
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly
[root@chicago-fw1 etc]#

So cron.daily probably schedules things to run every day, probably at 5 minutes 
past midnight.   Cron.weekly and cron.monthly are empty.   Looking at 
/etc/cron.daily:

[root@chicago-fw1 etc]# ls /etc/cron.daily
00webalizer  certwatch  logrotate  man-db.cron  mlocate  prelink
[root@chicago-fw1 etc]#

And the script we care about must be logrotate.  Looking at that:

[root@chicago-fw1 etc]# more /etc/cron.daily/logrotate
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
[root@chicago-fw1 etc]#

A file named /etc/logrotate.conf drives it.  Looking at that file:

[root@chicago-fw1 etc]# more /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.
[root@chicago-fw1 etc]#

The logrotate .conf file has an include for everything in /etc/logrotate.d, so 
what's in there?

[root@chicago-fw1 etc]# ls /etc/logrotate.d
chrony      glusterd        httpd        libvirtd       libvirtd.uml  samba  
syslog          yum
cups        glusterfsd      iptraf-ng    libvirtd.lxc   ppp           squid  
vsftpd
dracut_log  glusterfs-fuse  iscsiuiolog  libvirtd.qemu  psacct        sssd   
wpa_supplicant
[root@chicago-fw1 etc]#

And the piece that rotates the Gluster logs:

[root@chicago-fw1 etc]# more /etc/logrotate.d/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@chicago-fw1 etc]#

So the task seems to be editing this file by hand to include the log file for 
my Gluster volume.  Or better, what about just making a file named <volume> to 
rotate the log file associated with <volume> named /var/log/glusterfs/<volume>.

My volume name is firewall-scripts.  Here is a first shot at it.  Create a file 
named /etc/logrotate.d/firewall-scripts that looks like this:

[root@chicago-fw1 logrotate.d]# more /etc/logrotate.d/firewall-scripts
/var/log/glusterfs/firewall-scripts.log

There is no way it will be this simple.    It's **never** this simple.  

And it's not.

[root@chicago-fw1 logrotate.d]# /usr/sbin/logrotate /etc/logrotate.conf
error: firewall-scripts:1 missing '{' after log files definition
error: found error in file firewall-scripts, skipping
[root@chicago-fw1 logrotate.d]#

It looks like you need a section that restarts the process associated with that 
log file at the end.  Here is where I get a little bit shakey - what process 
should I  be looking for?  Or should I just edit /etc/logrotate.d/glusterd?

Here I go again stumbling blindly down Trial and Error Avenue.  I could really 
use some guidance here.  

- Greg
_______________________________________________
Gluster-users mailing list
[email protected]
http://supercolony.gluster.org/mailman/listinfo/gluster-users

Reply via email to