Changes since leaving version 1.* (by April King): Version 2.00: * which_os subroutine has been removed, and is now a multi-dimensional associative array. This not only makes it quite faster, but is also a lot easier to work with (and extend). (%commandlist hash) * Removed $safedir/external hosts restrictions into the actual script, where it should be, so now you only need to move one file around to install on multiple machines, instead of multiple files. * Functions are now call-by-name rather than called from a long CPU intensive pattern matching scheme. This makes netsaint_statd *extremely* easy to extend. * Functions now handle client communication, instead of having to pass parameters back and forth and then calling tcpprint. * Quite a bit lighter, as far as CPU and memory costs go. It is also about a third shorter, and much easier to deal with. * Fully backwards compatible with the 4 original netsaint_statd client programs. Version 2.01: * Added check_all_disks.pl client program. This program is something that was definitely needed! check_disk.pl was limited to checking only one drive on a given machine. check_all_disks.pl checks *all* of them (you can specify a comma delimited list of mount points to ignore). This will generally be more useful than check_disk.pl, but I will still keep that around for those who just want to check a single partition. * Added alldisks routine to netsaint_statd (for the check_all_disks.pl client program). * Fixed incorrect usage information given in check_procs.pl. * Fixed incorrect usage information given in check_users.pl. * Added README and (this) ChangeLog Version 2.02: * Added support for the broken uname of the NEXTSTEP - you must go into the netsaint_statd and uncomment the line to say you have a NEXTSTEP, though. * Added support for BSDi 4.x (and possible 3.x) systems. * Lowered Perl requirements to 5.003. Let me know if it runs on earlier versions of Perl 5. Version 2.03: * Added support for OpenBSD. * Added support for AIX. (Thanks Lonny Selinger and Chris Rothecker for testing help!) * Minor cosmetic changes that don't affect functionality. * Removed individual ChangeLogs in functions (other than netsaint_statd). * Updated individual programs so that they don't require 5.004 (only 5.003 now). Version 2.10: * Fixed a minor bug with the filesystem checking, so that a filesystem that has 0 available space would cause the program to fail reporting (thanks Fernando Schapachnik) * Added support for UnixWare2. (thanks Frank Rueger) * Allowed for wildcard matches on check_all_disks (see README) because it was demanded so much. Now go away! :pokes: ^_^ (thanks Gerald Combs) * Added a check_named_proc.pl client program. This program will allow you to check to see if a specific program is running (and how many instances of it are running) Be sure to read the README file to found out how it works. Version 2.11: * Fixed shebang on check_users.pl to point to /usr/bin/perl rather than /opt/apps/gnu/bin/perl (thanks Jim Bootz) * Fixed HP-UX process listing. (thanks Jason Kerr) * Added support for NetBSD (thanks Matt) * Removed 'ChangeLog'-style information from netsaint_statd * Added BSD License to netsaint_statd Version 2.12: * Fixed problem where a dash in a mount point can cause check_disk.pl to function incorrectly. (thanks Henning Halfpap) * Fixed problem for NetBSD and AIX that caused check_named_proc.pl to fail. * Corrected minor new line touchups * Added dispatch table to netsaint_statd to improve security. (thanks Paul Farrall) * Cleaned up netsaint_statd, and now use strict (thanks Paul Farrall) * Add support for MVFS filesystem (ClearCase uses this) in check_disk.pl Version 2.13: * Changed every module to 'use strict', and fixed some global definition problems in check_load.pl and check_all_disks.pl. This should help with integrating netsaint_statd with ePN. (thanks Stanely Hopcroft) Version 2.14: * Modified the netsaint_statd daemon to report when disks are missing. As such, check_disk.pl will throw a CRITICAL level error when a disk is missing. * Fixed netsaint_statd so that it will work with 64-bit IRIX systems. They report their uname as IRIX64 instead of just IRIX. (thanks Matt Garrett) * Since df -k seems to wrap lines on daemons, "df -k" was changed to "df -P" for Linux systems. (thanks Chrystian Maier) * Added SCO UNIX support (thanks Jerome Boismartel) * Changed check_procs.pl to have [port] as its final argument. This is to make it consistant with the other plugins. (thanks Tony Mancill) Version 2.15: * Fix segfaults on certain versions of Perl. Version 3.00: * This version is a complete rewrite. It contains many new checks, and a much better command line interface. * It is written in Python. If you only have perl, then feel free to use version 2.15, which should work fine. * It also runs from inetd, although it still runs as a daemon just fine. * Please read the very detailed and documented man pages for nagios_stat and nagios_statd! Version 3.01: * Fixed a bug in the disk check where if you have a single remaining disk/mount, and you specify a disk that doesn't exist, it wouldn't critically fail with a warning that the mount point or disk is missing. [bug, non-critical] * Clarified the exit status on missing disks and mount points. [modification] * Expanded the man page EXAMPLES a bit. [documentation] * Changed $MANWIDTH to 120 for the online text copies of the man pages. [modification] * Fixed a bug in the version regular expression check where it would truncate after the ".". This may cause problems with 3.00 clients trying to check the versions of 3.01+ servers. [bug, non-critical] Version 3.02: * You can now specify -n (or --processname) without using -s (or --state). * Added the ability to reverse how the process check works. Instead of checking to see if more than X processes are running, you can check to see if less than X processes are running by using the -l option. Documentation has been updated to reflect this. [feature] Version 3.03: * Plugin now exits with error code 3 when: 1) it receives too much data; 2) it is unable to open a socket to the server; and 3) invalid command line options are supplied to the plugin. It used to exit with error code -1, in violation of nagios specs [bug, non-critical] * Plugin now exits with error code 1 (warning) when it receives a generic error message from the server. [bug, non-critical] * Server daemon now chdirs to / to be nice. [modification] * Server daemon redirects stdin/stdout/stderr to /dev/null now. [modification] * Server tries to close all filehandles before it starts listening - hopefully this'll actually detach the server from its controlling terminal. [modification] * Client was not properly checking disk when using the -d option [bug, update recommended] Version 3.04: * Added check to point out if you were attempting to run on Python 1.x (and then exiting). [modification] * Changed from a limited 1MB buffer maximum to a 32KB receive buffer with an unlimited length. This should fix bugs on some systems with a broken recv(2). [bug,modification,feature] (thanks Jay Lovell) Version 3.05: * Fixed a bug where load checks would exit incorrectly. [bug, update recommended] Version 3.06: * Fixed a bug where Solaris zombies would return no name (Solaris zombies, in particular). [bug, non-critical] * Fixed a bug where devices containing an '@' sign would fail. [bug, non-critical] Version 3.07: * Added support for Cygwin on NT 5.1 (XP). [feature] Version 3.08: * Fixed a bug where devices containing a '$' sign would fail. [bug, non-critical] * Updated documentation on nagios-statd -a option. [documentation] * Updated documentation on nagios-statd -i option. [documentation] * Fixed a bug where failed reverse lookups that could allow non-hosts to connect to nagios-statd. [bug, update recommended] * nagios-statd will now deny everybody if it can't make lookups on host specified with -a. [modification] Version 3.09: * Fixed a bug on FreeBSD 5.0 in swap usage checks (FreeBSD 5.0 changed output of swapinfo command) [bug, non-critical] * Changed the process list on AIX from "ps x" to "ps ax" so it lists all processes for all users. [bug, non-critical] * Added a check to guarantee the port is available, and print an error if it isn't. [feature] Version 3.10: * Fixed a bug in the swap usage check for some locales which use a "," for the decimal point instead of a ".". [bug, non-critical] * Fixed the Redhat specific bug that erroneously complains about nagios-statd's handling of SIGCHLD/SIG_IGN. [bug, annoying] * Fixed AIX bug that results from a regular expression mismatch of /proc. [bug, non-critical] Version 3.11: * Added support for MacOS X (Darwin) [feature] * Added -v/--verbose option which allows you to get full output for the disk check (more later?) [feature] * Added -x/--debug option which dumps the data that nagios-stat gets without processing. [feature] Version 3.12: * Forces alternate forking model for Linux [bug from 3.10, annoying] * Fixes load check on MacOS X (10.4), where it does not use commas to separate the load values. [bug, non-critical] - thanks Marc Defour * Uses /usr/bin/free instead of /proc/meminfo for swap usage on Linux (which Debian was already doing). [bug, non-critical] * Enabled output of nagios performance data with -P option in nagios-stat. [feature]