nagios conference 2012 - troy lea - custom wizards, components and dashlets in nagios xi

44
Custom Wizards, Components and Dashlets in Nagios XI Troy Lea [email protected] Twitter: @Box293 http://exchange.nagios.org/directory/ Owner/Box293/1

Upload: nagios

Post on 15-Dec-2014

769 views

Category:

Technology


5 download

DESCRIPTION

Troy Lea's presentation on creating custom addons for Nagios XI. The presentation was given during the Nagios World Conference North America held Sept 25-28th, 2012 in Saint Paul, MN. For more information on the conference (including photos and videos), visit: http://go.nagios.com/nwcna

TRANSCRIPT

Page 1: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

Custom Wizards,Components and Dashlets

in Nagios XI

Troy Lea

[email protected]

Twitter: @Box293

http://exchange.nagios.org/directory/Owner/Box293/1

Page 2: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 2

About Me

IT Consultant

Strategic Group http://www.strategicgroup.net.au/

Cloud Computing Specialist

VAULThttp://www.my-vault.com.au/

One of Australia's most mature cloud computing solutions

Page 3: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 3

Why

Why Nagios XI?

It’s a virtual appliance - ready to go

Why customize?

Improve functionality

To help others / share the knowledge

Page 4: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 4

Configuration Wizards - Current Portfolio

Wizard Downloads

Box293 Demonstration Wizard 2,300+

Dell OpenManage 46,000+

Dell UPS Monitoring Wizard 42,000+

EMC CLARiiON Monitoring WizardAvailable for adoption

78,000+

Group Creation Tool 42,000+

Host Creation Tool 115,000+

Plugin Tool 40,000+

VMware ESX / vSphere / vCenter Monitoring Wizard 70,000+

Page 5: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 5

Configuration Wizards - My Documentation

Existing Documentation Created By Me

Tips For Customising Configuration Wizardshttp://exchange.nagios.org/directory/Documentation/Nagios-XI-Documentation/Tips-For-Customising-Configuration-Wizards/details

NOTE: Outdated

Nagios XI Service Relationship Maphttp://exchange.nagios.org/directory/Documentation/Nagios-XI-

Documentation/Nagios-XI-Service-Relationship-Map/details

Box293 Demonstration Wizardhttp://exchange.nagios.org/directory/Addons/Configuration/Configuration-Wizards/Box293-Demonstration-Wizard/details

This is the wizard I will focus on in this presentation

Page 6: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 6

Nagios XI Service Relationship Map

Page 7: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 7

Configuration Wizards - Official Documentation

Official Documentation

Writing Custom Wizards For Nagios XIhttp://library.nagios.com/library/products/nagiosxi/documentation/480-writing-custom-wizards-for-nagios-xi

Box293 Demonstration Wizard was derived from this documentation

Nagios XI Component Developmenthttp://library.nagios.com/library/products/nagiosxi/documentation/551-nagios-

xi-component-development

Page 8: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 8

Configuration Wizards - Customizing

Key Concepts

Provide help / documentation at the startThis can be in collapsible / expandable DIVs

The more help you provide, the less road blocks there are

Preserve existing data user has enteredNo-one likes re-populating multiple fields

Automate the data collection processWhere possible

Good Example: Network Switch / Router wizard

Bad Example: VMware ESX / vSphere / vCenter Monitoring Wizard (revamp planned)

Page 9: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 9

Configuration Wizards - Stages

Step 1This is the list of all the available wizards

Page 10: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 10

Configuration Wizards - Stages

Step 1The information that is presented here is taken from the $args array defined at the beginning of the configuration wizard

Information also used on the Manage Config Wizards page$args=array(

CONFIGWIZARD_NAME => $name,CONFIGWIZARD_TYPE => CONFIGWIZARD_TYPE_MONITORING,CONFIGWIZARD_DESCRIPTION => 'This wizard is an example of how to code ...',CONFIGWIZARD_DISPLAYTITLE => 'Box293 Demonstration Wizard',CONFIGWIZARD_FUNCTION => 'box293demo_configwizard_func',CONFIGWIZARD_PREVIEWIMAGE => 'screen2.png',CONFIGWIZARD_VERSION => '2012-08-05',CONFIGWIZARD_DATE => '2012-08-05',CONFIGWIZARD_AUTHOR => 'Troy Lea aka Box293',);

Page 11: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 11

Configuration Wizards - Stages

Before Step 2

Fresh Wizard Run?Define variables

User is returning from Step 3?Check for existing Step 2 data and re-populate

Step 2 ← Step 3

User provided data on Step 2 failed error checking?Check for Step 2 data and re-populate

Step 2 ← Step 2 Validation

Page 12: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 12

Configuration Wizards - Stages

Page 13: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 13

Configuration Wizards - Stages

Step 2CONFIGWIZARD_MODE_GETSTAGE1HTML

This is the first step you can customise

Completely customisable except for the Back and Next buttons

Put all of your overview, help and configuration steps here

This will educate the end user about how the wizard works and also informs them of the requirements / pre-requisites

You'll need to get the IP Address or FQDN of the host you want to monitor along with anything else you require

Page 14: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 14

Configuration Wizards - Stages

Between Step 2 and Step 3CONFIGWIZARD_MODE_VALIDATESTAGE1DATA

Is the user returning from Step 3?If so, no data validation required on Step 2 data

Reality checks on Step 2 dataIf supplied data is not correct the wizard will go back to Step 2

Refer to the code in the Box293 Demonstration Wizard to see how the error checking is performed

Page 15: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 15

Configuration Wizards - Stages

Page 16: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 16

Configuration Wizards - Stages

Page 17: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 17

Configuration Wizards - Stages

Step 3CONFIGWIZARD_MODE_GETSTAGE2HTML

Completely customisable except for the Back and Next buttons

You can use data gathered in Step 2 to query the device, manipulate the results and present them to the user

Example: Network Switch/Router wizard

Alternatively you may have pre-defined optionsExample: Dell OpenManage Wizard

Page 18: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 18

Configuration Wizards - Stages

User coming from Step 2?Check for Step 2 data and populate/manipulate

Step 2 → Step 3

User is returning from Step 4?Check for existing Step 3 data and re-populate

Step 3 ← Step 4

User provided data on Step 3 failed error checking?Check for Step 3 user data and re-populate

Step 3 ← Step 3 Validation

Page 19: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 19

Configuration Wizards - Stages

Between Step 3 and Step 4CONFIGWIZARD_MODE_VALIDATESTAGE2DATA

Is the user returning from Step 4?If so, no data validation required on Step 3 data

Reality checks on Step 3 dataIf supplied data is not correct the wizard will go back to Step 3

Things like:

Allowed charactersSpecific options selected but their sub-options are not definedEmpty fields

Refer to the code in the Box293 Demonstration Wizard to see how the error checking is performed

Page 20: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 20

Configuration Wizards - Stages

Page 21: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 21

Configuration Wizards - Stages

Between Step 3 and Step 4CONFIGWIZARD_MODE_GETSTAGE3OPTS

Optional, does not need to existAllows you to hide the Monitoring Settings in Step 4

This was ideal for the Plugin Tool

Page 22: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 22

Configuration Wizards - Stages

Step 4CONFIGWIZARD_MODE_GETSTAGE3HTML

Any additional html here will appear on the "Monitoring Settings" step, "Notification Settings" step, "Host Groups/Service Groups/Parent Host" step and the "Final" step

Options for how often you want to monitor the deviceAs per the previous slide these can be hidden

This step will always be titled "Monitoring Settings"

Page 23: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 23

Configuration Wizards - Stages

Between Step 4 and Step 5CONFIGWIZARD_MODE_VALIDATESTAGE3DATA

Nothing you really need to put here unless you gathered more data in Step 4

If so don't forget to do reality checks on Step 4 data

Page 24: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 24

Configuration Wizards - Stages

Page 25: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 25

Configuration Wizards - Stages

Between Step 4 and Step 5CONFIGWIZARD_MODE_GETSTAGE4OPTS

Optional, does not need to existAllows you to hide the Notification Settings in Step 5

This was ideal for the Plugin Tool

Page 26: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 26

Configuration Wizards - Stages

Step 5Options for Notification Settings

As per the previous slide these can be hidden

You CANNOT add additional code to this screen

It will always be titled "Notification Settings"

Page 27: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 27

Configuration Wizards - Stages

Step 6Options for Groups and Parents

This Step CANNOT be modified

This Step CANNOT be hidden

Page 28: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 28

Configuration Wizards - Stages

Final StepCONFIGWIZARD_MODE_GETFINALSTAGEHTML

You can add additional code to this screen however it will always be titled "Final Settings"

Page 29: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 29

Configuration Wizards - Stages

Creating the Host and Service ObjectsCONFIGWIZARD_MODE_GETOBJECTS

Using all the data you have gathered you "create" all the host and service objects and add them to an $objs array

If you didn't do reality checks on the data then it's possible that an invalid configuration will be applied and fail

Page 30: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 30

Configuration Wizards - Templates

Adding a Command DefinitionYou've supplied a plugin with your wizard

Defining the command is done in a .cfg file referenced in the config.xml

Other objects like Groups can also be defined

Refer to official documentation about the config.xml file

# 'check_dell_ups' command definitiondefine command{ command_name check_dell_ups command_line $USER1$/check_dell_ups.pl -H $HOSTADDRESS$ -C $ARG1$ -T $ARG2$

$ARG3$ $ARG4$ $ARG5$ $ARG6$ $ARG7$ $ARG8$ }

Page 31: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 31

Components - Current Portfolio

Component Downloads

History Tab 37,000+

Page 32: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 32

Components

Official Documentation

Nagios XI Component Developmenthttp://library.nagios.com/library/products/nagiosxi/documentation/551-nagios-xi-component-development

Page 33: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 33

Dashlets and Dashboards - Overview

Extract from the user guide:

Dashboards are designed to provide individual users with customized information they find useful

Dashboards are often used to display important, relevant information where it is needed most

Dashboards are specific to individual Nagios XI users. Each user can create their own unique set of dashboards to customize Nagios XI to fit their needs

Dashboards can be deployed to multiple users and can be kept synced with the original

Dashlets are added to Dashboards

Page 34: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 34

Dashboards Tab

Page 35: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 35

Dashlets - Current Portfolio

Dashlet Downloads

Text Dashlet 24,000+

Status Info Dashlet 4,000+

Page 36: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 36

Dashlets - Modes

There are four parts to creating a Dashlet

DASHLET_MODE_PREVIEW

DASHLET_MODE_GETCONFIGHTML

DASHLET_MODE_INBOARD

DASHLET_MODE_OUTBOARD

Page 37: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 37

Dashlets - Modes

DASHLET_MODE_PREVIEW

This is for when you click the Available Dashlets link

Page 38: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 38

Dashlets - Modes

DASHLET_MODE_GETCONFIGHTML

When you click on the "Add This To A Dashboard" icon, DASHLET_MODE_GETCONFIGHTML is used

Page 39: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 39

Dashlets - Modes

DASHLET_MODE_GETCONFIGHTML

Here you can specify the options you require for your dashlet

There is no error checking when you click the Add It button

Page 40: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 40

Dashlets - Modes

In the Status Info Dashlet I implement my own error checking by providing a preview function

Play around with the Status Info Dashlet to see how this can be achieved

DASHLET_MODE_GETCONFIGHTML

Page 41: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 41

Dashlets - Modes

DASHLET_MODE_INBOARD

This is the section that makes the dashlet appear on any dashboard you add it to

Page 42: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 42

Dashlets - Modes

DASHLET_MODE_OUTBOARD

This is for some dashlets that are built into the pages of Nagios XI

Page 43: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 43

Discount Offer

But wait, there's more ...

Get a 10% discount on your Nagios XI Unlimited Nodes license when purchased through this link:

http://www.nagios.com/nagiosxi10?ref=box293

Don't miss out as stocks are limited**Stocks are not limited

Page 44: Nagios Conference 2012 - Troy Lea - Custom Wizards, Components and Dashlets in Nagios XI

2012 44

Questions

Questions ?