===== Download check_multi ===== Fetch a tarball: [[http://my-plugin.de/check_multi/check_multi-stable-0.26.tar.gz|Current stable version check_multi-stable-0.26.tar.gz]] or\\ [[http://my-plugin.de/check_multi/check_multi-latest-6001c20.tar.gz|Latest development version check_multi-latest-6001c20.tar.gz]] For developers and testers - clone your own git repository with git clone git://github.com/flackem/check_multi ===== Browse check_multi ===== View the sources: - Browse [[http://github.com/flackem/check_multi|check_multi git repository]] - Browse [[http://github.com/flackem/check_multi/tree/master|Stable version 0.26]] - Browse [[http://github.com/flackem/check_multi/tree/next|Latest development version 6001c20]] ===== Changelog ===== * info [ tag::pre_nok ] - info text for non OK states * info [ tag::pre_ ] adds info texts depending on status * info [ tag::{pre,post} ] provides info texts for child checks **0.26** Fri Nov 18 20:27:28 CET 2011 * fixed macro handling for livestatus command * added perfdata for statusdat command * fixed perfdata column for livestatus command * fixed proper encoding of XML state elements * numerical tags are not allowed * fixed macro handling: complain about non-existing macros and remove * inventory parameter: reduced XML for feed_passive * provide error message if no HOSTNAME is specified for passive service definitions * fixed hostname treatment for PNP urls * spaces in tags and macros are not allowed any more * contrib: notify_html_service.sh uses mime multipart elements * fixed trimming blanks at line end with continuation lines * cumulate perfdata handling fixed * child timeout increased to 11s - no collision with 10s default * fixed handling of non existing child state rules * child checks state rules reorganized * statusdat checks now only consider hard states * print matching state rule in long plugin output * feed_passive with perfdata [ plugin ] at the end * better perfdata error output for invalid UOM **0.25** 26.02.2011 * included nail to contrib/notify_service * report options are inherited from parent check_multi * added floating point support for cumulate * instant execution of a child check: -i TAG * 'attribute [ key ] = value' now sets internal variables * new option add_tag_to_list_entries provides lists without prefix * fixed host states for statusdat: down->critical,unreachable->unknown * repeat writing of feed_passive config files after time period * tmp_dir with tolerant permissions * fixed 0 value environment variables * new tests (random tags/macros), test restructured * fixed problem with tags parsing * variables set on command line are still exported as MULTI_var * MULTI_ replaced by MULTI_set_ to avoid collisions * new macro ERROR_ contains STDERR of child check * allowed characters for tags and macros fixed * fixed missing closing for status.cgi, thx to Sebastian Halles * statusdat now handles makros, thx to Jan Mara * fixed empty illegal_chars var handling, thx to Tony Yarusso * tags now can contain any characters: command [ this is a tag ] = ... * added send_gearman client report mode * OMD - check for environment variables OMD_ROOT and OMD_SITE **0.24** 09.10.2010 * STDIN (needed for feed_passive) now activated with '-f -' * nested macros allowed: 'normal' macros within objects.cache macros * change in child timeout handling: full time range is used for child checks now * macro substitution is case insensitive now (thx to Morbid Angel) * fixed empty plugin output in checkresults files (thx to Joerg Krueger) * added livestatus host expansion: livestatus [ tag ] = host.* * fix for checking of warning and critical perfdata fields, thx to makana * objects.cache macros added: $type:field:key:value$ is substituted by objects.cache value * restructured error messaging: messages are assigned to child checks whereever applicable * now accepting perfdata with trailing semicolons (like in PNP) * report mode 32768 now suppresses all OK states in ASCII mode, thx to Joel Brooks * added old XML structure input mode for upgrade issues, thx to Joerg Krueger * passive feeded service definitions can be created automatically now * added check for invalid name characters (allowed are A-Za-z0-9_-) **0.23** 20.06.2010 * fixed statusdat for hosts and added numerous test cases * version control system migrated to GIT (github) **0.22** 19.06.2010 * fix for correct treatment of empty lines in encoded configurations, thx to Frank Plab * state evaluation for child checks now works as global state evaluation\\ - with complete expression, e.g. '$child$=~/expr/' * statusdat [ test ] = /host.*/ - now supports also including host checks * splitted checkresults report sub to prepare host checkresult files **0.21** 03.06.2010 * second version of livestatus [ tag ] = Filter: field ~ pattern (needs Monitoring::Livestatus) * added first version of livestatus [ tag ] = host:service (needs Monitoring::Livestatus) * fixes for eval[ tag::plugin ]. thx again, Henry * child checks are assigned to own process group (thx to Henry Rolofs) * timeout routine now also kills child checks with positive numbers (thanks to Henry Rolofs) * added new report mode which hides OK states / only shows problem states (thx to Timo Kempkens) * added ok/warning/critical/unknown state rules for particular child checks: check_multi goes check_generic * added fatal exit for two conditions: fork error and tmpfile error * added encode option for providing complete config files via command line, thx to Michael Kraus and Gerhard Lausser * added plugin_path variable, it allows to separate different plugins from libexecdir * restructured pnp variables, pnp_cgi is replaced by pnp_url and pnp_version * pnp popup errors fixed, thanks to Joerg Linge, Sebastian Waitz and Rene Rosenberger * added new variable child_interval to provide time interval between child checks (default: 0.0 seconds) * fixed status output for '-r 64': OK is only displayed, if plugin output does not contain OK itself, thanks to Jens Person * added extended_perfdata, with particular state counters and overall states, thanks to Gerd von Egidy and Joerg Linge * added support for icinga, 'configure --with-nagios_name=icinga' * command file can now be feeded via STDIN, thanks to Joerg Krueger for this idea * added 'snmp [ TAG ] = HOST:OID' (snmpget) * added variable mouseover_type to cover PNP 0.6 and 0.4 differences, default is PNP 0.6 * first version of new 'cumulate' function, which aggregates data a la 'top' * fixed handling of non-existing signals, and non-existing RCs **0.20** 16.10.2009 * invisible checks (eval) will not be counted any more, since this confused some people :) * added output [ TAG ] statement, it provides customizeable output everywhere, no more X plugins checked, Y plugins OK... * rewritten parsing code - now trailing backslashes are not necessary any more * replaced pnp_path by pnp_cgi with full path to PNP graph.php (PNP 0.6 coming soon) * '-' as tag-char was broken, thx Hendrik * added showcase / sample-config feed_passive to demonstrate feeding features * added -s suppress_service=, to exclude services from report_send_nsca and report_checkresults_file * added STDIN mode: check_multi now can report XML output feeded via STDIN * hopefully userfriendly report mode specification: -r 1+4+8 is the same like -r 13 * new report mode 'report_checkresults_file' added for direct injection of child checks as passive service check results * added caching for 'service [ tag ]' * added send_nsca report option 4096, it sends child results to NSCA master * added COUNT(ALL) to provide cluster rules like this one\\ state [ CRITICAL ] = COUNT(CRITICAL) < COUNT(ALL)-1 * added 'service [ tag ] = host:service' to read service states from status.dat * again some fixes for configure * option action_mouseover now allows PNP popups in extinfo, thx to Amit Mor * added example section in documentation - find these examples in sample-config * at last: first configure version (including lots of cleanup and directory moving) * added PERFDATA_ environment var: perfdata for child checks, thx Bjoern Becker * underscore is now allowed tag character * added pnp_path (as replacement for action_url) and image_path, thx Amit Mor * fixed html output for status_in_extinfo mode:
instead of \n, thx Sascha * added query_examples.html with sample queries * status_query.cgi now with multiple combined queries * nagios_status.cgi renamed to status_query.cgi * added nagios_status.cgi to contrib directory, queries for all and everything ;) * added option to provide multi output also in status cgi view, thx Sascha * added LWP for reading config file remotely (http://hostname/path/to/configfile) * added FindBin and changed default libexec path to $FindBin::Bin, thx. Wolfgang * basename(plugin) - removed /path/from/ for proper perfdata, thx. Gerhard **0.19** 11.02.2009 * illegal_chars removal also for input (command lines) * added fork for execution of child checks (allows better timeout handling) * fixed main loop error handling (prevent repetition) * better timeout handling: kill process group leader instead of die avoids hang of program * removed newline cleanup for output * replaced old contrib notification template with new notify_service_html * fixed plugin counting (now reflects parent plugin) * fixed eeval treatment of invalid RCs (like command) * first preparation for data persistence * check_multi environment vars begin now all with MULTI_ * data structure update: all settings now in $opt{set} * data structure update: parent data now in $cmds{0} * fixed initial RC (thx Henry) * minor fix in HTML verbose output * removed CR from wintel output and stderr (thx Sascha) * add report option DETAIL_SERVICE_DEFINITION for multi_feed_passive * set xml_elements= allows customization of XML output * removed '# comments within lines * orphaned parameters check for command line * proper error handling for creation of tmp directory * fixed treatment of macros (-s-option): upper case -> case sensitive * at last: EPN capability (without 'use strict') * first steps to flexible output definition * added tmp_dir for temporary files * added URL to usage for documentation * commands extensible during runtime -> call parse_lines within eeval * fixed missing escaping for '#' * improved verbose mode also for HTML output **0.18** 07.08.2008 * improved verbose mode for ASCII output * removed suppress_perfdata for check_multi perfdata, PNP needs this * ok, convinced ;-) removed forced drop_privileges, warning message is sufficient * moved drop_privileges before parameter evaluation: needs compile time UID now * drop_privileges if ran as root, default: run as user nagios * old exec with tempfiles is standard until new exec is validated (exec_open3:0) * redesign of exec_command: open3 from IPC module does the trick now ;-) * more indentation for HTML view - indent_label var created * fixed handling of splitted multiline performance data (thx to Lorenz Bucher) * added '#' comments functionality within lines (not complete comment lines) * macro handling: non found $MACRO$ will be replaced by '' * fixed substitute_macros * minor fixes for notes_url links: alternation of link and icon, column spanning * added tag_notes_link to implement notes_url as link behind tag in extinfo * added notes_url for child checks and MULTI_TAG var * fixed perfdata parser (thx Gerhard) * added signal handler to catch terminating signals (cleanup,report) * macro_substitution now also in tags (thx Willi) * added error message if no plugin defined at all * fixed plugin state for command file not found to UNKNOWN (thx Rudolf) **0.17** 16.04.2008 * added recursive call detection * collapse option to hide OK output in HTML view * error messages in plugin output instead of long plugin output * indentation of recursive checks in ASCII mode * perl module version check for Getopt::Long * added control variable for use of HTML::Entities * restrict tag characters to A-Za-z0-9_: * add libexec path to PATH var during check_multi runtime * fixed regex in perfdata check routine (thx denschi) * fixed CSS tags for HTML output (thx TheCry) * print command runtime 0 if command is not executed due to timeout * last rc from eval will also be mentioned for state evaluation * added -x / execute option to provide commandline also for commands * added file_extension setting to specify config file extension * fixed perfdata label sanitizing (thx Jens) * added explicit perfdata plugin specification (thx to Joerg Linge) * fixed state substitution (now only for state statements) * fixed check_multi performance data labels * added ASCII output into HTML comments for notification scripts * splitted eval into eeval (echo eval) and eval **0.16** 19.01.2008 * multi label fix backported into stable 0.16 * minor cleanups * enhanced performance string error parsing * performance labels delimiters '::' -> '_' * minor fixes(eval error output, HTML::Entities use in eval...) * added $STATE_$ vars * fixed ::multi_label:: problems with ::tags * new option -s suppress_perfdata=,[][,...] * discarding incorrect perfdata (in order to save the other) * fixed HTML::entities (thx to Gerhard Lausser) * added set option: --set ENV_VAR=xyz * added continuation lines capability for config files * some minor debugging changes * added eval [ TAG ] = PERLEXPR * ePN support removed again (too many error conditions) * fixed HTML issues (table specific, thx to Wolfgang Barth) * ePN support * removed --state option (replaced by state evaluation) * replaced -r 64 (command list) and -r 1024 (state eval) by verbose option * added --verbose (level 0-3) option and DEBUG routine **0.15** 21.11.2007 * added 'ignore_missing_cmd_file' option for command overloading * added --set option to add multiple config values * added command overloading mechanism * removed brackets from HTML view * no MULTI label any more, standard is: no label * multiple config files supported: -f -f ... * corrected line (