Monarch Overview

Contents
Copyright 2005 GroundWork Open Source Solutions, Inc. ("GroundWork").
All rights reserved. Use is subject to GroundWork commercial license.

Program Description Monarch Overview Monarch How To's
Program Description
GroundWork Monitor Architect (Monarch) is a free open source configuration tool that accelerates and simplifies the deployment of the Nagios monitoring tool, and GroundWork Monitor, GroundWork's IT management solution based on Nagios. Monarch provides open source software that extends and enhances Nagios and Nagios-based solutions.

Monarch is a Web-based configuration tool that enables system administrators to more easily and rapidly set up and maintain Nagios and GroundWork Monitor by allowing them to configure the system through a Web-based interface rather than having to edit actual configuration files - a time-consuming and tedious process.

System administrators are increasingly accustomed to GUI-based software configuration tools, but Nagios still requires users to edit by hand. With Monarch's graphical, Web-based user interface, we've bridged one of the largest functional gaps of Nagios.

0.97a Release Notes

  1. Service groups: Nagios 2.0 directive available when Control->Setup->Nagios version is set to 2.x.
  2. Bug fixes: See CHANGELOG.TXT for list.

Licensing and Availability

GroundWork Monitor Architect is currently available under an open source software license at GroundWork's web site http://www.itgroundwork.com/products/gwm-architect.html and SourceForge http://sourceforge.net/projects/monarch/.

Prerequisites

  • GroundWork Monitor 3.x or higher,
  • Or pre-installed software
    • Nagios 1.2 (Nagios 2.0 supported in future version)
    • MySQL 4.1
    • Perl Modules:
      • XML-LibXML-Common-0.13
      • XML-NamespaceSupport-1.08
      • XML-SAX-0.12
      • XML-LibXML-1.58
      • CGI.pm-3.07
      • DBI-1.48
      • DBD-mysql-2.9005
      • File::Copy

Minimum Requirements

Basic set of Nagios files to include:
  • nagios.cfg
  • cgi.cfg
  • resource.cfg

Product Objectives

  • Provide a tool to allow users to easily create and modify GroundWork Monitor/Nagios configuration files.
  • Utilize a template oriented configuration thorough extensive use of templates.
  • Enable all functions via a web browser interface.
  • Support most GroundWork Monitor/Nagios configuration options.

Product Support

  • For product support, please email us at: monarch@itgroundwork.com
  • Professional Product support is available through a GroundWork subscription agreement.
  • Monarch was written by Scott Parris of GroundWork Open Source Solutions.
  • Information on directives outside the scope of this document can be found in the Nagios Documentation at http://www.nagios.org/docs/.
  • This document is best printed using landscape orientation.
Monarch Overview

Architectural View of Monarch

Monarch is a set of .cgi scripts written in Perl. The two major functions of Monarch are Control and Configure described here:

  • Control allows you to access administration functions such as managing User IDs. You can control the implementation including the loading of Monarch, running of a Pre Flight Test (a verification of the Nagios configuration) and commit files into your production configuration using the Monarch Commit option.
  • Configure which lets you create the configuration files. If you are starting from scratch and in the process of building a new configuration for the GroundWork Monitor you will spend time here creating and managing elements that Monarch uses.



When performing a load operation all of the Nagios config files get loaded into the MySQL Monarch Database, mirroring the entire configuration in the database. Monarch then operates by manipulating this database.

In addition to the Nagios configuration information there are extra data structures that Monarch uses to add functionality, such as; Host and Service Profiles, Escalation Trees, and Monarch Access Rights.

Once you are finished making modifications, you can execute the Pre Flight Test, which is the equivalent of the nagios -v command. This will verify the configuration, and will write the updated nagios configuration files into a Workspace Directory. At this point your current Nagios configuration has still not been affected. You can look at the config files and manually manipulate them if you prefer to.

Monarch gives you the capability to commit the files into your production configuration if you choose to. Commit will: 1) make a backup of your old configuration; 2) Put it into a separate backup directory; 3) Copy the updated configuration files back into your production nagios/etc directory; and 4) Perform a nagios restart thus activating the configuration.

In summary, Monarch provides options for controlling your production configuration. If you just want to see the new changes, you can keep the changed files in your Workspace Directory. Alternatively, the Monarch Commit option provides the option to implement the changes you make.

Structure of Monarch Concepts

Hosts and Services



With Nagios, you can define templates. When defining, for example a Host, you would enter the common definitions in a Host Template. To define a specific Host, you apply the definition using a Template. This is a method that Nagios uses to reduce the number of repetitive entries in its object definitions. You would define Service Templates the same way and apply them when you define Services.

A Host, when fully implemented, has a Host Template, a unique Host Definition, and Services. Services have Service Templates and Service Definitions. Monarch takes this concept one step further.

Service Names



Monarch introduces a concept called a Service Name, which is a combination of a Service Template and a Service Definition. The Service Name is generic which means it has not yet been applied to a specific Host. It contains all the information except the Host Name. Monarch creates Service Names out of all defined Services when you import your existing nagios configuration.

Service Profiles



Once you have a Service Name you can define a Service Profile. A Service Profile is a collection of multiple Service Names. Here is an example:
You have a web server on which you will want to monitor CPU, memory, disk, http, and apache processes. You will have 50 of these web servers. Instead of creating 50 definitions you would create a Service Name for each of the Services (CPU, memory, disk). You can then create a Service Profile called web monitoring and include all of the Service Names in the Service Profile. You would then associate this Service Profile with each of the 50 servers. Monarch does this with a Host Profile.

Host Profiles



Once you have the Service Profiles defined you can combine them with a Host Template and create a Host Profile. These Profiles are not associated with a specific Host. Once you have the Host Profile you can apply this combined definition to each of your 50 specific web servers. This concept will allow you to generically define the different roles of the different devices you are monitoring and easily apply them.

Application of Host Profiles

Once the above steps are complete, if you want to change one of the parameters and apply it to all 50 of your web servers, you can make a change to either the Host Profile, the Service Profile, or in the Service Name, which will then be applied to all 50 web servers.

How Monarch Elements Tie Together




Monarch's User Interface

When you start Monarch you will see the following options listed in the table below.

Common Hosts Services Tools Control
The Common tab includes the following elements which are are used to define and manage Monarch: The Hosts tab includes the following elements which are used to define and manage Hosts: The Services tab includes the following elements which are used to define and manage Services: The Tools tab includes the following element which is use to export configuration files: The Control tab includes the following elements which are used in Monarch administration setup and for controlling implementation:
Time Periods
Commands
Contact Templates
Contacts
Contact Groups
Escalation Templates
Escalation Trees
New Host Wizard
Clone a Host
Search Hosts by Name
Hosts by Address
Hosts by Host Group
Hosts by Parent
Host Templates
Extended Host Info Templates
Host Profiles
Host Groups
Parent Child
Host Dependencies
Services
Service Profiles
Service Templates
Service Dependency Templates
Extended Service Info Templates
Export Users
User Groups
Setup
Nagios CGI Configuration
Nagios Main Configuration
Nagios Resource Macros
Load
Files
Pre Flight Test
Commit
Monarch How To's

How do I import an existing Nagios Configuration?

This How To will step you through how to import an existing Nagios configuration after running the setup script. This process will warn you that it will drop all previous Nagios records from Monarch and load your etc/nagios/nagios.cfg file.

Verify Nagios directory definitions



  1. Select Control.
  2. Select Setup.
  3. In the Setup Options screen, verify the Nagios etc, Nagios bin, Backup, and Upload directories. Note: The initial setup script should have entered the appropriate files here for you. You should not have to make changes unless you want to use a different set of files and directories. The Setup properties include:
    • Login Authentication: Select None, Active, or Passive. None = No Authentication, all users have full control; Active = Users are prompted with login with access checks enabled; Passive = No login if user account is passed in URL and access checks are enabled (SSO method).
    • Session Timeout Seconds: With login authentication Active, this is the number of seconds of inactivity before a user is prompted to login.
    • Nagios Version: Current Nagios version being used.
    • Nagios etc: Path to the folder containing nagios.cfg.
    • Nagios bin: Path to the folder containing the nagios binary.
    • Monarch Home: The Monarch installation path. Your web server must have read write access.
    • Backup Dir: This folder is used to backup your Nagios files and the Monarch database. Your web server must have read write access.
    • Upload Dir: Designates directory for uploading files.
  4. Select Save to save any changes.

Nagios configuration



  1. Select Control.
  2. Select Load.
  3. In the Load Nagios Configuration screen, select Load (or Backup first, then Load).
  4. The Load Nagios Object Files screen will be displayed. The import is finished when the load status indicates completed. Any error messages will be displayed in red. Not all errors mean that something is wrong, as Monarch removes parts of the existing configs that are unused. Make a note of any errors and check your configuration to be sure Monarch imported everything.
  5. Select Next, to process objects.
  6. Select Next to process Hosts and Host Groups.
  7. Select Next to process Services.
  8. Select an option to keep or replace Escalations. The message Load of Nagios files completed will be displayed.
  9. Select Continue to return to the main menu.

How do I setup Contact Groups?

This How To will take you through the steps to create a Contact Group. We will first create a Contact Template, second define Contacts, and then follow up by creating a Contact Group. A Contact Template is useful when creating multiple Contacts with common attributes. A Contact definition is used to identify someone who should be contacted in the event of a problem on your network. A Contact Group is a collection of one or more Contacts. Contact Groups can be applied to Escalation Templates and Escalation Trees to be used in setting up notifications for Hosts and Services.

Creating a Contact Template

  1. Select the Common tab.
  2. Select Contact Templates.
  3. Select Design.
  4. Select Copy or New.
  5. In the Contact Template Properties screen, fill in the properties.
    • Name: [Required] This is the Name for the Contact Template. It is referenced in Contact Group definitions. Under the right circumstances, the $CONTACTNAME$ macro will contain this value.
    • Host Notification Period: [Required] This directive is used to specify the short name of the time period during which the Contact can be notified about Host problems or recoveries.
    • Service Notification Period: [Required] This directive is used to specify the short name of the time period during which the Contact can be notified about Service problems or recoveries.
    • Host Notification Options: [Required] This directive is used to define the Host states for which notifications can be sent out to this Contact. Valid options are a combination of one or more of the following: d = notify on DOWN Host states, u = notify on UNREACHABLE Host states, and r = notify on Host recoveries (UP states). If you specify n (none) as an option, the contact will not receive any type of host notifications.
    • Service Notification Options: [Required] This directive is used to define the Service states for which notifications can be sent out to this Contact. Valid options are a combination of one or more of the following: w = notify on WARNING service states, u = notify on UNKNOWN service states, c = notify on CRITICAL service states, and r = notify on service recoveries (OK states). If you specify n (none) as an option, the contact will not receive any type of service notifications.
    • Host Notification Commands: [Optional] This directive is used to define a list of the short names of the commands used to notify the Contact of a Host problem or recovery. Notification commands are executed when the Contact needs to be notified.
    • Service Notification Commands: [Optional] This directive is used to define a list of the short names of the commands used to notify the Contact of a Service problem or recovery. Notification commands are executed when the Contact needs to be notified.
  6. Select Add to add the new Contact Template, you will be notified that the new template has been saved.
  7. Select Continue to return to the main menu.

Defining Contacts




  1. Select the Common tab.
  2. Select Contacts.
  3. Select Design.
  4. Select Copy or New.
  5. In the Contacts Template Properties screen, fill in the properties.
    • Name: [Required] This is the Name for the Contact. It is referenced in contact group definitions. Under the right circumstances, the $CONTACTNAME$ macro will contain this value.
    • Alias: [Required] This directive is used to define a longer name or description for the contact. Under the rights circumstances, the $CONTACTALIAS$ macro will contain this value.
    • Email: [Optional] This directive is used to define an email address for the contact. Depending on how you configure your notification commands, it can be used to send out an alert email to the contact. Under the right circumstances, the $CONTACTEMAIL$ macro will contain this value.
    • Pager: [Optional] This directive is used to define a pager number for the contact. It can also be an email address to a pager gateway (i.e. pagejoe@pagenet.com). Depending on how you configure your notification commands, it can be used to send out an alert page to the contact. Under the right circumstances, the $CONTACTPAGER$ macro will contact this value.
    • Contact Template: [Required] Select the Contact Template most suitable for this Contact. Note the inheritance check box; to override the template values, uncheck the Inherit all values from Template check box and specify any changes in the contact options listed.
  6. Select Add to add the new Contact, you will be notified that the new Contact has been saved.
  7. Select Continue to return to the main menu.

Creating a Contact Group



  1. Select the Common tab.
  2. Select Contact Groups.
  3. Select Design.
  4. Select Copy or New.
  5. In the Contact Group Properties screen, fill in the properties.
    • Contact Group Name: This is the name for the Contact Group.
    • Alias: This directive is used to define a longer name or description used to identify the Contact Group.
    • Members: This directive is used to define a list of the short names of contacts that should be included in this group.
  6. Select Add to add the new Contact Group, you will be notified that the new Contact Group has been saved.
  7. Select Continue to return to the main menu.

How do I create a new Command?

This How To will take you through the steps to add a new command. A Command line, which defines a Command, is referenced in Contact, Host, and Service definitions among other places. Commands that can be defined include service checks, service notifications, service event handlers, host checks, host notifications, and host event handlers. Command definitions can contain macros, but you must make sure that you include only those macros that are valid for the circumstances when the command will be used. See the Nagios documentation for the complete list and usage of macros.

Add a new Command



  1. Select Common.
  2. Select Commands.
  3. Select Design.
  4. Select Copy or New. Note: If the command you are creating has a format similar to an existing command, or if it will be calling a plugin program with different parameters, the copy option will be easiest to use.
  5. In the Command Properties screen, fill in ths properties:
    • Name: This is the Name for the Command. This directive is the short name used to identify the command.
    • Type: [Required] Specify the command type: Check = Service/Host check commands, handlers; notify = notification commands; other = other commands (i.e. performance data collectors).
    • Command Line: This directive is used to define what is actually executed by Nagios when the command is used for service or host checks, notifications, or event handlers. Note: The command line should also match how it will be executed at a command prompt. You may use Nagios macros here. These are substituted by Nagios before the command is executed. Typical macros include: $HOSTADDRESS$ - the Host's IP Address; $USER1$ - the Nagios plugin directory.
  6. Select Add to create the command. Note: Be sure the plugin for the command line exists in the plugin folder.

How do I create a Service Template?

This How To will take you through the steps to create a Service Template. You will want to create a Service Template if you are going to use common attributes for multiple Services.

Example:
In a Service Template (generic-win-disk-c), the Check command check_nt_disk has a Command Line of $USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v USEDDISKSPACE -l $ARG1$ -w $ARG2$ -c $ARG3$ where the values are set to check_nt_disk!C!85!95, which becomes the default Command Line value for a Service Name check_disk_c. Now, if you want to create a Service Name check_disk_d, you can select Service Template generic-win-disk-c, uncheck Use template command, and replace the C parameter with a D.

Verify prerequisites

Create a Service Template




  1. Select the Services tab.
  2. Select Service Templates.
  3. Select Design.
  4. Select Copy (copy from an existing service template) or New (create a new service from scratch).
  5. In the Service Template Properties screen, fill in the properties.
    • Name: Name of the Service Template.
    • Use: [Required] Select the Service Template most suitable for this service. Changing directives withing this screen will override the template values.
    • Is Volatile: This directive is used to denote whether the Service is Volatile. Services are normally not volatile. Unchecked = Service is not volatile; Checked = Service is volatile.
    • Check Period: [Required] This directive is used to specify the sort name of the time period during which active checks of this Service can be made.
    • Max Check Attempts: [Required] This directive is used to define the number of time that Nagios will retry the Service check command if it returns any state orther than an OK state. Setting this value to 1 will cause Nagios to generate an alert without retrying the Service check again.
    • Normal Check Interval: [Required] This directive is used to define the number of time units to wait before scheduing the next regular check of the Service. Regular checks are those that occur when the Service is in an OK state or when the Service is in a non-OK state, but has already been rechecked max_attempts number of times. Unless the interval_length directive has been changed from the default value of 60, this number will mean minutes.
    • Retry Check Interval: [Required] This directive is used to define the number of time units to wait vefore scheduing a re-check of the Service. Services are rescheduled at the retry interval when they have changed to a non-OK state. Once the Service has been retried max_attempts times without a change in its status, it will revert to being scheduled at its normal rate as defined by the check_interval value. Unless you've changed the interval_length directive from the default value of 60, this number will mean minutes.
    • Active Checks Enabled: [Optional] This directive is used to determine whether or not active checks of this service are enabled. Unchecked = disable active servie checks, Checked = enable active service checks.
    • Passive Checks Enabled: [Optional] This directive is use to determine whether or not passive checks of this service are enabled. Unchecked = disable passive serice checks, checked = enable passive service checks.
    • Parallelize Check: [Optional] This directive is used to determine whether or not the service check can be parallelized. By default, all servie checks are parallelized. Disabling parallel checks of services can result in serious performance problems. Unchecked = service check cannot be parallelized (use with caution), Checked = service check can be parallelized.
    • Obsess Over Service:
    • Check Freshness: [Optional] This directive is used to determin whether or not freshness checks are enabled for this service. Unchecked = disable freshness checks, Checked = enable freshness checks.
    • Freshness Threshold: [Optional] This directive is used to specify the freshness threshold (in seconds) for this service. If you set this directive to a value of 0, Nagios will determine a freshness threshold to use automatically.
    • Notifications Enabled: [Optional] This directive is used to determine whether or not notifications for this service are enabled. Unchecked = disable service notifications, Checked = enable service notifications.
    • Notification Interval: [Required] This directive is used to define the number of time units to wait before re-notifying a contact that this service is still in a non-OK state. Unless you've chenaged the interval_length directive from the default value of 60, this number will mean minutes. If you set this value to 0, Nagios will not re-notify contacts about problems for this service - only one problem notification will be sent out, unless there has been a state change.
    • Notification Period: [Required] This directive is used to specify the short name of the time period during which notifications of events for his service can be sent out to contacts. No service notifications will be sent out during times which is not covered by the time period.
    • Notification Options: [Required] This directive is used to determine when notifications for the service should be sent out. Valid options are a combination of one or more of the following: If checked Unknown = send notifications on an UNKNOWN state, Critical = send notification on a CRITICAL state, Warning = send notifications on a WARNING state, Recovery = send notifications on recoveries in OK state. If you specify None as an option, no service notifications will be sent out.
    • Event Handler Enabled: [Optional] This directive is used to determine whether or not the event handler for this service is enabled. Unchecked = disable service event handler, Checked = enable service event handler.
    • Event Handler: [Optional] This directive is used to specify the short name of the command that should be run whenever a change in the state of the host is detected (i.e. whenever it goes down or recovers). The maximum amount of time that the event handler command can run is controlled by the event_handler_timeout option.
    • Flap detection enabled:[Optional] This directive is used to determine whether or not flap detection is enabled for this service. Unchecked = disable servie flap detection, Checked = enable service flap detection.
    • Low Flap Threshold: [Optional] This directive is used to specify the low state change threshold used in flap detection for this servie. If you set this directive to a value of 0, the program-wide value specified by the low_service_flap_threshold directive will be used.
    • High Flap Threshold: [Optional] This directive is used to specify the high state change threshold used in flap detection for this servie. If you set this directive to a value of 0, the program-wide value specified by the high_service_flap_threshold directive will be used.
    • Process Perf Data: [Optional] This directive is used to determine whether or not the processing of performance data is enabled for services using this template. Unchecked = disable performance data processing, Checked = enable performance data processing.
    • Retain status information: [Optional] This directive is used to determine whether or not status-related information about the service is retained across program restarts. This is obly useful if you have enabled state retention using the reatin_state_information directive. Unchecked = disable status information retention, Checked = enable status infromation retention.
    • Retain Non-status Information: [Optional] This directive is used to determine whether or not non-status information about the service is retained across program restarts. This is only useful if you have enable state retention using the retain_state_information directive. Unchecked = disable non-status information retention, Checked = enable non-status information retention.
    • Check Command: [Optional] Sets the default value. Select the command that Nagios will run in order to check the status of the service.
    • Command Line: [Optional] Sets the default value. If check command requires arguments, enter the check command with command arguments separated by a ! character. Example: check-disk!/dev/sda1
    • Contact Groups: Select the contact groups to be notified for this service.
  6. Select Add to add the new Service Template.

How do I setup Service Notifications?

This How To will review the steps to setup Service Notifications. Since you cannot create a Service without specifying a Template the only place you need to go to modify a notification is the template. A change to the notification criteria in a template will be carried to all Services which use the specific template. One might also consider using a Parent template so that these type of changes are propagated to all templates using the Parent.

Verify prerequisites for Service Notifications

Modify the Notification parameters in the Service Template



  1. Select the Services tab.
  2. Select Service Templates.
  3. Select Manage.
  4. Select the Service Template to modify.
  5. Enable the Notifications Enabled check box.
  6. Set the Notification Interval.
  7. Select the Notification Period from the defined time periods.
  8. Check the desired Notification Options. (Unknown, Critical, Warning, Recovery).
  9. Select Contact Groups to be contacted.
  10. Select Add to save the modification.

How do I create a Service Dependency Template?

This How To will step you through setting up a Service Dependencies. Service Dependencies allow you to suppress notifications and active checks of Services based on the status of one or more other Services.

Verify prerequisites

Setup Service Dependencies



  1. Select the Services tab.
  2. Select Service Dependency Templates.
  3. Select Design.
  4. Select Copy, or New.
  5. In the Service Dependency Template Properties screen, fill in the properties.
    • Name: Name of Service Dependency Template.
    • Service: [Required] Specify the parent Service name.
    • Execution Failure Criteria: [Optional] This directive is used to specify the criteria that determins when the dependent sevice should not be executed. If the service that is being depended upoin is in one of the failure states we specify, the dependent service will not be executed. Valid options are a combination of one or more of the following when checked: Okay = fail on an OK state, Warning = fail on a WARNING state, Unknown = fail on an UNKNOWN state, Critical = fail on a CRITICAL state. If you specify None as an option, the execution dependency will never fail and checks of the dependent service will always be executed. Example: If you check Okay, Unknown, and Critical, the dependent servie will not be executed if the service that is being depended upon is in either an OK, UNKNOWN, or CRITICAL state.
    • Notification Failure Criteria: [Required] This directive is used to define the criteria that determine when notifications for the dependent host should not be sent out. If the host that is being depended upon is in one of the failure staes we speciy, notifications for the dependent host will not be sent to contacts. Valid options are a combination of one or more of the following when checked: Okay = fail on an OK state, Warning = fail on a WARNING state, Unknown = fail on an UNKNOWN state, and Critical = fail on a CRITICAL state. If you specify None as an option, the notification dependency will never fail and notifications for the dependent service will always be sent out. Example: If you check Warning in this field, the notifications for the dependent service will not be sent out if the service that is being depended upon is in a WARNING state.
  6. Select Add to save the setup.

How Do I Create An Extended Service Info Template?

This How To will take you through the steps to create an Extended Service Info Template. Extended Service Info Templates are basically used to make the output from the status and extinfo CGIs look good. They have no effect on monitoring and are completely optional.

Configure an Extended Service Info Template



  1. Select the Services tab.
  2. Select Extended Service Info Templates.
  3. Select Design.
  4. Select Copy or New.
  5. In the Extended Service Info Template Properties screen, fill in the properties:
    • Name: Name of the Extended Service Info Template.
    • Notes URL: [Optional] Define a URL that can be used to provide additional information to other support staff about the Host, such as emergency contact methods.
    • Script: [Optional] This is an optional custom script. Enter a full path, file name and command line arguments.
    • Icon Image: [Optional] This varible is used to define the name of an image to be associated with this Host. This image will be displayed in the status and extended information CGIs.
    • Icon Image Alt: [Optional] This varible is used to define an optional string that is used in the Alt tag of the image specified by the Icon Image.
  6. Select Add to add the new Extended Service Info Template.

How do I setup Service Escalations?

A Service Escalation Template combines specified Contact Groups that are to be notified when a Service notification is escalated. A Service Escalation Tree is a grouping of multiple Service Escalation Templates which are then assigned to a Host, Host Profile, Host Group, or a Service. This How To will review the steps in defining Escalation Templates for Services and review the process of defining and assigning Service Escalation Trees. Service escalations are optional.

Verify prerequisites

Define a Service Escalation Template



  1. Select the Common tab.
  2. Select Escalation Templates.
  3. Select Design.
  4. Select the Escalation Type (Service).
  5. In the Service Escalation Template Properties screen fill in the properties:
    • Name: Name for the Service Escalation.
    • Service Description: [Required] This directive is used to identify the description of the Service the escalation should apply to.
    • Contact Groups: [Required] This directive is used to identify the short name of the Contact Group that should be notified when the Host or Service notification is escalated.
    • First Notification: [Required] This directive is a number that identifies the first notification for which this escalation is effective. For instance, if you set this value to 3, this escalation will only be used if the Host is down or unreachable long enough for a third notification to go out or if the Service is in a non-OK state long enough for a third notificaiton.
    • Last Notification: [Required] This directive is a number that identifies that last notification for which this escalation is effective. For instance, if you set this value to 5, this escalation will not be used if more than five notifications are sent out for the Host or Srvie. Setting this value to 0 means to keep using this escalaion entry forever (no matter how many notification go out).
    • Notification Interval: [Required] This directive is used to determine the interval at which notifications should be made while this escalation is valid. If you specify a value of 0 for the interval, Nagios will send the first notification when this escalation definition is valid, but will then prevent anymore problem notificaitons from being sent out for the Host. Notifications are sent out again until the Host recovers. This is useful if you want to stop having notifications sent out after a certain amount of time. Note: If multiple escalation entries for a Host overlap for one or more noification ranges, the smallest notification interval from all escalation entries is used.
  6. Select Add to create the escalation.

Define a Service Escalation Tree



  1. Select the Common tab.
  2. Select Escalation Trees.
  3. Select Design.
  4. Select the Escalation Type (Service).
  5. Enter a Name for the Service Escalation Tree.
  6. Select Next to go to the Escalation Tree screen.
  7. Highlight a defined Escalation Template and select Add Escalation.
  8. To delete an escalation select Remove next to the escalation to be removed.
  9. To modify an escalation's Contact Group select Modify Groups next to the escalation to be modified.

Assigning a Service Escalation Tree to a Service



  1. Select the Services tab.
  2. Select Services
  3. Select Manage.
  4. Select the Service to add a Service Escalation Tree to.
  5. Select Service Escalation Tree, the escalation detail will be displayed.
  6. Select Save.
  7. The Service with the Escalation Tree will be saved. You will be prompted with the following: "Apply to Services" will override all Service definitions using this Service name. If you wish to keep the existing Service definitions select "Continue". Select Apply to Services or Continue.

How Do I Create a New Service?

This How To will take you though the steps to create a new Service. A Service name can incorporate multiple definitions (Service Template, Check Command, Command Line, Service Dependency Template, Extended Service Info Template, and a Service Escalation Tree) in one place.

Verify prerequisites

Create a Service Name



  1. Select the Services Tab.
  2. Select Services.
  3. Select New.
  4. In the Service Name screen, enter the properties.
    • Service Name: Name of the new Service.
    • Description: [Optional] Store comments or instructions.
    • Service Template: [Required] This option sets the default template for the service name definitions.
    • Use Template Command: If checked, the Check Command and Command Line options are derived from the Service Template. Be careful to ensure the Service Template has a Check Command defined before checking this option.
    • Check Command: If the Use Template Command is unchecked, select the command that Nagios will run in order to check the status of the Service.
    • Command Line: If the Use Template Command is unchecked and if the Check Command requires arguments, enter the Check Command with command arguments separated by a ! character. Example: check-disk!/dev/sda1. Macros can be used in the command definition.
    • Service Dependency Template: [Optional] Select the template that defines a Parent Service relationship on a given Host. Monarch will create a Service Dependency relationship on a Host assigned this Service name. To define a dependency for a Service running on a different Host use Services>Service Dependency Templates.
    • Extended Info Template: [Optional] Defines Extended Service information for this Service name. The template controls the icon and URL link as seen in Nagios for Hosts assigned this Service definition.
    • Service Escalation Tree: [Optional] Select an Escalation Tree appropriate for this Service name. To avoid amplified notifications (i.e. multiple notifications for the same event), a Service Escalation assigned to a Service name should not also be assigned to the Host or the Host Group.
  5. Select Save to add the new Service Name.

How do I create a Service Profile?

This How To will step you through creating a Service Profile. Service Profiles store Service Names. Once you have a Service Profile you can combine this with a Host Template and create a Host Profile.

Verify prerequisites

Create a Service Profile



  1. Select the Services tab.
  2. Select Service Profiles.
  3. Select New.
  4. In the Service Profile screen, enter the following:
    • Service Profile Name: Name of the Service Profile.
    • Description: [Optional] Description of the Service Profile, comments or instructions.
    • Services: Services to include using Add and Remove. Note: To select multiple Services Names, use the Ctrl key while selecting; or to select a range, click on the first item, press the Shift key and select the last item.
    • File: [Required] Select the default file for services in the profile. To add files go to Control>Files>File Add.
  5. Select the File where these Service Definitions will be saved.
  6. Select Add to create the Service Profile.

How Do I Setup a Host or Service Configuration File?

This How To will step you through creating a Host or Service Configuration file. Object configuration files are used to define Hosts, Services, Host Groups, Contacts, Contact Groups, Commands, etc. This is where you define what things you want to monitor and how you want to monitor them.

Setup a Host or Service Configuration File



  1. Select the Control tab.
  2. Select Files.
  3. Select File-add.
  4. In the Add File screen, enter the following:
    • File Name: Name of the configuration file.
    • File Path: This should be set to /etc/nagios.
    • File Type: Select Hosts or Services.
  5. Select Add to create the Configuration file. Note: File associations can be viewed by going to Control>Files>File-assn.

How do I create a Host Template?

This How To will take you through the steps to create a new Host Template. You will be required to configure a Host Template, if one doesn't exist before creating a new Host. This is the minimum required configuration to add a Host.

Verify prerequisites

Configure a Host Template



  1. Select the Hosts tab.
  2. Select Host Templates.
  3. Select Design.
  4. Select Copy or New.
  5. In the Host Template Properties screen, fill in the properties.
    • Name: Name of Host Template.
    • Process Perf Data: [Optional] This directive is used to determine whether or not the processing of performance data is enabled for hosts using this template. Unchecked = disable performance data processing, Checked = enable performance data processing.
    • Retain Status Information: [Optional] This directive is used to determine whether or not status-related information about the host is retained across program restarts. This is only useful if you have enabled state retention using the retain_state_information directive. Unchecked = disable status information retention, Checked = enable status information retention.
    • Flap Detection Enabled: [Optional] This directive is used to determine whether or not flap dectiion is enable for hosts using this template. Uncheced = disable host flap detection, Checked = enable host flap detection.
    • Low Flap Threshold: [Optional] This directive is used to specify the low state change threshold used in flap detection for hosts using this template. If you set this directive to a value of 0, the program-wide value specified by the low_host_flap_threshold directive will be used.
    • High Flap Threshold: [Optional] This directive is used to specify the high state change threshold used in flap detection for hosts using this template. If you set this directive to a value of 0, the program-wide value specified by the high_host_flap_threshold directive will be used.
    • Retain Non-Status Information: [Optional] This directive is used to determine whether or not non-status information about the host is retained across program restarts. This is only useful if you have enable state retention using the retain_state_information directive. Unchecked = disable non-status information retention, Checked = enable non-status information retention.
    • Checks Enabled: [Optional] This directive is used to determine whether or not checks of hosts using this template are enabled. Unchecked = disable host checks, Checked = enable host checks.
    • Check Command: [Optional] This directive is used to specify the short name of the command that should be used to check if the host is up or down. Typically, this command would try and ping the host to see if it is alive. The command must return a status of OK (0) or Nagios will assume the host is down. If you leave this argument blank, the host will not be checked - Nagios will always assume the host is up. This is useful if you are monitoring printers or other devices that are frequently turned off. The maximum amount of time that the notification command can run is controlled by the host_check_timeout option.
    • Command Line: This directive is used to define what is actually executed by Nagios when the command is used for service or host checks, notifications, or event handlers. Note: The command line should also match how it will be executed at a command prompt. You may use Nagios macros here. These are substituted by Nagios before the command is executed. Typical macros include: $HOSTADDRESS$ - the Host's IP Address; $USER1$ - the Nagios plugin directory.
    • Max Check Attempts: [Required] This directive is used to define the number of times that Nagios will retry the host check command if it returns any state other than an OK state. Setting this value to 1 will cause Nagios to generate an alert without retrying the host check again. Note if you do not want to check the status of the host, you must still set this to a minimum value of 1. To bypass the host check, just leave the check_command option blank.
    • Event Handler Enabled: [Optional] This directive is used to determine whether or not the event handler for hosts using this template is enabled. Unchecked = disable host event handler, Checked = enable host event handler.
    • Event Handler: [Optional] This directive is used to specify the short name of the command that should be run whenever a change in the state of the host is detected (i.e. whenever it goes down or recovers). The maximum amount of time that the event handler command can run is controlled by the event_handler_timeout option.
    • Notifications Enabled: [Optional] This directive is used to determine whether or not notifications for hosts using this template are enabled. Unchecked = disable host notifications, Checked = enable host notifications.
    • Notification Interval: [Required] This directive is used to define the number of time unitsto wait before re-notifying a contact that this server is still down or unreachable. Unless the interval_length directive has been changed from the default value of 60, this number will mean minutes. If you set this value to 0, Nagios will not re-notify contacts about problems for hosts using this template - only one problem notification will be sent out.
    • Notification Period: [Required] This directive is used to specify the short name of the time period during which notifications of events for hosts using this template can be sent out to contacts. If a host goes down, becomes unreachable, or recoveries during a time which is not covered by the time period, no notifications will be sent out.
    • Notification Options: [Required] This directive is used to determine when notifications for the host should be sent out. Valid options are a combination of one or more of the following when checked: Down = send notifications on a DOWN state, Unreachable = send notifications on an UNREACHABLE state, Recovery = send notifications on recoveries (OK state). If you specify None as an option, no host notifications will be sent out. Example: If you specify Down and Recover, notifications will only be sent out when the host goes DOWN and when it recovers from a DOWN state.
    • Stalking Options: [Optional] This directive determines which host states stalking is enabled. Valid options are a combination of one or more of the following when checked: Down = stalk on DOWN states, Up = stalk on UP states, Unreachable = stalk on UNREACHABLE states.
  6. Select Add to add the new Host Template, you will be notified that the new Host has been saved.
  7. Select Continue to return to the main menu.

How do I setup Host Notifications?

This How To will review the steps to setup Host Notifications. Since you cannot create a Service without specifying a template the only place you need to go to modify a Notification is the template. A change to the Notification criteria in a template will be carried to all Services which use the specific template. One might also consider using a Parent template so that these type of changes are propagated to all templates using the Parent.

Verify prerequisites for Host Notifications

Modify the Notification parameters in the Host Template



  1. Select the Hosts tab.
  2. Select Host Templates.
  3. Select Manage.
  4. Select the Host Template to modify.
  5. Enable the Notifications Enabled check box.
  6. Set the Notification Interval.
  7. Select the Notification Period from the defined time periods.
  8. Check the desired Notification Options (Down, Unreachable, Recovery).
  9. Select Save to save the modification.

How do I Setup Host Group Escalations?

A Host Group Escalation Template combines specified Contact Groups that are to be notified when a Host Group notification is escalated. A Host Group Escalation Tree is a grouping of multiple Host Group Escalation Templates which is then assigned to a Host, Host Profile, Host Group, or a Service. This How To will review the steps in defining Host Group Escalation Templates and review the process of defining and assigning Host Group Escalation Trees. Host Group escalations are optional.

Verify prerequisites

Define a Host Group Escalation Template



  1. Select the Common tab.
  2. Select Escalation Templates.
  3. Select Design.
  4. Select the Escalation Type (Host Group).
  5. In the Host Group Escalation Template Properties screen fill in the properties:
    • Name: Name for the Host Group Escalation.
    • Contact Groups: [Required] This directive is used to identify the short name of the Contact Group that should be notified when the Host or Servie notification is escalated.
    • First Notification: [Required] This directive is a number that identifies the first notification for which this escalation is effective. For instance, if you set this value to 3, this escalation will only be used if the Host is down or unreachable long enough for a third notificaiton to go out or if the Service is in a non-OK state long enough for a third notification.
    • Last Notification: [Required] This directive is a number that identifies the last notification for which this escalation is effective. For instance, if you set this value to 5, this escalation will not be used if more than five notifications are sent out for the Host or Service. Setting this value to 0 means to keep using this escalation entry forever (no matter how many notifications).
    • Notification Interval: [Required] This directive is used to determine the interval at which notifications should be made while this escalation is valid. If you specify a value of 0 for the interval, Nagios will send the first notification when this escalation definition is valid, but will then prevent any more problem notifications from being sent out for the Host. Notifications are sent out again until the Host recovers. This is useful if you want to stop having notifications sent out after a certain amount of time. Note: If multiple escalation entries for a Host overlap for one or more notification ranges, the smallest notification interval from all escalation entries is used.
  6. Select Add to create the escalation.

Define a Host Group Escalation Tree



  1. Select the Common tab.
  2. Select Escalation Trees.
  3. Select Design.
  4. Select the Escalation Type (Host Group).
  5. Enter a Name for the Escalation Tree.
  6. Select Next to go to the Escalation Tree screen.
  7. Highlight a defined Escalation Templates and select Add Escalation.
  8. To delete an escalation select Remove next to the escalation to be removed.
  9. To modify an escalation's Contact Group select Modify Groups next to the escalation to be modified.

Assigning a Host Group Escalation Tree to a Host Name



  1. Select the Hosts tab.
  2. Select Host Groups
  3. Select Manage.
  4. Select the Host Group to assign a Host Group Escalation Tree to.
  5. Select a Host Group Escalation Tree.
  6. Select Save.

How do I create a Host Group?

This How To will take you through the steps to create a new Host Group. A Host Group definition is used to group one or more hosts together for the purposes of simplifying notifications. Each Host that you define must be a member of at least one Host Group - even if it is the only Host in that Group. Hosts can be in more than one Host Group. When a Host goes down, becomes unreachable, or recovers, Nagios will find which Host Group(s) the Host is a member of, get the Contact Group for each of those Host Groups, and notify all Contacts associated with those Contact Groups. Host Groups allow for flexibility in determining who gets paged for what kind of problems.

Verify prerequisites

Configure a Host Group



  1. Select Hosts.
  2. Select Host Groups.
  3. Select Design.
  4. Select Copy or New.
  5. In the Host Group Properties screen, fill in the properties.
    • Name: Name of the Host Group
    • Alias: [Required]This directive is used to define a longer name or description used to identify the Host Group. It is provided in order to allow you to more easily identify a particular Host Group.
    • Members: [Required] This is a list of the short names of Hosts that should be included in this group.
    • Contact Groups: [Required] This is a list of Contact Groups that should be notified whenever there are problems (or recoveries) with any of the Hosts in this Host Group)
    • Host Group Escalation ID: [Optional] Select the Host Group Escalation Tree applicable to this Host Group. NOte Nagios 2.x users may use this directive or the Host Escalation ID directive to achieve the same result).
    • Host Escalation ID: [Optional] Select the Host Escalation Tree applicable to this Host Group. All Hosts in the Host Group receive the same Host Escalation.
    • Service Escalation ID: [Optional] Select the Service Escalation Tree applicable to this Host Group. All services on each Host in the Host Group receive the same Host Escalation.
  6. Select Add to add the new Host Group, you will be notified that the new Host Group has been saved.
  7. Select Continue to return to the main menu.

How do I create a Host Dependency Template?

Verify prerequisites

This How To will step you through setting up Host Dependencies. Host Dependencies allow you to suppress notifications for Hosts based on the status of one or more other Hosts. Service Dependencies allow you to suppress notifications and active checks of Services based on the status of one or more other Services.

Setup Host Dependencies



  1. Select the Hosts tab.
  2. Select Host Dependencies.
  3. Select Design.
  4. In the Host Dependency Properties screen, select the Host.
  5. Select the Parent for the Host.
  6. Select the Notification Failure Criteria.
  7. Select Add to create the dependency.

How do I create an Extended Host Info Template?

This How To will take you through the steps to create an Extended Host Info Template. Extended Host information entries are basically used to make the output from the status, statusmap, statuswrl, and extinfo CGIs look good. They have no effect on monitoring and are completely optional.

Configure an Extended Host Info Template



  1. Select the Hosts tab.
  2. Select Extended Host Info Templates.
  3. Select Design.
  4. Select Copy or New.
  5. In the Host Template Properties screen, fill in the properties.
    • Name: Name of Extended Host Info Template
    • Notes URL: [Optional] This option is used to define a URL that can be used to provide more information about the Host. If you specify a URL, you will see a link that says Notes About This Host in the extended information CGI (when you are viewing information about the specified Host). Any valid URL can be used. If you plan on using relative paths, the base path will be the same as what is used to access the CGIs (i.e./cgi-bin/nagios/). This can be very useful if you want to make detailed information on the Host, emergency contact methods, etc. available to other support staff. Also, as this is a template, you may use macros $HOSTNAME$ and $HOSTADDRESS$ in the URL.
    • Script: [Optional] This is a custom script. Enter full path, file name and command line arguments. Use Control>Run Extended Info Scripts to execute custom scripts for objects assigned this template. Arguments can include $HOSTNAME$ and $SERVICENAME$macros.
    • Icon Image: [Optional] This variable is used to define the name of a GIF, PNG, or JPG image that should be associated with this Host. This image will be displayed in the status and extended information CGIs. The image will look best if it is 40x40 pixels in size. Images for Hosts are assumed to be in the logos/subdirectory in your HTML images directory (i.e./usr/local/nagios/share/images/logos).
    • Icon Image Alt: [Optional] This variable is used to define an optional string that is used in the ALT tag of the image specifed by the icon_image argument. The ALT tag is used in the status, extended information and statusmap CGI's.
    • VRML Image: [Optional] This variable is used to define the name of a GIF, PNG, or JPG image that should be associated with this Host. This image will be used as the texture map for the specified Host in the statuswrl CGI. Unlike the image you use for the icon_image variable, this one should probably not have any trasparency. If it does, the Host object will look a bit weird. Images for Host are assumed to be in the logos/subdirectory in your HTML images directory (i.e./usr/local/nagios/share/images/logos).
    • Status Map Image: [Optional] This variable is used to define the name of an image that should be assocaited with this Host in the statusmap CGI. You can specify a JPEG, PNG, and GIF image if you want, although it is strongly suggested to use a GD2 format image, as other image formats will result in a lot of wasted CPU time when the statusmap image is generated. GD2 images can be created from PNG images by using the pngtogd2 utility supplied with Thomas Boutell's GD Library. The GD2 images should be created in uncompressed format in order to minimize CPU load when the statusmap CGI is generating the network map image. The image will look best if it is 40x40 pixels in size. You can leave this option blank if you are not using the statusmap CGI. Images for Hosts are assumed to be in the logos/subdirectory in your HTML images directory (i.e./usr/local/nagios/share/images/logos).
    • 2D Coords: [Optional] This variable is used to define coordinates to use when drawing the Host in the statusmap CGI. Coordinates should be given in positive integers, as they correspond to physical pixels in the generated image. The origin for drawing (0,0) is in the upper left hand corner of the image and extends in the positive x direction (to the right) along the top of the image and in the positve y direction (down) along the left hand side of the image. For reference, the size of the icons drawn is usually about 40x40 pixels (text takes a little extra space). The coordinates you specify here are for the upper left hand corner of the Host icon that is drawn. Note: Don't worry about what the maximum x and y coordinates that you can use. The CGI will automatically calculate the maximum dimensions of the image it creates based on the largest x and y corrodinates you specify.
    • 3D Coords: [Optional] This variable is used to set coordinates to use when drawing the Host in the statuswrl CGI. Coordinates can be positive or negative real numbers. The origin for drawing is (0.0,0.0,0.0). for reference, the size of the Host cubes drawn is 0.5 units on each side (text takes a little more space). The coordinates you specify here are used as the center of the Host cube.
  6. Select Add to add the new Extended Host Info Template, you will be notified that the new template has been saved.
  7. Select Continue to return to the main menu.

How do I setup Host Escalations?

A Host Escalation Template combines specified Contact Groups that are to be notified when a Host notification is escalated. A Host Escalation Tree is a grouping of multiple Host Escalation Templates which is then assigned to a Host, Host Profile, Host Group, or a Service. This How To will review the steps in defining Host Escalation Templates for Services, Hosts, and Host Groups and review the process of defining and assigning Escalation Trees. Host escalations are optional.

Verify prerequisites

Define a Host Escalation Template



  1. Select the Common tab.
  2. Select Escalation Templates.
  3. Select Design.
  4. Select the Escalation Type (Host).
  5. In the Host Escalation Template Properties screen fill in the properties:
    • Name: Name for the Host Escalation.
    • Contact Groups: [Required] This directive is used to identify the short name of the Contact Group that should be notified when the Host or Service notification is escalated.
    • First Notification: [Required] This directive is a number that identifies the first notification for which this escalation is effective. For instance, if you set this value to 3, this escalation will only be used if the Host is down or unreachable long enough for a third notificaiton to go out or if the Service is in a non-OK state long enough for a third notification.
    • Last Notification: [Required] This directive is a number that identifies the last notification for which this escalation is effective. For instance, if you set this value to 5, this escalation will not be used if more than five notifications are sent out for the Host or Service. Setting this value to 0 means to keep using this escalation entry forever (no matter how many notifications go out).
    • Notification Interval: [Required] This directive is used to determine the interval at which notifications should be made while this escalation is valid. If you specify a value of 0 for the interval, Nagios will send the first notification when this escalation definition is valid, but will then prevent any more problem notifications from being sent out for the Host. Notifications are sent out again until the Host recovers. This is useful if you want to stop having notifications sent out after a certain amount of time. Note: If multiple escalation entries for a Host overlap for one or more notification ranges, the smallest notification interval from all escalation entries is used.
  6. Select Add to create the escalation.

Define a Host Escalation Tree



  1. Select the Common tab.
  2. Select Escalation Trees.
  3. Select Design.
  4. Select the Escalation Type (Host).
  5. Enter a Name for the Escalation Tree.
  6. Select Next to go to the Escalation Tree screen.
  7. Highlight a defined Escalation Templates and select Add Escalation.
  8. To delete an escalation select Remove next to the escalation to be removed.
  9. To modify an escalation's Contact Group select Modify Groups next to the escalation to be modified.

Assigning a Host Escalation Tree to a Host.



  1. Select the Hosts tab.
  2. Select an option to find a Host;
    • Search Hosts by name: Enter the full or partial Host name.
    • Hosts by Host Address: Enter the full or partial IP Address
    • Hosts by Host Group: Select a Host Group then a Host name.
    • Hosts by Parent: Select a Parent then a Host name.
  3. Select the Escalations tab.
  4. Select defined Host Escalation Tree, the escalation detail will be displayed.
  5. Select Save.

How do I create a Host Profile?

This How To will step you through creating a Host Profile. Host Profiles store Host Templates and Service Profiles. Once you have a Host Profile you can apply this combined definition for example to 50 specific web servers.

Verify prerequisites

Name the Profile



  1. Select the Hosts tab.
  2. Select Host Profiles.
  3. Select New.
  4. In the Host Profile screen, enter the name of the new Host Profile.
  5. Select Add to add the new Host Profile and continue on to the various Host Profile screens.

Define the Profile



  1. In the Host Profile screen you can define the following information under each of the displayed tabs:
    • Profile: Enter the Extended Host Info Template and the Host file to store the configuration statements.
    • Template: Select the Host Template to apply.
    • Parents: Add the Parent Hosts.
    • Host Groups: Add the Host Groups to this Host Profile.
    • Escalations: Enter Host or Service Escalation Trees.
    • Services: Enter Service Profile for this Host Profile.
  2. Select Save to create the new Host Profile.

How do I create a new Host?

This How To will take you through the steps to create a new Host. You will be required to configure a Host Template, if one doesn't exist (see How To Create A Host Template). This is the minimum required configuration to add a Host. You should consider creating a Host Profile also (see How To Create A Host Profile)), especially if you have several Hosts for which monitoring is the same or similar.

Verify prerequisites

Create a new Host - Host Vitals

To create a Host you will continue through several steps including defining Host Vitals, Host Attributes 1 and 2, and Selecting Host Services to add specific Services to this Host. A Host Template does not need to be created for each Host. Templates store common properties of Hosts which are often used over when creating new Hosts. When creating a new Host if a Host Profile is chosen the fields Parents, Host Groups, Extended Host Info, Host Escalation Tree, and Service Escalation Tree will be automatically populated and can be modified.



  1. Select Hosts.
  2. Select New Host Wizard.
  3. In the Host Vitals Screen fill in the properties.
    • Name: Name of the new Host.
    • Alias: [Required] This directive is used to define a longer name or description used to identify the Host. It is provided in order to allow you to more easily identify a particular Host.
    • Address:[Required] This directive is used to define the address of the Host. Normally, this is an IP address, although it could really be anything you want (so long as it can be used to check the status of the Host). You can use a FQDN to identify the Host instead of an IP address, but if DNS services are not available this could cause problems. When used properly, the $HOSTADDRESS$ macro will contain this address. Note: If you do not specify an address directive in a Host definition, the name of the Host will be used as its address. A word of caution about doing this, however - if DNS fails, most of your Service checks will fail because the plugins will be unable to resolve the Host name.
    • Host Profile:[Optional] Host Profiles can be used to aid the desing and management of Hosts.
  4. Select Next to go to the Host Properties 1 screen.

Create a New Host - Host Properties 1



  1. Select a required Host Template.
  2. Add to the Host one or more Parents (optional).
  3. Select a required configuration file; this indicates the configuration file where the Host definition will be stored after executing a Pre Flight Test or Commit. You might want to store Hosts of different types in different files, i.e. UNIX Hosts in hosts_unix.cfg, network Hosts in hosts_network.cfg, etc.
  4. Select Next to go to the Host Properties 2 screen.

Create a new Host - Host Properties 2



  1. Assign this Host one or more Host Groups; this directive is optional but recommended. Note: You will get a warning message during Commit or Pre Flight Test if a Host is not a member of any Host Group. You can define a Host Group now but it must have one or more members, so it may be better to finish with the Host first.
  2. Select an Extended Host Info Template (optional).
  3. Enter map coordinates for 2D and 3D Status Map Coordinates (optional).
  4. Select a Host Escalation Tree; This directive is optional. Select if the escalation of Host notifications is required.
  5. Select a Service Escalation Tree (optional). Select if escalation of Service Notifications for Services on this Host is required.
  6. Select a Service Profile for this Host (optional). Service Profiles assign a pre-defined set of Services to a Host.
  7. Select Next to go to the Select Services screen.

Create a new Host - Select Services



  1. Select the Service Configuration file; This is the location where these Service Definitions will be stored. Note: If you selected a Service Profile in the previous page (Host Attributes 2), the Service Names in that Service Profile will show in the form.
  2. Select Add to List to add Services to this Host; Select the Services to remove by selecting the Discard radio button. Select Services to modify by selecting the Modify radio button. If you selected Modify for any Services, a form with the check command and command line for each selected Service will be displayed for modifying. If you need to change any of these definitions, use Manage>Hosts to select and modify the settings.
  3. Select Next to complete the New Host Wizard.
  4. In the Completed screen, select Save as Profile to save this new Host as a Host Profile or select Continue to complete the definition of this Host.

How do I create a new Host Profile from the New Host Wizard?

This How To will take you through the steps to create a new Host Profile using the New Host Wizard. You will be required to configure a Host Template, if one doesn't exist (see How To Create A Host Template). This is the minimum required configuration to add a Host. Host Profile are useful if you have several Hosts for which monitoring is the same or similar.

Verify prerequisites

Creating a Host Profile from the New Host Wizard - Start the New Host Wizard

To create a Host Profile you will continue through several steps including defining Host Vitals, Host Properties 1 and 2, and selecting specific Services for this Host. A Host Template does not need to be created for each Host. Templates store common properties of Hosts which are often used over when creating new Hosts. When creating a new Host if a Host Profile is chosen the fields Parents, Host Groups, Extended Host Info, Host Escalation Tree, and Service Escalation Tree will be automatically populated and can be modified.



  1. In the Host Vitals screen select Hosts.
  2. Select New Host Wizard.
  3. Enter a Name for the new Host.
  4. Enter an Alias for the new Host. This directive is used to define a longer name or description used to identify the Host.
  5. Enter a required IP address for the new Host. This directive is used to define the address of the Host.
  6. A pre-defined Host Profile is optional and may be selected as part of the new Host definition. Host Profiles can be used to aid the design and management of Hosts. Select a Host Profile from the drop-down box if you choose to add an existing Host Profile.
  7. Select Next to go to the Host Properties 1 screen.

Creating a Host Profile from the New Host Wizard - Host Properties 1



  1. In the Host Properties 1 screen, select a (required) Host Template from the drop-down box.
  2. Select one or more Parent Hosts to be defined in the new Host, this is optional. To select multiple Parents, use the CTRL key and select various items, or press the SHIFT key to select contiguous items.
  3. Select the File where the Host definition will be saved.
  4. Select Next to go to the Host Properties 2 screen.

Creating a Host Profile from the New Host Wizard - Properties 2



  1. Enter information in the Host Properties 2 screen:
    • HostGroups: [Optional] Select one or more HostGroups to be added to the Host Definition. A host group definition is used to group one or more Hosts together for the purposes of simplifying notifications.
    • Extended Host Info Template: [Optional] Select a pre-defined Extended Host Info Template from the drop-down box. Extended Host Information entries are basically used to make the output from the status, statusmap, statuswrl, and extinfo CGIs look good and have no effect on monitoring.
    • 2D Status Map Coords: [Optional] Type the 2D Status Map coordinats to be used for this Host. This variable is used to define coordinates used when drawing the Host in the statusmap CGI.
    • 3D Status Map Coords: [Optional] Type the 3D Status Map coordinates to be used for this Host. This variable is used to define coordinates used when drawing the Host in the statuswrl CGI.
    • Host Escalation Tree: [Optional] Select a pre-defined Host Escalation Tree. Host Escalation Trees (multiple Host Escalation Templates) are used to escalate notifications for a particular Host.
    • Service Escalation Tree: [Optional] Select a pre-defined Service Escalation Tree. Service Escalation Trees (a grouping of multiple Service Escalation Templates) are used to escalate notifications for a particular Host.
    • Service Profile: [Optional] Select a pre-defined Service Profile to add to the Host definition. This sets up a default set of Services.
  2. Select Next to go to the Select Services screen.

Creating a Host Profile from the New Host Wizard - Select Services



  1. Enter information in the Select Services screen:
    • File: [Required] Select the Service Configuration file. This is the location where these Servie definintions will be stored. Note: If you selected a Service Profile in the previous page (Host Attributes 2), the Service Names in that Service Profile will show in the form.
    • Select other service(s): Select listed Services to add to this Host. To select multiple Services, use the CTRL key and select various items, or press the SHIFT key to select contiguous items and then select Add to List.


  2. The selected Services will then be listed as displayed in this diagram. Here you can select to Modify or Discard specific Services.
  3. Select Next to go to the New Host Wizard screen.




  4. This screen displays the new Host name and selected Services. Select Save as Profile to save the new Host as a Host Profile.




  5. Select Save again to Save the New Host.

How do I Change Services for an Existing Host?

This How To will take you though several steps to add Services to a Host including; Verifying prerequisites, Applying Services to and Existing Host, Changing a Service by applying a different Service Profile, and Changing Services by modifying the Service definition for this Host. You can apply or modify Services for a Host while creating a new Host in the Host Wizard.

Verify prerequisites

Change a Service by applying a different Service Profile



  1. Select the Hosts tab.
  2. Select an option to find the Host;
    • Search Hosts by name: Enter the full or partial Host name.
    • Hosts by Host Address: Enter the full or partial IP Address
    • Hosts by Host Group: Select a Host Group then a Host name.
    • Hosts by Parent: Select a Parent then a Host name.
  3. Select the Profile tab.
  4. You may either: Select a Host Profile in which the Service Profile associated with that Host Profile will be applied, or select a Service Profile to be applied.
  5. Select Save. Note: You will then have the option to select Apply Profile to Host which will apply the newly saved Profile to the Host.

Change Services by modifying the Service definition for this Host



  1. Select Hosts.
  2. Select an option to find the Host;
    • Search Hosts by name: Enter the full or partial Host name.
    • Hosts by Host Address: Enter the full or partial IP Address
    • Hosts by Host Group: Select a Host Group then a Host name.
    • Hosts by Parent: Select a Parent then a Host name.
  3. Select the Services tab.
  4. Choose a Service and select Add Service(s) Note: If you have assigned Service Profiles to Hosts, you can add a Service by updating the Service Profile, then applying it to all Hosts.

How do I run a Pre-Flight Test?

This How To will review the steps to run a Pre-Flight test. The Pre-Flight test is the equivalent of the -v command line argument: /usr/local/nagios/bin/nagios -v <main_config_file>. This test verifies that you have defined the data relationships necessary for monitoring. In Nagios objects are all related and the Pre-Flight check verifies if they are set up properly.

Nagios will attempts to check the following before it will start monitoring:

  • Verify all contacts are a member of at least one contact group.
  • Verify all contacts specified in each contact group are valid.
  • Verify all hosts are a member of at least one host group.
  • Verify all hosts specified in each host group are valid.
  • Verify all hosts have at least one service associated with them.
  • Verify all commands used in service and host checks are valid.
  • Verify all commands used in service and host event handlers are valid.
  • Verify all commands used in contact service and host notifications are valid.
  • Verify all notification time periods specified for services, hosts, and contact are valid.
  • Verify all service check time periods specified for services are valid.

Run a Pre-Flight Test



  1. Select Control.
  2. Select Pre-Flight-Test. Once the Pre-Flight test has finished a list of any warnings or errors will be displayed. Error messages generally print out the line in the configuration file that seems to be the source of the problem. With any errors you may receive you will need to edit your configuration files to remedy the problem and rerun a Pre-Flight test.

How do I run Commit?

This How To will review the steps to commit files into your production configuration using the Monarch Commit option.

Run the Commit command



  1. Select Control.
  2. Select Commit. You will be prompted with the message to overwrite the active Nagios configuration or to backup first. If you backup you will receive a message indicating the backup is complete. You can then select to Commit. You will receive a message indicating results and any errors.