SYNOPSIS

       fetchlog -f first:last:len:conv logfile bookmarkfile [ pattern ..  ]

       fetchlog -F first:last:len:conv logfile bookmarkfile [ pattern ..  ]

       fetchlog [-h|-V]



DESCRIPTION

       The fetchlog utility displays the last new messages of a logfile. It is
       similar like tail(1) but offers some  extra  functionality  for  output
       formatting.  To show only the new messages appeared since the last call
       fetchlog uses a bookmark to remember which messages have been  fetched.

       fetchlog  scans backwards logfile and collects all messages, optionally
       only those  matching  any  of  the  given  regex-style  patterns.  Then
       fetchlog  converts  found  message lines for output.  It stops scanning
       when one of these conditions become true: The bookmark  from  bookmark-
       file  is  reached,  or len characters are ready for output, or an error
       occurs.  fetchlog knows about rotated  and  uncompressed  logfiles  and
       continues  scanning  in  rotated  logfiles by appending '.0', '.1' upto
       '.9' to logfile when scanning in rotated logfiles. Scanning stops with-
       out error when a rotated logfile does not exist.



OPTIONS

       -f     do not update bookmark in bookmarkfile.

       -F     update  bookmark in bookmarkfile : set bookmark to the very last
              line fetched from logfile

       first  The first column of text fetchlog will read from logfile.  Lines
              shorter than first will be show up as a single newline. The col-
              umn count starts with 1.

       last   The maximum last column fetchlog will read from logfile.   Lines
              longer than last will be cut off and a `~` will be set at column
              last for output. The column count starts with 1.

       len    The maximum number of characters fetchlog will output.  If  more
              than  len characters are available after cutting and conversion,
              the first line put out will start with '...'.

       conv   Conversion: one ore more of characters 'bpsno'.

              b [brackets] convert '<' and '>' to '(' and ')'  for  safe  HTML
              output.

              p [percent] convert '%'  to 'p' for safe printf(1) output.

              s  [shell]  convert  '$',  '^', and the three quotes (backquote,
              doublequote, singlequote) to '_' and '\' to '/'. This conversion
              Absolute  path  to the file holding the bookmark. The user needs
              read access to the file when using option -f  and  write  access
              plus  permission to create files in the directory of bookarkfile
              when using option -F (update bookmark).

              If bookmarkfile does not exist fetchlog assumes an infinite  old
              bookmark.

       pattern
              A  extended  regular  expression  pattern,  see re_format(7) for
              details. If one or more pattern are defined, fetchlog will  only
              pick lines where any of these pattern match. Pattern matching is
              done after trimming the lines with respect to first and last and
              before  any  conversions  takes  place.  In other words: pattern
              matching operates on data that fetchlog shows when no conversion
              is set.


       -h     print help message

       -V     print version



MULTIPLE FETCHING

       Fetching the same logfile with different bookmarks works without
       problem. Simultanously fetching with  option  -F  (update  mode)
       using  the  same  bookmark  file  works  too,  but unpredictable
       results will occur. For safety reasons bookmarkfile  will  never
       be opened for writing directly, instead a temporary file will be
       used and renamed to bookmarkfile when writing has finished.



PERFORMANCE

       Before opening logfiles for scanning fetchlog first  checks  the
       modification  time  of  logfile  and compares this time with the
       modification time stored in bookmarkfile.  If   both  timestamps
       are  the  same then fetchlog exits with 0 (no messages).  Other-
       wise the logfile(s) get mapped to memory step by  step  and  are
       scanned  backwards  line by line until one of the end conditions
       become true.  fetchlog uses the logfiles  inode  to  distinguish
       different logs.



NAGIOS

       fetchlog  may  be  used as a local plugin for the Nagios network
       monitoring system to monitor a local  logfile.  It  follows  the
       calling convention for Nagios plugins if at least conversions on
       are set and len is 'short' enough for Nagios. It is  recommended
       to use conversion s also because shell metacharacters in fetched
       messages may confuse Nagios' notification system.

       When using fetchlog as a local plugin  for  Nagios  then  return
       UNKNOWN
              fetchlog  was  called  with wrong parameters. A multiline
              usage message is send to stdout.

       Nagios can monitor remote logfiles together  with  NET-SNMP  and
       fetchlog  using  the  check-snmp plugin.  Please read the README
       files coming with fetchlog how to setup this.



SNMP

       The motivation for fetchlog was to create a helper tool for NET-
       SNMP's snmpd to enable monitoring of remote kernel syslogs using
       SNMP. If configured properly, snmpd replies to a  specific  SNMP
       request  with  the  output  of  an external helper program. With
       fetchlog using update mode -F and conversions on one can peek at
       a  remote  syslog  file and gets either 'OK: no messages' or one
       line with the new syslog messages appeared since the  last  SNMP
       request.

       Because  of  some limitiations of SNMP itself and the monitoring
       applications using SNMP, the length of the SNMP reply  must  not
       exceed a specific size. To ease the integration of SNMP in moni-
       toring software it is useful to have the SNMP reply only consist
       of a single line of text rather than multiple lines.



COMPRESSING OUTPUT

       The  syslog  messages  fetched  can  be compressed by increasing
       first to skip the timestamp and host entry from syslog.   Lower-
       ing last gives even more compression for long syslog lines. As a
       result one gets a very short message that gives an idea of  what
       is going wrong.



DIAGNOSTICS

       fetchlog  sends  all  output  and error messages to stdout. Exit
       codes:

       0      No new messages in logfile were found. If conversion o is
              set,  the  single  line 'OK: no messages' will be send to
              stdout.

       1      An internal error in fetchlog occured. A one  line  error
              message  will be send to stdout. The error message starts
              with 'ERROR: fetchlog:' and  shows  detailed  information
              about what went wrong. Length limitation by parameter len
              is applied, if an error message is too long the last part
              will be cut off and a '~' is appended.

       2      New messages in logfile were found. The new messages will
              be send to stdout. If conversion n is set, a single  line
              of  text  is  send,  else zero or more lines of converted

       tail(1),  cat(1),  head(1),  sed(1),  re_format(7),  syslogd(8),
       newsyslog(8)

       NET-SNMP  - Various tools relating to the Simple Network Manage-
       ment Protocol SNMP (NET-SNMP: formerly known as UCD-SNMP)
       http://www.net-snmp.org

       Nagios - A Network monitoring system
       http://www.nagios.org

       Nagios Plugins - Plugins for Nagios
       http://nagiosplug.sourceforge.net

       fetchlog homepage - download, support and bugtracking
       http://fetchlog.sourceforge.net



BUGS

       Bookmarkfiles are not portable  across  plattforms  or  fetchlog
       versions.

       Logfiles are expected not to shrink.

       fetchlog does not work with compressed logfiles.

       Fetching  when  logfile  rotation takes place may result in some
       messages to appear twice.

       If an regex error occurs during pattern matching this  error  is
       silently ignored and will be handled as non-match.



LEGAL

       Nagios is a registered trademark of Ethan Galstad.




Charite                        26 Mar 2004 (1.0)                   FETCHLOG(1)

Man(1) output converted with man2html