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
to trigger/signal a rebuild for the transition 5.8.8 -> 5.10.0.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=...").
- 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.
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.
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.
the owner of all installed files is a non-root user. This change
affects most packages that require special users or groups by making
them use the specified unprivileged user and group instead.
(1) Add two new variables PKG_GROUPS_VARS and PKG_USERS_VARS to
unprivileged.mk. These two variables are lists of other bmake
variables that define package-specific users and groups. Packages
that have user-settable variables for users and groups, e.g. apache
and APACHE_{USER,GROUP}, courier-mta and COURIER_{USER,GROUP},
etc., should list these variables in PKG_USERS_VARS and PKG_GROUPS_VARS
so that unprivileged.mk can know to set them to ${UNPRIVILEGED_USER}
and ${UNPRIVILEGED_GROUP}.
(2) Modify packages to use PKG_GROUPS_VARS and PKG_USERS_VARS.
#####################
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
[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
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
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.