Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1


Remember Me


0 votes
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
check_logfiles searches for patterns in multiple logfiles.
== check_logfiles Nagios Plugin README

This plugin looks for patterns in files. It is capable of detecting
logfile rotation. If you tell it how the rotated archives look like, it
will also examine these files. Traditional logfile plugins were not aware
of the gap which could occur, so under some circumstances they ignored
what had happened between their checks. In a production environment
this is not tolerable, that's why check_logfiles came into being.

Send mail to or use the sourceforge forum
for assistance. Please include the OS type and version that you are using.
Also, run the plugin with the '-d' option and provide the resulting
version information. Of course, there may be additional diagnostic information
required as well. Use good judgment.

== Command line parameters

This is the logfile which will be scanned.

This is the regular expression which will raise a critical error if found.

This is the regular expression which will raise a critical error if found.
Usage is optional.

This is a unique identifier for this logfile/pattern combination.
You _must_ use it if you plan to call check_logfiles with more than one
of these combinations.
Usage is optional but strongly recommended.

If you do not want all the matching lines being written to a protocol file,
set this option.
Usage is optional.

If the server this script is running on is a syslogserver with messages from
several hosts in the logfile, you can limit the scan to lines originationg
from the local host.
Usage is optional.

Instead of describing on the command line what you search and where you
search, you can describe much more complex configurations in a file.

With this option you can turn on debugging. A file /tmp/check_logfiles.trace
will be created and check_logfile's inner working will be logged into it.
An alternative way to turn on debugging is to create the tracefile yourself.
This is the preferred method to debug on the fly if you don't want to
change your nagios configuration and add the "-d" to your command_line.

== Examples:

# This is a simple example where you look for messages indicating
# an overheated cpu in a hp-ux box
/opt/nagios/libexec/check_logfiles --tag=toohot

--logfile=/var/adm/syslog/syslog.log --rotation=HPUX
--criticalpattern=OVERTEMP --noprotocol

# In this example check_logfiles is used as a standalone program.
# It reads it's rules from this config file.
# Scan /var/adm/messages for SAN-related errors and send an alert
# via the send_nsca command.
$scriptpath = '/usr/bin/nagios/libexec:/usr/local/nagios/contrib';

NAGIOS_HOSTNAME => "oaschgeign.muc",
CL_NSCA_HOST_ADDRESS => "lpmon1.muc",
CL_NSCA_PORT => 5778

$postscript = 'send_nsca';
$postscriptparams = '-H $CL_NSCA_HOST_ADDRESS$ -p $CL_NSCA_PORT$



@logs = (

tag => 'san',
logfile => '/var/adm/messages',
criticalpatterns => [
'Link Down Event received',
'fctl:.*disappeared from fabric',


# This config file implements checking if a syslog daemon really
# works. In the startup phase a message is sent to syslog.
# After a delay of five seconds this message will be searched for.
# If it cannot be found, this means syslogd is not running properly
# or not running at all. An alert will then be generated.
$scriptpath = '/usr/bin';

$prescript = 'logger';
$prescriptparams = '-t nagios';
$prescriptstdin = 'braver syslog ($CL_DATE_YYYY$-$CL_DATE_MM$-$CL_DATE_DD$ $CL_DATE_HH$:$CL_DATE_MI$:$CL_DATE_SS$)';
$prescriptdelay = 5;

@logs = (

tag => 'syslogworks',
logfile => '/var/log/messages',
rotation => 'SUSE',
criticalpatterns => ['!nagios:\s+braver\s+syslog'],
options => 'noprotocol',


# This config file implements a simple method to monitor the
# hardware health of a solaris machine.
# From the prtdiag(1M) manpage:
# -l Log output. If failures or errors exist in the system,
# output this information to syslogd(1M) only.
# This means, if you run prtdiag and you find something
# prtdiag-related in the messages file, then there must be
# an error somewhere in the system.
$scriptpath = '/usr/platform/sun4u/sbin';
$prescript = 'prtdiag';
$prescriptparams = '-l';
@logs = (

tag => 'prtdiag',
logfile => '/var/adm/messages',
rotation => 'SOLARIS',
criticalpatterns => 'prtdiag:',