Commit graph

25 commits

Author SHA1 Message Date
rodent
49ed93e5c6 File descriptor limit on Nagios's queue handler socket is too low. If you
run a system with ~100 hosts and 1100+ checks which run every 1-3 mins,
you will have a very terrible experience with this package. See discussion
at:

http://support.nagios.com/forum/viewtopic.php?f=7&t=33274&p=141473#p141473

This patch changes the limit from a whopping three (3) to 128, which is
more reasonable. Though, if others are continuing to have problems with
this package, we could increase it to 1024. Defuzz the rest of the patches.
2015-06-15 01:29:40 +00:00
rodent
928769f1e0 Fix build on SunOS. What a pain. 2015-04-12 23:33:06 +00:00
rodent
12ae448b60 Fixed broken patch. Defuzz. 2015-04-08 23:25:25 +00:00
rodent
5b8a789073 Update to nagios-4.0.8. Patches applied upstream were removed. Added two
patches. From: http://nagios.sourceforge.net/docs/nagioscore/4/en/whatsnew.html

 Changes and New Features

    Performance Improvements:

    The performance improvements in Nagios Core 4 come primarily from the following areas:
        Core Workers - Core workers are lightweight processes whose only job is to perform checks. Because they are smaller they spawn much more quickly than the the old process which forked the full Nagios Core. In addition, they communicate with the main Nagios Core process using in-memory techniques, eliminating the disk I/O latencies that could previously slow things down, especially in large installations.
        Configuration Verification - Configuration verification has been improved so that each configuration item is verified only once. Previously configuration verification was an O(n2) operation.
        Event Queue - The event queue now uses a data structure that has O(log n) insertion times versus the O(n) insertion time previously. This means that inserting events into the queue uses much less CPU than in Nagios Core 3.
        Macro Resolution - Macros are now sorted on startup so macro lookup can use a binary search. In addition, frequently accessed macros $USERx$, $ARGx$, and $HOSTADDRESS$ are given special case, early lookups.
    Object Definitions:

    The following changes have been made to object definitions:
        The host address attribute is now optional. The address attribute is set to the host name when it is absent. Most configurations set the host name attribute to the DNS host name making the address attribute redundant.
        Both hosts and services now support an hourly value attribute. The hourly value attribute is intended to represent the value of a host or service to an organization and is used by the new minimum value contact attribute.
        Services now support a parents attribute. A service parent performs a function similar to host parents and can be used in place of service dependencies in simple circumstances.
        The failure_prediction_enabled flag has been removed from both host and service object definitions.
        Contacts now support a minimum value attribute. The mininum value attribute is used with the host and service hourly value attributes to determine whether to notify a contact on host and service problems.
        The host obess_over_host and the service obsess_over_service attributes can now both use the shortened attribute obsess.
    Object Behavior:
        Contact Inheritance - According to the documentation, contacts should only be inherited from host to service if the service has no other contacts whatsoever (and the same goes for escalations), but the way the code previously worked was that it handled contact_groups and contacts directives separately, meaning services with only 'contacts' specified were still eligible for inheriting 'contact_groups' from the host. This has been updated to comply with the documentation.
        Timeperiods - There were several issues processing timeperiods when both exclusions and exceptions were involved. The issues have been corrected.
    Configuration:

    The following changes have been made to the main Nagios Core configuration, nagios.cfg:
        Because there are many ways to obtain object information, the object information is no longer stored if in the object cache if the configuration variable object_cache_file equals '/dev/null'. Setting the variable to '/dev/null' will reduce the disk I/O load.
        Because there are many ways to obtain status information, the status information is no longer stored if in the status data file if the configuration variable status_file equals '/dev/null'. Setting the variable to '/dev/null' will reduce the disk I/O load.
        There is a new configuration variable, log_current_states, which determines whether current states will be logged in the log files when they are rotated. In Nagios Core 3, this was always the behavior and it is the default in Nagios Core 4. Disabling the logging of current states on log rotation can save considerable disk space for large installations.
        There is a new configuration variable, check_workers, which specifies how many worker processes are created when Nagios Core starts. If not specified, the number of worker process is determine by the number of CPUs on the system.
        There is a new configuration variable, query_socket, which specifies the location of the query handler socket. The default location is /usr/local/nagios/var/rw/nagios.qh.
        The configuration variables, check_result_reaper_frequency and max_check_result_reaper_time, have been deprecated. Because of the new worker architecture, checks are no longer reaped, but they are fed back to core by the worker processes. As a result, these variables no longer make sense.
        All file and directory configuration variables in the main nagios.cfg can now use paths that are relative to the location of nagios.cfg.
        Although rarely used in the past, creating nagios objects in the main nagios.cfg configuration file was allowed. This is now prohibited.
    Macros:
        Additions - A new macro, $CHECKSOURCE$, has been added which contains information about what process performed a check.
        Changes - If use_large_installation_tweaks is set, the $HOSTGROUPMEMBERS$ and $SERVICEGROUPMEMBERS$ macros are no longer exported because they can consume the available space for environment variables.
        Macros are normally available as environment variables when check, event handler, notification, and other commands are run. This can be rather CPU intensive in large Nagios installations, so you can disable the export of environment variables completely with the enable_environment_macros option.
        Macro information can be found here.
    Query Handler:

    The query handler is a general purpose communication mechanism that allows external entities to communicate with Nagios Core in a well-defined manner. As of this writing, all communication with the query handler takes place through a Unix-domain socket whose location is defined by the query_socket configuration variable.

    There are currently 5 built-in query handlers.
        core - provides Nagios Core management and information
        wproc - provides worker process registration, management and information
        nerd - provides a subscription service to the Nagios Event Radio Dispatcher (NERD)
        help - provides help for the query handler
        echo - implements a basic query handler that simply echoes back the queries sent to it

    More information about the query handler interface, including an introduction to creating a custom query handler, can be found in the source-supplied documentation.
    Core Workers:

    Previously, all host and service checks were performed by the full Nagios Core process. This required forking the Nagios Core process for every check. The full Nagios Core process includes a lot of things that are not required to actually perform the check, including check scheduling, downtime handling, processing external commands, etc. As a result, forking the Nagios Core process was much slower than was necessary. When the actual check was run, the forked process again forked a shell to run the check and the shell forked to run the plugin.

    In addition, disk files were used as the inter-process communication (IPC) mechanism between the forked Nagios process doing the checking and the main Nagios process handling the check results.

    In Nagios Core 4, the process of performing host and service checks is now accomplished using a lightweight worker processes. Standard worker processes start up with the main Nagios Core process and additional, special-purpose workers, can be started at any time after Nagios Core starts. If the check command is "simple" (no shell escapes), the worker process can run the command directly, avoiding the 2 additional forks previously required.

    Also in Nagios Core 4, the worker processes report the check results to the main Nagios Core process using in-memory IPC mechanisms (the query handler interface), eliminating the disk I/O bottleneck that used to be an issue in large installations.

    When a worker process registers with the main Nagios Core process, it tells Nagios Core what checks it will handle. This feature allows external authors to create special-purpose workers which are optimized to perform certain checks. A sample special-purpose ping check worker is included with the Nagios Core source code in the worker/ping subdirectory.

    More information about workers, including an introduction to creating custom workers can be found in the source-supplied documentation.
    Nagios Event Radio Dispatcher (NERD):

    The Nagios Event Radio Dispatcher (NERD) is a query handler based service that streams Nagios Core events to the subscriber. Currently, there are three channels that can be subscribed to: hostchecks, servicechecks and opathchecks.
    libnagios:

    libnagios is a library of functions that can be used by developers of query handlers and worker processes. libnagios currently contains the following components.
        bitmap - bitmap library for calculating dependency graphs
        dkhash - dual-keyed hash api
        fanout - sparsely populated array used for downtime, comments, and worker jobs
        iobroker - I/O broker library for multiplexing between running tasks and the master nagios process.
        iocache - I/O caching libary for bulk-reading requests and parsing them
        kvvec - key/value library for parsing requests and building responses
        nsock - socket library for connecting to and communicating through the qh socket
        nspath - general purpose path library for converting between relative and absolute paths
        nsutils - small library with worker related utilities
        pqueue - pqueue library written by Volkan Yazici
        runcmd - for spawning and reaping commands
        skiplist - skiplist library used within Nagios Core
        squeue - for maintaining a queue of the running job's timeouts
        worker - for utils and stuff nifty to have if you're a worker
    Documentation:

    Documentation of Nagios Core internals is now provided as part of the source distribution. To create an HTML version of this documentation run 'make dox' from the root of the source distribution tree. The doxygen utilities must be installed to make this documentation.
    Tests:

    A much more complete test suite is now incuded with the Nagios Core source distribution.
    RPM Spec File:

    The RPM spec file has been completely overhauled to support more current standards.
    Deprecated Features:
        Extended Host and Service Information - The hostextinfo and serviceextinfo objects are now deprecated and should not be used. Support for them will be removed in a future version. The same information specified in the hostextinfo and serviceextinfo objects can be specified in the host and service object respectively.
        -x/--dont-verify-paths command line option (Don't check for circular object paths) - Because configuration checking is now so much faster, the option to skip checking for circular object paths has been deprecated.
        The following configuration variables have been deprecated: check_result_reaper_frequency, max_check_result_reaper_time, sleep_time, external_command_buffer_slots, command_check_interval
    Obsoleted Features:
        Failure Prediction - As noted above, the failure_prediction_enabled flag has been removed from both host and service object definitions. Failure predition was never fully implemented and would require breaking the paradigm that Nagios Core knows nothing about the performance data returned by plugins. Failure prediction is much more approprately handled by an add-on than by Nagios Core.
        -o/--dont-verify-objects command line option - This option, while accepted in Nagios Core 3, has neither been advertized nor has had any effect for quite some time. The option has been removed in Nagios Core 4.
        Embedded Perl - Embedded Perl has historically been the least tested and the most problem prone part of Nagios Core. A significant part of the issue is that there are so many versions of Perl available. The performance enhancements provided by the new worker process architecture make up for any performance loss due to the removal of embeddd Perl. In addition, the worker process architecture makes possible the implementation of a special purpose worker to persistently load and run Perl plugins. The following configuration variables that were related to embedded Perl have been obsoleted: use_embedded_perl_implicitly, enable_embedded_perl, p1_file.
    Miscellaneous:
        Object IDs - Primarily only of interest to developers, all of the first-class objects now have object IDs. First-class objects are timeperiod, command, contact, host, service, escalations, dependencies and all kinds of groups. Object IDs are not persistent and are recreated on each restart.
2015-04-03 17:06:08 +00:00
obache
b66f9375fa Apply patch for CVE-2014-1878, taken from icinga.
Bump PKGREVISION.
2014-04-15 10:16:47 +00:00
he
07d8572f7d Update nagios-base from 3.5.0nb2 to 3.5.1.
Upstream changes:
 * Added handler for SIGXFSZ signal (Eric Stanley)
 * Fixed bug #444: Nagios 3.5.0 problem with macro $ADMINEMAIL$ :
   @ is converted to %40 after 2 nagios reload (Duplicate of bug #407)
 * Fixed bug #407: Reloading nagios config causes spaces in
   notifications to become plus signs (Alexey Dvoryanchikov)
 * Fixed bug #445: Adding triggered downtime for child hosts causes
   a SIGSEGV on restart/reload (Eric Stanley)
 * Fixed bug #375: Freshness expiration never reached and bug #427:
   freshness threshold doesn't work if it is set long (Scott Wilkerson,
   Eric Stanley)
 * Fixed bug #432: Downtime scheduled as "Nagios Process" and not
   the Users name (Sam Lansing, Eric Stanley)
2014-04-02 10:37:21 +00:00
he
f91bd7e5dd Import a fix for CVE-2013-7108 and CVE-2013-7205, which is multiple
off-by-one errors causing information leakage and possibly DoS.

Restructure the patch files to follow the newer naming conventions.
Add the rc.d script to PLIST.

Bump PKGREVISION.
2014-04-02 10:22:37 +00:00
obache
379a74d141 Update nagios-base to 3.5.0.
based on PR pkg/48082.

3.5.0 - 03/15/2013
------------------
* Fixed bug #403: The "configuration" page of the webui doesn't use entity
  encoding when displaying the "command expansion" item (Eric Stanley, Phil
  Randal)
* Fixed bug #424: Nagios Core 3.4.4 seg fault (core dump) on restart after
  removing config for running service (Eric Stanley)
* Updated CGI utility functions to support UTF-8 characters (Eric Stanley)
* Fixed bug where selecting Command Expansion from Configuration CGI page would
  display commands instead (Eric Stanley)
* Fixed bug #369: status.cgi crashes with segfault when there are german ulauts
  (äöüß) in the hostname or the servicename (Eric Stanley)
* Fixed bug #418: Scheduled Downtime Notifications Resent On Nagios
  Restart/reload (Eric Stanley)
2013-08-05 11:22:29 +00:00
obache
53a0620f8b Update nagios-base to 3.4.4.
3.4.4 - 01/12/2013
------------------
* Reenabled check for newer versions of Nagios Core (Mike Guthrie)
* Fixed bug #408: service checks get duplicated on reload (Eric Stanley)
* Fixed bug #401: segmentation fault on Solaris when parsing unknown timeperiod
  directives. (Eric Stanley)
* Added NULL pointer checks to CGI code. (Eric Stanley)
* Fixed buffer overflow vulnerability in CGI code. Thanks to Neohapsis
    (http://archives.neohapsis.com/archives/fulldisclosure/2012-12/0108.html)
  for finding this. (Eric Stanley)
2013-08-05 10:43:55 +00:00
bouyer
b98ed86485 Add NetBSD icons to share/nagios/images/logos/, for the benefit of
web interface (especially the map), using an extra distfile in
MASTER_SITE_LOCAL
bump PKGREVISION
2013-06-17 17:35:28 +00:00
manu
d353b4ea89 Upgrade nagios to 3.4.3, from Benoit Godefert
Changelog since 3.3.1
3.4.3 - 11/30/2012
------------------
- Reverted squeue changes intended for Nagios 4
- Reapplied all patches from 3.4.2 release
- Applied fix for pagination and sorting on status.cgi #381 (Phil Randal)

3.4.2 - 11/09/2012
------------------
FIXES
* Fixed issue where deleting a downtime could cause Nagios to crash (Eric Stanley)
* Corrected logic so that end times for flexible downtimes are calculated from the dow
ntime start rather than the current time in the case where Nagios is restarted (Eric S
tanley)
* Fixed issue introduced by fix for bug #124 where flexible downtimes are not taken in
to account on Nagios restart. (Scott Wilkerson, Eric Stanley)
* Fixed bug #247: If a service reports no performance data, the perfdata log file has
no line indicating the test. (omnikron@free.fr)
* Fixed link for unhandled unreachable host problems on tactical overview page (Rudolf
 Cejka)
* Fixed bug #345 with wild card searches not paging properly on status.cgi (Phil Randa
l)
* Fixed bug #343 on status.cgi where Service Group Summary can potentially show wrong
totals (Mark Ziesemer)
* Fixed memory leaks on SIGHUP (Carlos Velasco)

3.4.1 - 05/11/2012
------------------
FIXES
* Double quotes in check_command definition break functionality (#332, reverts #86)


3.4.0 - 05/04/2012
------------------
ENHANCEMENTS
* Added service_check_timeout_state configuration variable (Bill McGonigle)
* Permanently remove sleep on run_event == FALSE in main loop (Max <perldork@webwizard
design.com>)
* Reduce notification load by moving notification viability check into notification li
st creation (Opsview Team)
* Added code to apply allow_empty_hostgroup_assignment flag to host and service depend
encies (Daniel Wittenberg)
* Users can now see hostgroups and servicegroups that contain at least one host or ser
vice they are authorized for, instead of having to be authorized for them all (Ethan G
alstad)
* RSS feed boxes fallback if an error occurs (Ethan Galstad)
* RSS feeds no longer block main page load (Mike Guthrie)

FIXES
* Fix $NOTIFICATIONRECIPIENTS$ macro to contain all contacts assigned to host|service,
 not only notified contacts (Bug #98 Matt Harrington)
* Scheduled Downtime Notifications Resent On Nagios Restart/reload (Bug #124 - ricardo
)
* NOTIFICATIONTYPE MACRO never became CUSTOM (Bug #168 - Alexey Dvoryanchikov)
* Plugged minor memory leaks in notification logic
2012-12-14 18:49:51 +00:00
joerg
c3d23e19b0 Don't install binaries as 550 to fail when stripping them later. 2011-11-27 19:49:15 +00:00
bouyer
5c44be6bad Update nagios-base to 3.3.1, fixig CVE-2011-1523 and CVE-2011-2179.
Changes since 3.2.3:
ENHANCEMENTS

    * Added support for same host service dependencies with servicegroups (Mathieu Gagné)
    * Empty hostgroups referenced from services now optionally generate a warning instead of an error.
    * Documentation links now point to online resources
    * Matt Wall's Exfoliation theme is now installed by default. You can reinstall the classic theme with "make install-classicui"
    * Downtime delete commands made "distributable" by deleting by host group name, host name or start time/comment (Opsview team)
    * Allow status.cgi to order by "host urgency" (Jochen Bern)
    * Added news items and quick links to main splash page
    * Added ability to authenticate to CGIs using contactgroup name (Stephen Gran)


FIXES

    * Fixes status.cgi when called with no parameters, where host should be set to all if none specified (Michael Friedrich)
    * Fixes possible validation error with empty hostgroups/servicegroups (Sven-Göran Bergh)
    * Performance-data handling and checking is now thread-safe so long as embedded perl is not used.
    * Children should no longer hang on mutex locks held in parent for localtime() (and similar) calls.
    * Debug logging is now properly serialized, using soft-locking with a timeout of 150 milliseconds to avoid multiple threads competing for the privilege to write debug info.
    * Fixed extraneous alerts for services when host is down
    * Fixed incorrect parsing of multi-line host check results (Jochen Bern)
    * Fixed bug with passive host checks being incorrectly sent to event brokers as active checks
    * Fixed bug where passive host check status updates were not being propagated to event brokers
    * Reverted 'Fix for retaining host display name and alias, as well as service display name' as configuration information stored incorrectly over a reload
    * Fixed compile warnings for size_t (Michael Friedrich)
    * Fixed problem where acknowledgements were getting reset when a hard state change occurred
    * Removed duplicated unlinks for check result files with multiple results
    * Fixed race condition on flexible downtime commands when duration not set or zero (Michael Friedrich)
    * Fixed flexible downtime on service hard state change doesn't get triggered/activated (Michael Friedrich)
    * Fixed XSS vulnerability in config.cgi and statusmap.cgi (Stefan Schurtz)
    * Fixed segfault when sending host notifications (Michael Friedrich)
    * Fixed bug where unauthorized contacts could issue hostgroup and servicegroup commands (Sven Nierlein)
2011-08-02 14:03:18 +00:00
morr
9f8fc0cb1b Update nagios-base to 3.2.3. While there, add DESTDIR support and set LICENSE.
ChangeLog:
* Fixes problem where disabling all active hosts/services was not taking effect
* Fixes for compiler warnings (code cleanup by Stephen Gran)
* Fixes for format errors in event handler logging (Guillaume Rousse)
* Fixed incorrect info in sample nagios.cfg file for state_retention_file (Michael Friedrich)
* Fixed broker_event_handler() to return ERR if data is NULL (Michael Friedrich)
* Patch to new_mini_epn to allow any command line length without breaking on extra trailing or leading whitespace (Ray Bengen)
* Patch to mini_epn to allow any command line length (Thomas Guyot-Sionnest)
* Patch to speed up loading of state retention data (Matthieu Kermagoret)
* Custom notifications are now suppressed during scheduled downtime (Sven Nierlein)
* Added code to warn user about exit code of 126 meaning plugin is not executable (bug #153)
* Scheduled downtime can now start on SOFT error states (bug #47)
* Main window frame URL can now be specify with a "corewindow=" parameter
* Improved config CGI shows commands, command args in an easier to use manner (Jochen Bern)
* Added ability for NEB modules to override execution of event handlers (Sven Nierlein)
* Custom macros are no longer cleaned/stripped as they are user-defined and should be trusted (Peter Morch)
* Fix for choosing next valid time on day of DST change when clocks go one hour backwards
* Fix for nagios now erroring when "Error: Could not find any contactgroup matching..." displayed
* Fix tap tests for Sol0 and newer versions of Test::Harness
* Fix for notifications not being sent out when scheduled downtime is canceluzzner)
* Fix for first notification delay being calculated incorrectly, and notifications potentially going out early (Plachowski)
* Fix for text of scheduling downtime of all services on a host (Holger Weiss)
* Fix for services inheriting notification period from hosts if not defined (Gordon Messmer)
* Fix for incorrect service states on host failures (bug #130 Pet)
* Fix for incorrect service state attributes being set on host failures (bug #128 Petya Kohts)
* Fix for non-scheduled hostsnd services not being updated in NDOUtils
* Fix for typos in TAC, CMD CGIs (bugs #150, #144, #148)
* Fix for types in documentation (bugs #145, #105, #106)
* Fix for incorrect host state counts in status CGI when viewing servicegroups (bug #72)
* Fix few Splunk integration query parameters (bug #136)
* Fix for extra field header in availability CSV export (bug #113)
* Fix foracro processing code modifying input string (Jochen Bern)
* Fix for update check API
* Fix for CGI speedup when persistent=0 f comments
* Fix for event execution loop re-scheduling host checks instead of executing them if service checks are disabled (b #152)
* Fix for segfaults on Solaris (Torsten Huebler)
* Fix for incorrect comment expiration times being passed to event bror (Mattieu Kermagot)
* Doc updates related to cleaning of custom macros (Peter Valdemar Morch)
* Fix to sample notify-service--email command (bug #62)
* Fix for retaining host display name and alias, as well as service display name (Folkert van Heusden* Link to allow scheduling downtime for all services on a host (Hendrik Baecker)
* Speedup to CGIs when lots of comments or dotimes in status.dat file (Jonathan Kamens)
* Patch for new_mini_epn to allow for any command line length without breaking extra trailing or leading whitespace (Ray Bengen)
* Fix for incorrect scheduling when time has gone back an hour (partial fix for 24x7)
* Fix for compile on Fedora Core 3 (bug #0000082)
* Fix for compile on Solaris
* Fix for logging test, which was not timezone aware (bug #0000077 - Allan Clark)
* Trivial cleanups for autoconf (Allan Clark)
* Fix for CSS validation of padding: X
* Fix for documentation re: case-insensitive nature of custom variables (Marc Powell)
* Fix for template configurations which use negated wildcards (Tim Wilde)
* Fix for read-only permissions bug in CGIs that caused problems viewing comments (bug #0000029)
* Fix for incorrect CGI reports (availability, trends, etc.) when reporting period spans Daylight Savings Time (bug #0000046)
* Fix for detection of truecolor support in GD library (Lars Hecking)
* Reverted to use --datadir configure script option instead of the more recently introduced --datarootdir option
* Status and retention files are now flushed/synced to disk to prevent incomplete information being displayed in CGIs
* Fix for incorrect next service check time calculation when Nagios is reloaded with different timeperiod ranges
* Updated Fedora quistart guide to indicate PHP requirements
* Known issue: Service checks that are defined with timeperiods that contain "exclude" directives are incorrectly re-scheduled.  Don't use these for now - we'll get this
 fixed for 3.4
2011-04-08 22:37:24 +00:00
bouyer
6a8f82a7fb Update nagios-base to 3.1.2, fixing CVE-2009-2288.
Changes since 3.1.0:
    * Fix for CPU hogging in service and host check scheduling logic
    * New "important check command" flag for use in service templates,
      to aid configuration in distributed environments
    * Fix for nagios validation error when no services defined
    * Fix for stylesheet link
    * Fix for extinfo.cgi error message when cgi.cfg doesn't exist
    * Fix for notifications.cgi where Update button on right didn't retain
      host information wh en no host= was in query parameters
    * Fix for potential bug where a contactgroup with no members could cause
      parsing errors
    * Fix for W3 validation for history.cgi
    * Fix for W3 validation for extinfo.cgi
    * Fix for nagiostats to return non-zero with failures in MRTG mode
    * Added t/ directory for tests. Use make test to run. Requires perl on
      development server
    * Fix for duplicate event_id attributes in status and retention data
    * Fix for duplicate unlink() during check processing
    * Added missing check period column to host config display (CGI)
    * Fix for embedded Perl initialization under FreeBSD
    * Fix for incorrect re-initialization of mutext after program restart
    * Fix for incorrect weighting in host flap detection logic
    * Added libtap to distribution. Use ./configure --enable-libtap to compile
    * nagios.log permissions are now kept after log rotation
    * Fix for "Max concurrent service checks (X) has been reached" messages -
      will now push se rvices 5 + random(10) seconds ahead for retry
    * Fix for incorrect service history link text in CGIs
    * Fix for useless code loop in netutils.c
    * Fix for potential divide by zero in event scheduling code
    * Fix for trailing backslash in plugin output causing memory corruption
      in CGIs
    * Fix for bug that could affect host/service scheduling during clock time
      skew or changes to timeperod definitions between restarts
    * Leading whitespace from continuation lines in configuration files is
      now stripped out
    * Fix for bug where pipe (used by IPC) file descriptors get inherited by
      child processed ( e.g. event handlers) (bug #0000026)
    * Fix for failure to daemonize - Nagios now bails (bug #0000011)
    * Fix for notifications about flapping starting not processed properly by
      retention data
    * Patch to add transparency to statusmap icons for truecolor images
    * Patch to add read-only permissions to extinfo CGI
    * Security fix for statuswml.cgi where arbitrary shell injection was
      possible
2009-12-15 18:56:01 +00:00
bouyer
d5c4c0434c Update to 3.1.0 (approved by tonnerre@)
Note that this now requires php for the web interface.

Changes since 3.0.3:
- lots of bug fixes, including security fixes for CVE-2008-5027,
  CVE-2008-5028, and CVE-2008-6373 (secunia.com SA32909)
- Sample audio files for CGIs removed from distribution
- Added documentation on CGI security issues
- Better out-of-disk-space error handling when writing retention and
  status files
- Disabled adaptive check and eventhandler commands for security reasons
- Added wildcard host matching in CGIs
- Added support for x509 cert authentication in the CGIs
- Updates to nagiostats utility for faster execution if using external
  stats file
- Added a bit more verbosity to config verification
2009-03-24 19:28:26 +00:00
tonnerre
9e58b3e79e Update nagios-base to 3.0.3. Changes since 2.12:
- Check timeperiod can now be modified on-the-fly.
 - Added first_notification_delay to host and object definitions
   to delay first notification.
 - Notifications are now sent out when flap detection is disabled
   on a host/service-specific or program-wide basis
   ($NOTIFICATIONTYPE$ macro = "FLAPPINGDISABLED").
 - Notifications can now be sent out when scheduled downtime starts,
   ends, and is cancelled.  The $NOTIFICATIONTYPE$ macro will be set
   to "DOWNTIMESTART", "DOWNTIMEEND", or "DOWNTIMECANCELLED",
   respectively.  In order to receive downtime notifications,
   specify 's' or 'downtime' in contact, host, and/or service
   notification options.
 - Added ability to use multiple template names (separated by commas)
   in object definitions.
 - Added ability to null out optional character directives in object
   definitions (using 'null' without quotes).
 - Added hostg/service/contactgroup_members directives to
   host/service/contactgroup definitions, respectively, for allowing
   including host, service, or contact members from "sub" groups.
 - Added support for custom variables in host, service, and contact
   definitions.
 - Added host_notifications_enabled, service_notifications_enabled,
   can_submit_commands to contact definitions.
 - Added optional display_name directive to host and service definitions.
 - Removed serviceextinfo definitions and merged variables with
   service definitions.
 - Removed hostextinfo definitions and merged variables with host
   definitions.
 - Services inherit contactgroups, notification interval, and
   notification period from associated host if not specified.
 - Service escalations inherit contactgroups, notification interval,
   and escalation period from associated service if not specified.
 - Host escalations inherit contactgroups, notification interval,
   and escalation period from associated host if not specified.
 - Host, service, host escalation, and service escalation
   definitions now support a 'contacts' directive, along with
   'contact_groups'.
 - Service dependencies with blank dependent host/hostgroup names
   will create "same host" dependencies.
 - Added ability to precache object config files.
 - Added ability to exclude object relationship and circular
   path checks from verification process.
 - Multiline output support for host and service checks.
 - Added $LONGHOSTOUTPUT$ and $LONGSERVICEOUTPUT$ macros.
 - Added $TEMPPATH$ macro.
 - Removed $COMMENTDATAFILE$ and $DOWNTIMEDATAFILE$ macros.
 - Added $HOSTDISPLAYNAME$ and $SERVICEDISPLAYNAME$ macros.
 - Custom host/service/contact macros accessible via $_HOST<varname>$,
   $_SERVICE<varname>$, or $_CONTACT<varname>$. On-demand host/service
   macros for custom vars are working.  Custom vars are also set as
   environment vars.
 - On-demand service macros can contain and empty host name field.
   In this case, the name of the current host will be used.
 - $HOSTNOTES$ and $SERVICENOTES$ macros may now contain macros
   themselves.
 - Added flap_detection_options directive to host and service
   definitions to control which states (i.e. OK, WARNING, UNKNOWN,
   and/or CRITICAL) are used in flap detection logic.
 - Percent state change and state history are now retained and
   recorded even when host/service flap detection is disabled.
 - Hosts and services are immediately check for flapping when flap
   detection is enabled program-wide.
 - Hosts/services that are flapping when flap detection is disabled
   program-wide are now logged.
 - Added PROCESS_FILE external command to allow processing of
   external commands found in an external (regular) file.  Very
   useful for passive checks with long out put or scripting.
 - Custom commands can now be submitted to Nagios.  Custom command
   names are prefixed with an underscore and are not processed
   internally by the Nagios daemon.  They may, however, be processed
   by NEB modules.
 - External commands are now checked by default.  Nagios 2.x and
   earlier did not check for external commands by default.
 - Contact status information is now saved (although it is not
   processed by the old CGIs).
 - Contact status information is now retained across program
   restarts.
 - Comment and downtime IDs are now stored across program restarts,
   should be unique unless reset.
 - Added retained_host/service_attribute_mask variables to control
   what host/service attribs are retained globally.
 - Added retained_process_host/service_attribute_mask variables to
   control what process attribs are retained.
 - Added retained_contact_host/service_attribute_mask variables to
   control what contact attribs are retained globally.
 - Scheduled downtime entries are now stored in the status and
   retention files.
 - Comments are now stored in the status and retention files.
 - Non-persistent acknowledgement comments are now deleted when the
   acknowledgement is removed (instead of when Nagios restarts).
 - Most host checks are now run asynchronously, in parallel!
 - Scheduled host checks now help improve performance, instead of
   hinder it (if caching is enabled).
 - Added cached_host_check_horizon option for enabling use of
   cached host check results.
 - Added enable_predictive_host_dependency_checks for enabling
   predictive checks of dependent hosts.
 - Added retry_interval to host definitions.
 - Added check_for_orphaned_hosts option and support for orphaned
   host checks.
 - Passive host check states can now be translated from their
   original DOWN/UNREACHABLE state if the new
   translate_passive_host_results option is enabled.
 - 'parallelize' option in service definitions deprecated/no longer
   used.
 - Added cached_service_check_horizon option for enabling use of
   cached service check results.
 - Added enable_predictive_service_dependency_checks for enabling
   predictive checks of dependent services.
 - Host and service dependencies can now have a timeperiod during
   which they're valid (dependency_period directive).
 - Updated NEB API version.
 - Modified adaptive program status callback.
 - Added adaptive contact status callback.
 - Added host/service precheck callbacks to allow modules to
   cancel/override internal host/service checks.
 - Added 'enable_embedded_perl' option to main config file to control
   whether epn is enabled/disabled.
 - Added support for perl plugins to specify whether or not they
   should be run under the epn...  The second to tenth line of a perl
   plugin may start with '# nagios: +epn' or '# nagios: -epn' to
   explicity indicate that it should be run under the epn.
 - Added 'use_embedded_perl_implicitly' option to main config file
   to determine whether or not perl plugins will use the epn if they
   don't explicitly allow/disalow it.
 - Hostgroup and servicegroup summaries now show important/unimportant
   problem breakdowns like the TAC CGI.
 - Minor layout changes to host and service detail views in extinfo CGI.
 - More information given when testing scheduling (-s command line
   option).
 - Removed fixed length restrictions for host names and service
   descriptions.
 - Plugin output length restriction bumped up to 4K.
 - Added temp_path directive to main config file for specifying temp
   directory.
 - Multiline output support for system commands via my_system().
 - Added global event_id and notification_id vars that are at least
   unique during a single run of Nagios.
 - Default is now to check for orphaned services, rather than not.
 - Renamed service_reaper_frequency to check_result_reaper_frequency.
 - Fractional notification and check intervals are now supported
   (e.g. "3.5" minutes).
 - Backslash chars are now used to escape command arguments that
   contain \ or ! characters.
 - Added 'external_command_buffer_slots' and
   'check_result_buffer_slots' variables to specify size of internal
   buffers.
 - Added check statistics to status file, available via nagiostats
   for graphing in MRTG.
 - Added $HOSTGROUPNAMES$, $SERVICEGROUPNAMES$, $HOSTACKAUTHORNAME$,
   $HOSTACKAUTHORALIAS$, $SERVICEACKAUTHORNAME$, and
   $SERVICEACKAUTHORALIAS$ macros.
 - Added warning for invalid temp_path directory.
 - Added support for extended regular expression matching in
   object config files.
 - Added new "p" option to host/service_perfdata_file_mode
   directives for pipes.
 - Command definitions and host/service plugin perfdata with HTML
   should now be escaped in CGIs.
 - Hostgroup and servicegroup definitions now have notes, notes_url,
   and action_url directives.
 - Added buffer stats and check statistics to performance
   information in extinfo CGI.
 - Removed legacy 2.x host check logic and use_old_host_check_logic
   option.
 - Added max_check_result_file_age option to control processing of
   check results in older files.
 - Added check_result_path option to set path used to store
   check results.
 - New IPC method for passing host/service check results back to
   main daemon.
 - Removed check_result_buffer_slots option from main
   configuration file.
 - Added test for writeability of temp directory during configuration
   test.
 - Minor changes to freshness threshold calculation.
 - Added 'initial_state' option to host and service definitions
   to allow for non-UP/OK initial states.
 - Changed debug file format to include current pid.
 - Changes to sample config files and installation location.
 - Expanded timeperiod definitions to allow for day/date exceptions.
 - Added new 'passive_host_checks_are_soft' config option.
 - Added new 'exclude' option to timeperiod definitions for
   easy on-call rotation definitions.
 - Added new action and notes URL target frame options to CGI
   config file.
 - Added optional integration with Splunk into the CGIs.
 - Added escape_html_tags option to CGI config file to escape HTML
   tags in plugin output.
 - Program status now updated at least every 5 seconds for addons
   that watch NDOUtils DB.
 - Added $MAXHOSTATTEMPTS$ and $MAXSERVICEATTEMPTS$ macros.
 - Added status CGI host/service property filters for hard and
   soft states.
 - New macros: $SERVICEISVOLATILE$, $TOTALHOSTSERVICES$,
   $TOTALHOSTSERVICESOK$, $TOTALHOSTSERVICESWARNING$,
   $TOTALHOSTSERVICESUNKNOWN$, $TOTALHOSTSERVICESCRITICAL$,
   $HOSTDOWNTIMEAUTHOR$, $HOSTDOWNTIMEAUTHORNAME$,
   $HOSTDOWNTIMEAUTHORALIAS$, $HOSTDOWNTIMECOMMENT$,
   $SERVICEDOWNTIMEAUTHOR$, $SERVICEDOWNTIMEAUTHORNAME$,
   $SERVICEDOWNTIMEAUTHORALIAS$, $SERVICEDOWNTIMECOMMENT$.
 - Improvements to the host check logic performance (more use of
   cached and parallel checks).
 - Version number is now printed in CGI pages.
 - Added custom delimiter option in nagiostats output (useful for
   CSV output).
 - Alias, if not specified, now defaults to object name in host,
   hostgroup, servicegroup, contact, and contactgroup definitions.
 - Added custom host and service notifications, with option to force
   the notifications and broadcast them to all contacts.
 - Added new 'check' option to init script to verify configuration.
 - More complete (but still partial) support for macros in CGIs
   ($xNOTES$, $xNOTESURL$, and $xACTIONURL$ macros).
 - Added on-demand contact and contactgroup macro support.
 - New macros: $HOSTGROUPMEMBERS$, $HOSTGROUPNOTES$, $HOSTGROUPNOTESURL$,
   $HOSTGROUPACTIONURL$, $SERVICEGROUPMEMBERS$, $SERVICEGROUPNOTES$,
   $SERVICEGROUPNOTESURL$, $SERVICEGROUPACTIONURL$, $CONTACTGROUPALIAS$,
   $CONTACTGROUPMEMBERS$, $NOTIFICATIONRECIPIENTS$, $NOTIFICATIONAUTHOR$,
   $NOTIFICATIONAUTHORNAME$, $NOTIFICATIONAUTHORALIAS$,
   $NOTIFICATIONCOMMENT$.
 - Added support for relative paths in config_file and config_dir directives.
 - Added passive check latency stats to nagiostats.
 - Workaround to prevent browsers from incorrectly using cached
   statusmap image on page refresh.
 - Added use_pending_states option to CGI config file to determine
   displayed state of hosts/services that have not been checked.
 - Added $EVENTSTARTTIME$ macro to indicate time Nagios started
   processing events (checks, etc.).
 - Improvements in freshness check logic.
 - Added additional_freshness_latency config file directive.
 - Improvement in service flap detection logic.
 - Status file is no longer deleted during restarts due to a SIGHUP
   or external command.
 - Special additive inheritance rule: escalation contact(group)(s)
   that begin with '+' will  now inherit from associated host/service
   definition if not inheriting from another escalation template.
 - Addition of object pointers to event broker module data structures
   (may require event broker module rebuilds).
 - Added $LASTHOSTSTATE$, $LASTHOSTSTATEID$, $LASTSERVICESTATE$, and
   $LASTSERVICESTATEID$ macros.
 - Better error logging when failing to rename/move files.
 - Summary macros are now available as regular (non-environment) macros
   if requested when large installation tweaks are enabled.
 - Major overhaul (read: complete rewrite) of macro code, so macros are
   now only computed when found.
 - Added enable_environment_macros option to determine whether or not
   macros are set as environment vars.
 - Added $ISVALIDTIME:$ and $NEXTVALIDTIME:$ on-demand macros.
 - Added new external commands to change modified object attributes
   (affecting data retention logic).
 - Added new external commands to change notification period for
   host, services, and contact on-the-fly.
 - Retention of host/service check scheduling options.
 - Caching of Perl scripts now enabled by default if embedded Perl
   interpreter is compiled in.
 - Increased max plugin output length cap from 4kb to 8kb.
 - Additional functionality of additive inheritance feature.
 - Added free_child_process_memory and child_processes_fork_twice
   options for performance tweaks.
 - Added use_timezone option to allow Nagios instances to run in
   non-native timezones.
 - Support for line continuation/breaks in config files - end lines with
   one back slash (\) to continue on next line.
 - Auto-filled comment/author fields for acknowledging problems through
   WAP interface.
 - Faster program startup times (especially in large installs) with new
   object lookup code.
 - Nagios no longer warns or errors when encountering
   host/contact/service groups with empty memberships.
 - Allow non-ASCII characters in notifications, etc.
 - Smarter host check logic to reduce (uncached) on-demand host checks
   during "stable" service problems.
 - New flap detection startup logic speedups when large installations
   tweaks enabled.
 - Speed improvements during startup routines when using precached config.
 - Speed improvements in reading retention data during startup.
 - Changed embedded audio MIME types in CGIs to "application/wav".
 - Safer loading mechanism for NEB modules to prevent segfaults in Nagios.
 - Embedded Perl is now disabled by default.
 - Misc internal performance improvements.
 - More debug/trace log functionality.
 - Internal data structure cleanups.
 - Logging API revamp, cleanup.
 - Error logging improvements.
 - Various bugfixes.
 - Documentation updates.
2008-07-21 00:35:42 +00:00
tonnerre
e3e1062732 Upgrade nagios to 2.12. Changes are mostly bugfixes since this is the legacy
branch.

Changes since old version 2.5:
 * Fix for unscheduled triggered downtime entries.
 * Fix for embedded audio in tac and status CGIs.
 * Fixed bug in nagiostats utility when reporting host/service check latency.
 * Misc code cleanups for compiler warnings.
 * Fixed error when reading empty (zero byte) config files.
 * Default is now to check for orphaned service checks.
 * Fixed bug with non-standard CGI config file location in status data.
 * Fixed bugs and simplified examples in sample config files.
 * Fix for leading whitespace before comments in object config files.
 * Fix for scheduling immediate service check through WAP interface.
 * Fix for segfault during expiration or deletion of scheduled downtime.
 * Minor documentation updates.
 * Minor patches to availability and status CGIs.
 * Updated nagiostats with new MRTG vars for tracking buffer usage.
 * p1.pl now sets environment var (NAGIOS_PLUGIN) to indicate patch of
   plugin being executed.
 * Added error messages for passive service checks that don't correspond to
   a defined service.
 * Fix for handling signals under NPTL.
 * Fix for missing check timeout in event broker calls.
 * Possible segfault fix during restarts when daemon was performing host
   checks.
 * Bug fix for bad date format submission in command CGI.
 * Bug fix for using servicegroups in service dependency definitions.
 * Bug fix for calculating notification interval with service escalations.
 * Program version is now displayed in CGIs.
 * Fix for keeping service checks in the event queue when active service
   checks are disabled globally.
 * Bug fix with attempting to access an uninitalized mutex if external
   commands are disabled.
 * Fix for incorrect latency calculation for passive service checks.
 * Fix for a segfault when processing passive host check results with empty
   output/perfdata.
 * Minor bug fixes in CGIs.
 * Fix for not logging passive host check results.
 * Minor fix for notification timeout log messages.
 * Fix for SIGTERMs being seen as SIGEXITs, non-logging of SIGTERMs/shutdowns.
 * Patch to allow non-ASCII characters in notifications, etc.
 * Fix for flap detection information not be retained across restarts.
 * Fix for cfg_dir directive not working on Solaris.
 * Fix for segfault in event broker module code.
 * Fix for a possible memory leak in situations where overflow occurs in
   check result buffer.
 * Fix for a bug with processing service dependency templates with null
   master host(group) names.
 * Better error logging when failing to rename/move files.
 * Minor bug fixes in CGIs to ensure extra host/servicegroup url strings
   are terminated properly.
 * Patches for possible XSS vulnerability in CGIs (CVE-2007-5803).

Please note that this now needs PTHREAD_DIAGASSERT=A to run properly under
NetBSD-4.0 without the fixsa patch.
2008-06-21 14:35:49 +00:00
tonnerre
4331013f54 Fix several cross site scripting vulnerabilities in Nagios 2.5
Take over maintainership as suggested by jlam

Approved-by: jlam
2008-03-18 21:53:41 +00:00
seb
40ba22b280 Bump PKGREVISION to 4.
As proposed on pkgsrc-users@...

- Introduce NAGIOSDIR, defaults to VARBASE/spool/nagios, for log
and status files.

- Drop unused(?) 'nagadmin' user and group.

- Sync user and group handling with Nagios install
documentation/recommendations. Introduce the Nagios "external
command" group, NAGIOSCMD_GROUP, defaults to APACHE_GROUP. The
Nagios user should be manually added after package installation to
the NAGIOSCMD_GROUP group. Add this recommandation to the MESSAGE
file. Make the "external command directory", NAGIOSDIR/rw, owned
by NAGIOS_USER:NAGIOSCMD_GROUP.

- Use /var/run/nagios.lock as pidfile.

- Only install existing example configuration files.

- Put default values of NAGIOSDIR, NAGIOS_USER, NAGIOS_GROUP and
NAGIOSCMD_GROUP in mk/defaults/mk.conf and allow MAKECONF to
override them.

- Miscellaneous clean up and sync with the changes mentionned above.

- When deleting the package allow removal of directories shared
with other Nagios packages to fail.
2007-11-26 22:14:13 +00:00
grant
5b05872db5 don't bother building the sample 'helloworld' module, it doesn't get
installed, anyway, and was breaking the build on Solaris.
2007-05-04 04:53:03 +00:00
taca
4160e1509a Update nagios-base to 2.5.
#####################
Nagios 2.x Change Log
#####################


2.5 - 07/13/2006
----------------
* Bug fix for excluding hidden files from config file processing
* Bug fix for incorrect links to trends CGI from notification CGI
* Hopefully faster shutdown during host checks
* Lock file is now closed just prior to shutdown, instead of when SIGINT is received
* Bug fix for segfault during startup due to extended service definition duplication
* Bug fix for segfault with wildcards in servicegroup members
* Bug fix for segfault when p1.pl file was missing and embedded Perl interpreter was enabled



2.4 - 05/31/2006
----------------
* Fix for missing <limits.h> include that prevented CGI compilation under Solaris
* Better error message reporting in the command CGI (cmd.cgi)
* Fix for order of recovery/flapping notifications immediately after end of host/service flapping
* Bug fix for potential crash (SIGBUS) of CGIs when reading mmap()'ed status, comment, and downtime files
* Added 'install-unstripped' option to Makefile to allow installing unstripped binaries for debugging
* Minor bug fix to sample redundancy handle-master-proc-event script
2006-08-17 14:19:00 +00:00
bouyer
85e864c5b6 Update to 2.3.1: fix another content-length buffer overflow in CGIs. 2006-05-17 20:47:41 +00:00
bouyer
a08e777f71 Update to nagios 2.3:
[Security] Bug fix for negative HTTP content_length header in CGIs
Added missing links for notes_url and action_url to service column of status
  detail page
Changed freshness logic so that passive checks don't immediately go stale
  after program restart
Bug fix for minor memory leak in object cleanup code
Bug fix for flapping notifications during scheduled downtime
Bug fix for $TOTALHOSTSDOWNUNHANDLED$ macro
Bug fix in sample minimal.cfg file
Bug fix in status CGI when displaying servicegroups
Bug fixes in computation of indeterminate time and scheduled downtime in
  availability CGI
Bug fix with not deleting all comments associated with a service
Lowered max plugin output length from 348 to 332 chars to run on 64-bit
  systems without problems
Minor fix to p1.pl for embedded Perl interpreter
Minor fixes to WAP interface (statuswml CGI)
Minor bug fix to VRML interface (statuswrl CGI)
Minor doc updates
2006-05-09 18:09:10 +00:00
bouyer
e789167179 Initial import of nagios-base 2.0, based on the 1.3.x package in pkgsrc-wip.
Nagios is a program that will monitor hosts and services on your
network.  It has the ability to email or page you when a problem arises
and when it gets resolved.  Nagios is written in C and is designed to
run under Linux, although it should work under most other *NIX variants.
It can run either as a normal process or as a daemon, intermittently
running checks on various services that you specify.  The actual service
checks are performed by external "plugins" which return service
information to Nagios.  Several CGI programs are included with Nagios
in order to allow you to view the current service status, history, etc.
via a web browser.

This package provides the core nagios infrastructure and web pages.
2006-02-18 17:12:20 +00:00