Sunday, December 27, 2009

Jive SBS Employee on RHEL - Logrotate Warnings

While working with the social platform Jive SBS (in particular, the Employee Community) on Red Hat Enterprise Linux 5.4 x86_64 I came across an issue with the system's logrotate configuration.

The issue only became noticeable when I configured the host system to redirect all email destined for the root user to my own email account. I started to receive the following messages hourly:

/etc/cron.hourly/jive-logrotate:

error: /usr/local/jive/etc/conf/logrotate.conf:54 duplicate log entry for /usr/local/jive/var/logs/joosd.out

This error is thrown by the logrotate process if a log file is defined more than once in it's configuration. The problem appears to be caused by the following two definitions in the file: /usr/local/jive/etc/conf/logrotate.conf

/usr/local/jive/var/logs/*.out {
daily
rotate 10
delaycompress
notifempty
size 1024M
copytruncate
}

/usr/local/jive/var/logs/joosd* {
daily
rotate 10
delaycompress
notifempty
size 1024M
copytruncate
}


So, the problem is caused by the two definitions that both match the file that logrotate is complaining about: /usr/local/jive/var/logs/joosd.out

In order to fix the issue, I opened the file /usr/local/jive/etc/conf/logrotate.conf and simply changed the second definition mentioned above to the following:

/usr/local/jive/var/logs/joosd.log {
daily
rotate 10
delaycompress
notifempty
size 1024M
copytruncate
}


After the next run of logrotate, I no longer recieved complains about the log file joosd.out, however, I now received a similar warning for the file jdcd.out instead! Reading the error messages, the offending logrotate definitions were now:

/usr/local/jive/var/logs/*.out {
daily
rotate 10
delaycompress
notifempty
size 1024M
copytruncate
}

/usr/local/jive/var/logs/jdcd* {
daily
rotate 10
delaycompress
notifempty
size 1024M
copytruncate
}


While investigating in the Jive log directory (/usr/local/jive/var/logs) which log file(s) the second definition matched, I discovered there are no other files that would match this definition, apart from jdcd.out. As this file is picked up by the first definition above (/usr/local/jive/var/logs/*.out), this would suggest that this particular logrotate definition is completely redundant.

I commented out the entire second definition (/usr/local/jive/var/logs/jdcd*) and manually ran the logrotate process again. Sure enough, no errors were output by the task and it completed successfully.

While working through this issue, I noticed that there's a bunch of other log files that are not being rotated:


  • dbanalyze.log

  • dbbackup.log

  • dbinit.log

  • dbmaint.log

  • sbs.log

  • sbs-container.log

  • sbs-docverse.log

  • sbs-latency.log

  • sbs-pageview.log

  • sbs-profiling.log

  • sbs-session.log



They don't appear to have much data in them to start with, but I wonder if they have the capacity to grow quite large during the normal use of the system? To try and get some clarification on these issues, I've created a post on the Jive community forums:

http://www.jivesoftware.com/jivespace/message/317110

Currently, I've had no replies (apart from myself, once I had confirmed that the issue is also present on the i386 build of the software), but once I do get a response, I'll update this post.

Update: One of the guys at Jive responded to my post saying that the latest release of the software (4.0.2) no longer has this issue.