GROUNDWORK MONITOR ARCHITECT (MONARCH) Administrator Guide 2.0
Copyright 2006 GroundWork Open Source, Inc. (“GroundWork”).All rights reserved. Use is subject to GroundWork commercial license.
|This section covers the overall configuration process for GroundWork Monitor Open Source. GroundWork bases this software on Nagios®, an open source network-management application, and enables you to more easily and rapidly set-up and maintain your IT system by allowing you to configure it through the Configuration web-based interface rather than having to manually edit actual configuration files. Configuration is the first step in working with GroundWork Monitor Open Source. This section will detail configuration of the monitoring environment.
GroundWork’s configuration (Configuration or Monarch) application is a full-featured, easy-to-use web based system for use with Nagios®. Configuration consists of a set of tools that allow a user to easily configure and maintain Nagios® or GroundWork Monitor Open Source. Configuration fills a key functionality gap of Nagios®: the required use of a command line text editor to configure by hand the monitoring system for each monitored application, Service, device, etc. GroundWork Monitor Architect (Monarch) is GroundWork’s open source version for the same package.
Managing your information systems starts with availability and performance measurement. GroundWork Monitor Open Source provides the measurements that are the foundation of good IT management. Using this package to make these measurements is straightforward. For current Nagios® users, Configuration writes and reads Nagios® configuration files, enabling it to easily be integrated into an existing installation. You can simply install the package and import your existing configuration. Experienced Nagios® users can edit the Nagios® configuration files and use Configuration interchangeably. If you are new to Nagios®, you can choose to input your configurations into the web interface under Configuration, create a spreadsheet or delimited text file to import, or configure Nagios® from scratch via text files.
Beginner and advanced configuration options also provide rapid time-to-value through mass Host import or guided discovery to import Hosts and assign monitoring Profiles. Post-installation, using Configuration, simplifies maintenance of the monitoring system when adds, changes and deletes are made to the IT infrastructure.
Architectural View of Configuration
Configuration is a set of .cgi scripts written in Perl. When performing a Configuration Load operation all of the Nagios® configuration files get updated in the MySQL monarch database, mirroring the entire configuration in the database. Configuration then operates by manipulating this database. In addition to the Nagios® configuration information there are extra data structures that Configuration uses to add functionality, such as; Host and Service Profiles, Escalation Trees, and Configuration access rights.
Once you are finished making modifications, you can execute the Pre Flight Test, equivalent of the Nagios® -v command, to provide options for controlling your production configuration. 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 not been affected providing you the opportunity to view and manually manipulate the configuration files.
Configuration also gives you the capability to commit the files into your production configuration. The Commit command will make a backup of your old configuration in a separate backup directory and copy the updated configuration files back into your production
Figure 5.1.1a. Architectural View of Configuration
Structure of Configuration Concepts
Host and Service Templates
Host and Service Templates store common object properties that are used to define multiple Hosts and Services. Templates are used to reduce the number of repetitive entries when defining objects. For example, when defining a new Host you would first create a Host Template with common properties. Then, to define a specific Host, you apply the properties using a Host Template. You would define a new Service in the same way, starting with a Service Template and applying the template to the Service Definition.
Figure 5.1.1b. Host and Service Templates and Definitions
A Service in Configuration is a combination of a Service Template and a Service Definition. A Service is generic until it has been applied to a specific Host. A Host, when fully implemented, has a Host Template, a unique Host Definition, and Services.
Figure 5.1.1c. Fully Implemented Host
A Service Profile is a collection of multiple Services. Configuration uses device-specific profiles that contain both pre-defined and user-definable monitoring parameter settings. Using Profiles, Administrators can quickly configure GroundWork Monitor Open Source to monitor groups of similar devices and benefit from GroundWork’s deep expertise in monitoring design recommended practices. Example: You have 50 web servers on which you will want to monitor CPU, memory, disk, http, and apache processes. Instead of creating 50 definitions you would create a Service Definition for each Service CPU, memory, disk, etc. You can then create a Service Profile called Web Monitoring and include all of the Services in the Service Profile. You would then associate this Service Profile with each of the 50 web servers. Configuration does this with a Host Profile.
Figure 5.1.1d. Service Profiles
Once you have a Service Profile defined you can combine it 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. 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, which will then be applied to all 50 web servers.
Figure 5.1.1e. Host Profiles
Configuration User Interface
When you start the Configuration application you will see the menu items listed in the table below. Here, each menu item is briefly described with specific category options listed in the next row. The menu options are listed in a most likely use of left to right, although it depends on your design and management needs at the time as to what item you will start with.
Table 5.1.1a. Menu Items
This chapter will help you determine what users can do with configuration, and how it integrates into your environment. You will notice there is one system group super_users and one system user account super_user. The user account super_user has complete access to everything and members of the group super_users are granted the equivalent of super_user privileges. Please note that the super_users group does not have an access list, and that neither the super_users group nor the super_user account can be removed from the system.
The steps you will need to follow are:
Table 5.1.2a. Security Configuration
Access Values – General
Figure 5.1.2c. Access Values – General
Table 5.1.2c. Access Values – General
Access Values – Groups
Figure 5.1.2d. Access Values – Groups
Table 5.1.2d. Seting Group Access
Access Values – EZ Interface
Figure 5.1.2e. Access Values – EZ
Table 5.1.2e. Setting EZ Access
This chapter will get you started with configuration using the feature Configuration EZ. Configuration EZ allows you to more easily configure your monitoring system by providing access to the most commonly used configuration functions. As the main prerequisite for EZ to be effective, Host Profiles must already be defined. An advanced Administrator can use the standard Configuration option to define all the settings associated with a Host Profile. The task of assigning and implementing Profiles to the monitoring system can be accomplished using EZ.
There are several options one may use to get started with an initial configuration. One can simply use the existing commands, Services, and Profiles to set up monitoring on Hosts, import an existing Nagios® configuration, or configure Nagios® in the usual way using text files, and load the results.
The Configuration EZ option makes use of the Profiles to simplify the addition of new Hosts. Once Host and Service Profiles are selected and configured, they are available to be used in Configuration EZ. The Administrator can import delimited text files, run guided network discovery, or simply input Host details with the new Host wizard. Once input, these Hosts can be assigned to Profiles, and implemented in the system. The Configuration EZ application is provided under a separate application option to allow delegation of simple changes to various Administrators. The advanced options such as setting up new Services and Service Profiles, or making global changes can be performed by another system Administrator with the advanced knowledge needed.
Finally, one can set up a Nagios® server in the usual way, and import configurations as described above. This method is sometimes preferable for Nagios® users simply because it avoids the need to learn how Configuration works before getting to use it on a large number of Hosts and Services, and because the act of loading an existing configuration creates all the Service definitions that can then be used to create Profiles. It is a matter of choice, which is what Open Source is all about. The functions EZ provides are:
Table 5.2.0. Configuration EZ Functions
Defining a Host Manually
Defining Hosts Using Import
If you have Host information in a file, such as a spreadsheet, the Import tool will allow you to upload that file to the GroundWork Monitor server, map file fields to Host definitions, and selectively import the new Host definitions into the configuration database. The minimum data that is required for the Import tool includes Name, Alias and Address.
Defining Hosts Using Discover
The Configuration Discover option uses network discovery protocols to automatically generate a list of Hosts which you may import. The Nmap tool is used to scan the ports of the designated IP address range. Based on this scan, a list of Hosts including the Host name, IP address, and operating system are displayed. You may then select the Hosts you wish to import into the monitoring system configuration. Note: The system must be configured to enable reverse DNS lookups in order to generate the correct Host name, if not, the IP address will be used as the Host name.
Modifying Existing Hosts
Once a Host is imported using any other methods above, you can modify the Host settings. To find a Host, expand the Host node in the navigation tree, then select Host from the list. An alternate way of finding a Host is to use the Search option. Start typing the name of the Host you want. As you type each letter, a list of Hosts that match will dynamically appear. You can then select the name the Host in the list. Once you select a Host, you can modify the Alias, IP Address, Host Group or Host Profile for that Host.
Figure 5.2.1c4. Modifying Existing Hosts
This option allows you to create a new Host Group, and assign existing Hosts to a Host Group.
This option allows you to assign existing Host Profiles to Hosts.
In Configuration EZ you can use the Notifications option to add and change basic contact data including turning Notifications on or off, creating Time Periods for Notifications, and defining Notification Contacts. To set up Notifications you will need to associate a Contact with a Host or Service, or set up an Escalation Tree. You can set up Escalation Trees so that some groups get notified for a while and others are escalated to. These trees define who gets notified and when, and you can then assign the tree to individual Hosts, Services, or Host and Service Groups.
You can dive into these areas further using the Configuration option to manage the assignment of Contacts to Contact Groups. Just create a Contact Group and add Contacts to it. This group can then be assigned to Host Groups, which will make the members default Contacts for all Host problems that are detected within the group. You can do the same with Services, Service Groups, and Hosts, if you prefer. Note: Services require the default Contact Group to be assigned for Notifications to occur unless you are using Escalations. For more information see Section 4 Configuring GroundWork Monitor Open Source in this guide.
Step 1 – Defining a New Time Period
Step 2 – Defining a New Contact
Step 3 – Turning On Notifications
Any changes made with the configuration tool are not effective until the change is committed. This option provides the processes for committing changes to the monitoring system.
Note: Before committing, your are advised to run the Preflight Test option. This option will check the configuration for errors, but will not implement the change. If there are any errors, they will be listed in the Nagios® Pre Flight Test window after the PreFlight Test option is selected.
To implement the change, select the Commit option on the navigation tree. You will be presented with an option to Abort, Backup or Commit. The Backup option will make a copy of the current Nagios® configuration files (before the changes are applied) and execute a database dump of the monarch configuration database. By default, these are placed in a timestamped directory in
This option allows you to set up default values that will be applied when new definitions are created.
This chapter will focus on Service configuration. This reference is intended to provide you with a more detail look into all aspect of Service configuration. Each How to takes you step by step through the configuration process. Before starting, check the list below each How to to view any required prerequisites.
A Service definition is used to identify a Service that runs on a Host. A Service can be an actual Service that runs on the Host (POP, SMTP, HTTP, etc.) or some other type of metric associated with the Host (response to a ping, number of logged in users, free disk space, etc.). A Service incorporates multiple definitions (Service Template, Check Command, Command Line, Service Dependencies, Service Extended Info, and Service Groups. These How To’s will take you through the process of defining a new Service, cloning an existing Service, searching existing Services, and viewing a list of available Services. You will need to start with any listed prerequisites.
A Service Template is useful when you have common attributes for multiple Services. A Service Template incorporates multiple Service detail directives and Service Check definitions. This How To will take you through the process of defining a new Service Template.
Example: In a Service Template (
Service Dependencies allow you to suppress Notifications and active checks of Services based on the status of one or more other Services.
Service Extended 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. This How To will take you through the steps to create an Extended Service Info Template.
A Service Group definition is used to group one or more Services together for the purposes of simplifying Notifications. When a Service goes down, becomes unreachable, or recovers, Nagios® will find which Service Group(s) the Service is a member of, get the Contact Group for each of those Service Groups, and notify all Contacts associated with those Contact Groups. Service Groups allow for flexibility in determining who gets paged for what kind of problems. Service Groups allow you to group Services together for display purposes in the CGIs and can be referenced in Service Dependency and Service Escalation definitions to make configuration a bit easier. This How To will take you through the steps to create a new Service Group. The prerequisites for Service Groups are defined Hosts with Services and Services assigned to Hosts.
This chapter will focus on Profile configuration. This reference is intended to provide you with a more detail look into all aspect of Profile configuration. Each How to takes you step by step through the configuration process. Before starting, check the list below each How to to view any required prerequisites.
Host Profiles store Host Templates and Service Profiles. Once you have a Host Profile you can apply this combined definition to a number of Hosts, for example to 50 specific web servers. Host Profiles are not associated with a specific Host. This concept will allow you to generically define the different roles of the different devices you are monitoring and easily apply them. Once the Host Profile is define you may want to change one of the parameters which then would be applied to all of the specified Hosts. You can make a change to either the Host Profile, the Service Profile, or in the Service, which will then be applied to all Hosts.
A Service Profile is a collection of multiple Services. Once you have a Service Profile you can combine this with a Host Template and create a Host Profile. With GroundWork Monitor Open Source, you get a preloaded set of Service Checks for multiple types of servers, devices, etc. that you can use out of the box. Service Profiles encapsulate a set of standard Services with Plugins and Best Practices that can be applied toward monitoring specific devices or protocols. The advantages of using a Service Profile is that it is pre-integrated. Using Profiles, you can quickly configure GroundWork Monitor Open Source to monitor groups of devices the same way. This How To will take you through the process of defining a new Service Profile including Step 1 – New Service Profile; assigning a name and assigning a configuration file, and Step 2 – Defining the Service Profile properties.
Profiles, which contain both pre-defined and user-definable monitoring parameter settings, can be imported into Configuration for use in designing and managing Hosts and Services. Profiles can be exported by the Export button in the Profile Detail screen making Profiles portable and enabling the sharing of files.
This chapter will focus on Host configuration. This reference is intended to provide you with a more detail look into all aspect of Host configuration. Each How to will take you step by step through each procedure. Before starting, check the list below each How to to view any required prerequisites.
A Host definition is used to define a physical server, workstations, device, etc. that resides on your network. This How To will take you through the process of defining a new Host to be monitored. You will need to start with the prerequisites. 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. 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.
Host Templates store common object properties that are used to define multiple Hosts. Templates are used to reduce the number of repetitive entries when defining objects. For example, when defining a new Host you would first create a Host Template with common properties. Then, to define a specific Host, you apply the properties using a Host Template.
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.
Parents Hosts are typically routers, switches, firewalls, etc. that lie between the monitoring Host and a remote Host. A router, switch, etc. which is closest to the remote Host is considered to be that Host’s Parent. If this Host is on the same network segment as the Host doing the monitoring (without any intermediate routers, etc.) the Host is considered to be on the local network and will not have a parent Host.
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. For example, Figure 5.5.1a. below shows a server icon next to each Host. This icon image is designated in the Extended Host Info Template as server.png in the Status Map Image property field.
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.
This chapter will focus on managing Host configuration. After creating new Hosts using the New Host Wizard or cloning Hosts you can use the search feature to find a previously defined Host or you can expand the Hosts option in the navigation tree and select an existing Host. Once a defined Host has been selected you have access to manage Host Detail, Host and Service Profiles, Parents, Host Groups, Escalations, and Services from one screen. Each Host management tab is listed below, click on the link to get step by step instructions for modifying Host properties.
The Host Detail tab in the Manage Host screen lists the defined Host name, Alias, Address of the Host, and the pre selected Host template properties which are all editable. Click Set Inheritance to set all directive to inherit values from the selected template. Uncheck the left checkbox on the directive in the lower half of the screen to override the template values.
The Profile tab in the Manage Host screen enables you to assign and apply Host Profiles and Service Profiles. After making changes, use the refresh button to update the Service list on this page. Also, make sure you select the appropriate Service option before selecting Apply. You can either select Replace Existing Services which will remove all Services from the current Host and replace them with the ones you have selected. Merge with Existing Services will leave any existing Services unchanged. Assigning a Host Profile from the Profile tab in Manage Host creates the association so that the Host can be managed from the Profile and will have no other effect on the Host configuration.
The Parents tab in the Manage Host screen lets you assign Parent Host(s) to a Host definition. Parent child relationships may also be managed directly by going to Hosts>Parent Child. Parent Hosts are typically routers, switches, firewalls, etc. that lie between the monitoring Host and a remote Host.
The Host Groups tab in the Manage Host screen is used to assign defined Host Groups to a Host definition. Host Groups may also be managed directly by going to Hosts>Host Groups. 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.
The Escalations tab in the Manage Host screen enables you to optionally select Host and Service Escalation trees appropriate for a Host. When a Service Escalation is assigned, all Services on the selected Host will use the same Escalation. To use different Escalations for different Services, each Service must have its own Escalation and in this case you would not assign a Service Escalation. The Escalations option is used to define Host and Service Escalation Trees. Escalations are used to escalate Contact Notifications for a particular Service, Host, or Host Group. An Escalation Tree is a grouping of multiple Escalations which is then assigned to a Host, Host Profile, Host Group, or a Service to escalate Notifications.
The Service tab in the Manage Host screen lets you manage the Services that are assigned to a Host. You can add, modify and remove Services for a Host. Managing Services from this page will in all likelihood put the Host out of sync with its Service Profiles. After making changes, use caution when applying Profiles to this Host.
This chapter will focus on Contact, Contact Template, and Contact Group configuration. Each How to will take you step by step through each procedure. Before starting, check the list below each How to to view any required prerequisites.
A Contact definition is used to identify someone who should be contacted in the event of a problem on your network.
Contact Groups are definitions of one or more Contacts for the purpose of sending out alert/recovery Notifications. When a Host or Service has a problem or recovers, Nagios® will find the appropriate Contact Groups to send Notifications to, and notify all Contacts in those Contact Groups. In Nagios® 2.5 it is required that you set at least one Contact Group in a Host before running Commit. Contact Groups can be applied to Escalation Templates and Escalation Trees to be used in setting up Notifications for Hosts and Services.
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.
This chapter will focus on Escalations configuration. Each How to will take you step by step through each procedure. Before starting, check the list below each How to to view any required prerequisites.
Notifications and escalations are how the GroundWork Monitor’s Nagios® engine alerts its users when monitoring Services change between states (OK, WARNING, CRITICAL, and UNKNOWN). Escalations combine specified Contact Groups that are to be notified when a Notification is escalated. An Escalation Tree is a grouping of multiple Escalations which are then assigned to a Host, Host Profile, Host Group, or a Service. Escalation are optional.
Escalation Trees are groupings of multiple Host and Service Escalations that can be assigned to a Host, Host Profile, Host Group, or a Service.
This chapter will focus on Command configuration. 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. By default, Configuration uses commands.cfg to store check command definitions.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. Immediately prior to the execution of a command, Nagios® will replace all macros in the command with their corresponding values. This allows you to define a few generic commands to handle all your needs. You must make sure that you include only those macros in command definitions that are valid for the circumstances when the command will be used. See the Nagios® documentation for the complete list and usage of macros. Each How to will take you step by step through each procedure. Before starting, check the list below each How to to view any required prerequisites.
This chapter will focus on Time Period configuration. Time Periods are lists of times during various days that are considered to be valid times for Notifications and Service checks. Each How to will take you step by step through each procedure. Before starting, check the list below each How to to view any required prerequisites.
This chapter will focus on the new GroundWork Monitor Open Source feature Groups. The Groups feature is very flexible and powerful. With great power comes great responsibility, so care should be considered in administering them. In the simplest form, Groups can be used to split Hosts into different Nagios® configuration files, in their most complex implementation they extend the configuration to multiple instances of Nagios®, and in between, Groups can determine Group Macro values applied to Service Checks.Apart from file management, and managing multiple instances of Nagios®, the real advantage of Groups to most users is to scale the number of Services required to manage Hosts. Properly implemented, Group Macros will help reduce the number of redundant Services that were required in the past. As a novelty, you can use Groups to run a Pre Flight Test against a Host Group or even a single Host (Note: The Test will fail if its Parents are not included in the Group). Groups also provide an alternate way to assign Contact Groups to Hosts and Services.
This chapter will focus on Control options within Nagios® such as Nagios® directories, CGI and Main configuration, resource macros listing which are defined in Commands, etc. Each How to will take you step by step through each procedure.
This chapter enables you to export all the configuration files for viewing and debugging. These are valid configuration files which are downloaded to the directory