What's New in Version 1.0

Important: Make sure you read through the documentation (especially the FAQs) before sending a question to the mailing lists.

Many of the changes described below are the direct result of this project being renamed from NetSaint. Transitioning from NetSaint to Nagios will undoubtedly take some time, but it'll be well worth it.

Change Log

The change log for Nagios can be found online at http://www.nagios.org or in the Changelog file in the root directory of the source code distribution.


  1. User/Group Change. The default user/group that Nagios runs under is now nagios/nagios.

  2. Directory Change. The default directory that Nagios gets installed in is now /usr/local/nagios.

  3. URL Changes. The base URLs for accessing the HTML files and CGIs through the web interface are now /nagios/ and /nagios/cgi-bin/, respectively.

  4. Config File Changes. The main config file is now nagios.cfg and the CGI config file is now cgi.cfg.

  5. Process Check Command Changes. The old process_check_command variable in the CGI config file has been renamed to nagios_check_command. Also, if you do not specify a check command, the CGIs will assume the Nagios process is running properly.

  6. Archive Changes. Archived log files from Netsaint must be renamed from "netsaint-date.log" format to "nagios-date.log" format if you want to make them available to the Nagios CGIs. You can rename all your archived log files with the following command (assuming you've already moved them to their new directory location): rename netsaint nagios netsaint*.log

  7. Retention File Format Change. The format of the retention file (or database, if that's what you were using) has changed to support more variables. No conversion utility is yet available, which means you'll either have to find a way to manually convert your retention data, or lose it when you make the changeover.

  8. Database Schema Changes. The database schema for status, retention, comment, and extended information data has changed. If you were using database support previously, you'll either have to recreate the databases using the sample scripts provided in the contrib/database directory just alter your existing tables (an exercise which will be left to you). Also note that the default database name is now nagios.

New Features

  1. Template-Based Object Config File. This is probably the biggest feature which has been added. Use of the template-based object config file format is optional, but highly recommended. Note that the older config file format is still supported if you really want it. The template-based config file is much easier to read, modify, and expand upon compared to the older format. It also allows you to specify host- and service-specific values for things like flap detection thresholds, flap detection and performance data processing options, etc. If you're interested in trying out the new template-based config file format, check out the convertcfg utility in the contrib/ directory of the distribution - it can be used to quickly convert your old config files to the template-based format. More information on the template-based object config file can be found here.

  2. Template-Based Extended Info Config File. This is similar to the template-based object configuration file format mentioned above. You can now store extended host and service information in a template-based config file. More information on doing this can be found here. If you wish, you can still use the older style of defining extended information directives in the CGI configuration file as described here.

  3. Host Dependencies. You can now define optional host dependencies which will prevent notifications from being sent out for a host if one or more criteria fail. In the past there have been implicit dependencies between hosts that are related through "parenting", but this now allows you to create explicit dependencies between unrelated hosts. More information on dependencies can be found here.

  4. Host Escalations. You can now define optional notification escalations for specific hosts. In the past you were only able to define escalations for entire hostgroups. While this was closely matched to non-escalated notification logic, it didn't provide much flexibility. Note that hostgroup escalations are still supported and can be used in conjunction with host escalations. More information on notification escalations can be found here.

  5. Freshness Checking. Nagios now internally handles the concept of "freshness checking" of service check results. If freshness checking is enabled for a particular service, Nagios will force an active check of that service if the results from the last check are "stale" or "too old" (as determined by a threshold you specify). This makes implementing distributed monitoring servers much simpler, as you don't need an additional addon to make sure service results are "fresh". More information on how freshness checking works can be found here.

  6. Scheduled Downtime. Scheduled downtime for hosts and service is now retained across program starts. Additionally, you can now distinguish between "fixed" and "flexible" downtime. Fixed downtime starts and stops at absolute times, while flexible downtime starts when a host or service first goes into a problem state. More information on scheduled downtime can be found here.

  7. State Stalking. You can now enable "stalking" for different states on a per-host or per-service basis. Stalking provides you with more information about problems when you're analyzing archived log data. More information on state stalking can be found here.

  8. File-Based Performance Data Processing. Nagios can now be compiled to dump performance data directly to a file in a format you define. This method is must faster and requires far less overhead that the default method of processing performance data. More information on the file-based option can be found here. General information about performance data can be found here.

  9. New Histogram CGI. A new histogram CGI has been added. This CGI allows you to see better analyze when host and service alerts occur over various periods of time.

  10. New Summary CGI. A new summary CGI has been added. This CGI allows you to generated basic reports about host and service alerts over various periods of time. Reports can be created to show alert totals, top alert producers, most recent alerts, etc.

  11. Statusmap CGI Improvements. Several new layout methods have been added to the statusmap CGI. You can also now specify a default layout method with the default_statusmap_layout directive.

  12. Availability CGI Improvements. I have made several enhancements to the code in the availability CGI, including the ability to separate scheduled downtime from non-scheduled downtime.

  13. Configuration Directory. You can now specify one or more directories that should be scanned for object configuration files by using the cfg_dir directive. You can use this in conjunction with (or instead of) the cfg_file directive.

  14. Custom CGI Headers/Footers. You can now include optional headers and footers in the CGIs. This is most useful if you do custom Nagios installations for customers and want to include tag line, contact info, etc in each page. More information on doing this can be found here.

  15. Cleaning Of Dangerous Macro Output Characters. Potentially dangerous characters can now be stripped from the $OUTPUT$ and $PERFDATA$ macros before they're used in notification commands, etc. by using the illegal_macro_output_chars directive. At a bare minimum, I highly recommend you strip out the characters shown in the example, or an attacker might be able to execute arbitrary commands as the nagios user!