[ Team LiB ] Previous Section Next Section

Recipe 9.36 Summarizing Your Logs with logwatch

9.36.1 Problem

You want to scan your system log files for reports of problems.

9.36.2 Solution

Use logwatch, from http://www.logwatch.org. For example:

# logwatch --range all --archives --detail High --print | less

to see all the useful data logwatch can display, or:

# logwatch --print | less

to see only yesterday's entries.

9.36.3 Discussion

logwatch is a handy utility to scan system log files and display unexpected entries. Red Hat includes it but SuSE does not. If you need it, download the binary RPM from http://www.logwatch.org,[13] and install it, as root:

[13] Actually, there are no binaries: logwatch is a collection of Perl scripts. Therefore, you don't need to worry about which RPM is right for your system's architecture.

# rpm -Uhv logwatch-*.noarch.rpm

The easiest way to see what logwatch does is to run it:

$ logwatch --range all --print | less
################### LogWatch 4.2.1 (10/27/02) ####################
        Processing Initiated: Sun Nov 10 20:53:49 2002
        Date Range Processed: all
        Detail Level of Output: 0
        Logfiles for Host: myhost  
###############################################################
 --------------------- Connections (secure-log) Begin ------------------------
Unauthorized sudo commands attempted (1):
smith:
        /usr/bin/tail -30 /var/log/maillog
---------------------- Connections (secure-log) End -------------------------

 --------------------- SSHD Begin ------------------------
SSHD Killed: 2 Time(s)
SSHD Started: 1 Time(s)
Users logging in through sshd:
        smith logged in from foo.example.com (128.91.0.3) using publickey: 1 Time(s)
Refused incoming connections:
        200.23.18.56: 1 Time(s)
---------------------- SSHD End -------------------------
...

Once installed, logwatch is often run daily by cron, emailing its results to root. This is not necessarily the most secure way to do things: if your system is compromised, then you cannot trust email or logwatch itself. Like tripwire (Chapter 1), logwatch is best run on a remote machine, or from a secure medium like CD-ROM or write-protected floppy disk.

logwatch processes most but not all common log files. For the rest, you can define your own logwatch filters to parse and summarize them. [Recipe 9.37]

If logwatch seems to do nothing when you run it, be aware of the —print option. By default, logwatch does not write its results on standard output: it sends them by email. Specify —print to see the results on screen. Also be aware that the default range is "yesterday," which might not be what you want.

9.36.4 See Also

See logwatch(8) for full usage information or run:

$ logwatch --help
    [ Team LiB ] Previous Section Next Section