After the upgrade to CentOS 5.9, all my CentOS 5 installations report only "Unmatched Entries" in the "yum" section of their daily logwatch mails. It seems the filter script /usr/share/logwatch/scripts/services/yum got broken: --------8<--------8<--------8<--------8<--------8<--------8<--------8< [root at dns01 ~]# /usr/sbin/logwatch --print --service yum --debug 5 [...] Processing Service: yum ( cat /var/cache/logwatch/logwatch.kKzXpf19/yum | /usr/bin/perl /usr/share/logwatch/scripts/services/yum) 2>&1 ################### Logwatch 7.3 (03/24/06) #################### Processing Initiated: Fri Jan 18 09:21:20 2013 Date Range Processed: yesterday ( 2013-Jan-17 ) Period is day. Detail Level of Output: 0 Type of Output: unformatted Logfiles for Host: dns01.pxnet.com ################################################################## --------------------- yum Begin ------------------------ DEBUG: Inside YUM Filter DEBUG(1): Updated: glibc-common.i386 2.5-107 DEBUG(2): Updated: kernel-headers.i386 2.6.18-348.el5 DEBUG(3): Updated: crontabs.noarch 1.10-11.el5 [...] DEBUG(89): Updated: yum-updatesd.noarch 1:0.9-5.el5 **Unmatched Entries** 2.5-107 2.6.18-348.el5 1.10-11.el5 [...] 1:0.9-5.el5 ---------------------- yum End ------------------------- ###################### Logwatch End ######################### [root at dns01 ~]#>8-------->8-------->8-------->8-------->8-------->8-------->8--------Looking at the script I find the line 22 $ThisLine =~ s/^[^ ]* [^ ]* //; which looks like its intention was to strip the timestamp from the logfile entry, but the DEBUG output shows it has already been stripped at this point. And a minor nit: who came up with the silly idea of enforcing mode 600 for /var/log/yum.log in /etc/logrotate.d/yum? I don't think it increases security if the intern who checks the logs has to work with full root privileges all the time. -- Tilman Schmidt Phoenix Software GmbH Bonn, Germany
On 18.01.2013 09:49, /me wrote:> Looking at the script I find the line > > 22 $ThisLine =~ s/^[^ ]* [^ ]* //; > > which looks like its intention was to strip the timestamp from > the logfile entry, but the DEBUG output shows it has already > been stripped at this point.Correction: Whatever that line tries to strip, it isn't a timestamp. Btw, the format of /var/log/yum.log differs between CentOS 5 and 6: - CentOS 5: Jan 10 11:33:49 Updated: bacula-client.i386 5.2.12-6.el5 - CentOS 6: Jan 11 03:39:39 Updated: bacula-client-5.2.12-6.el6.x86_64 On CentOS 6, the script line above would do no harm because after stripping the timestamp there is only one space character left in the line, so the pattern doesn't match. -- Tilman Schmidt Phoenix Software GmbH Bonn, Germany