Archive for the 'Development' Category

Nagios V-Shell 1.9 Released

vshell2

Nagios V-Shell 1.9 includes major performance updates, and a re-implementation of PHP caching that should decrease V-Shell page load times anywhere from 40-75%.  I ran some benchmarking tests on a test system(Dual core desktop with 4GB of RAM) with 1800 hosts, and 7200 services.  This system runs with an average CPU load of 2.0-6.0 throughout the day, so the hardware is being pushed pretty hard already from the check load. V-Shell 1.8 created page load times anywhere from 18-28 seconds throughout the interface without APC caching enabled.  Needless to say, this is problematic for many users with larger environments.  The Core cgi’s were able to load anywhere from 2-11 seconds, with the service status page taking around 9-11 seconds to load all of the data.  My goal for 1.9 was to minimize any unnecessary processing, and optimize any functions that were inefficient or using slower PHP built-in functions.  The differences in 1.9 are substantial.  Without any caching enabled at all, I was able to decrease the average page load time to 9-14 seconds, which is 40-50% faster by itself.  Once I had the code optimized, I reworked the APC caching functionality.  If a user has PHP’s APC caching packages installed and enabled on their web server, V-Shell will cached the objects.cache file until it detects any changes in the file, while the data in the status.dat file will be cached based on a TTL (time to live) config option which now exists in 1.9.  Once the data is cached in APC, the page load times throughout the interface averaged between 4-5 seconds for all pages, which is a 75% decrease in load time on average.

My goal for the next version of V-Shell is to add support for mklivestatus and ndoutils for backend data, which will eliminate the need to parse the objects.cache file and status.dat files for systems with those backends.  This should further improve performance for larger installations.

Download Nagios V-Shell 1.9

CHANGELOG

 

Documentation: Nagios XI Component Development

Here at Nagios Enterprises we do our best to add new features and components that meet the needs of the community and our customer base.  We get new feature requests every week, but sometimes the request is something we’re not able to fulfill in time, or the customer’s need requires a more “home grown” solution to fit the needs of their environment.  For that reason, we’ve created some documentation for getting started with Nagios XI Component Development.  The document covers some basic concepts in XI component development that would be needed regardless of what the component does, and is intended for development and administrators who are already familiar with programming concepts.  This document covers the following topics:

  • Example Component Code
  • General Developer Guidelines
  • Setting Up XI For A Development Environment
  • Component Registration and Initialization
  • Using The Backend API To Get XML Data
  • Adding XI’s CSS and Javascript

This document is available on the Nagios Library.

Nagios XI Component Development

Nagios XI Google Map Component v1.1

The Nagios XI Google Map Component v1.1 displays host status as an overlay on a Google Map within Nagios XI. It uses lat/long coordinates defined in the “notes” config field to identify host location. Version 1.1 now support polylines for parent->child relationships. Any parent->child relationship that has coordinates defined for both hosts will now draw a polyline displayed between the two.  This can be useful for drawing a topology map on real geographic locations. Special thanks to Wesley Zhao for your work on this feature!

 

Continue reading ‘Nagios XI Google Map Component v1.1′

Nagios SNMP Trap Interface (NSTI) Available

 

Nagios SNMP Trap Interface has been uploaded to the nagios project SVN repo. Its goal is to make it easier to see what traps have arrived and provides a sane way to keep track of SNMP traps.
Continue reading ‘Nagios SNMP Trap Interface (NSTI) Available’

XI System Profile Component

The component adds a System Profile page to the Admin menu and displays relevant system information for common troubleshooting issues.  The profile information can be downloaded as a text file to provide support teams with importation information. This component will ship with any Nagios XI install 2011R1.10 or newer.  We recommend installing this component for all existing 2011 installs in order to expedite support issue.

Download System Profile Component

Nagios BPI v2.0 Beta

One of the most challenging, but also rewarding projects that I’ve worked on so far during my time at Nagios is the Nagios Business Process Intelligence (BPI) project.  Nagios BPI was created as a way to visualize business process health by grouping hosts and services together, and creating rules to discern the true health of the network infrastructure as it relates to the business. An admin can define rules for each BPI group, and monitor the health of the group’s state based on what has been defined.  Version 1.x of BPI got a lot of positive feedback from users, and quite a few feature requests.  However, as time went on it became clear that in order for BPI to be more suitable for enterprise environments, more advanced permissions needed to be implemented, as well as several other usability issues resolved.  I’ve spent the last 6 weeks or so doing some seriously overhauling to the code in order to support a lot of the new features I wanted to add to a new version of BPI.  I’m excited about the changes in this new version, and I also really think that this is an add-on to Nagios that can really do some good in a lot of monitoring environments.  I think the future of monitoring is going to highlight the idea of monitoring within the context of the business, and this project allows users to turn host and service monitoring into actual business process monitoring.  Currently this project is in a beta stage and only works with Nagios XI, and we plan to implement this as a feature of our 2012 release.  A community version of Core will follow sometime later in 2012, but the intention is to pilot a lot of these new features in the XI environment, and later the code can be adapted to allow for use with Core installs as well.     Here’s a highlight of the new features in BPI v2.0

  • AJAX based updates keep the data fresh without ever having to refresh the page
  • BPI Groups can be automatically generated and synced with existing hostgroups and servicegroups, and rules can be set for determining their group states.
  • Improved permissions scheme.  Only Admin-level users can add, modify, or delete groups.  All other users can be added as “read-only” users for each group, which allows for use of BPI in multi-tenancy installs of XI.
  • Groups can now be sorted by problem “weight,” which allows for quicker identification of problems within the business process.
  • Group state calculations now use health percentages instead of problem counts in determining group states.
  • Group state calculations can account for “handled” problems in the logic, as defined as a config option.
  • More informational feedback for the check plugin so a user knows “why” a group is in a problem state.
  • Created an XML cache/API for reduced CPU usage for BPI checks, and also to allow external applications to access the data.

See the updated documentation for BPI v2 here.

The code for this new version has not yet been released. Feel free to contact me if you’re interested in beta testing before the 2012 release of Nagios XI.  Here are a few screenshots from the new version.

 

 

Join The Nagios Team As A Software Engineer

Hey – Nagios is hiring! We currently have an open position for a full-time software engineer to develop Linux/Unix applications. Join our team and help us make history! Find out more at www.nagios.com/jobs.

We have a busy workplace, great people on our team, and a full-featured MAME arcade cabinet for your coding downtime.

Documentation: Writing Custom Wizards

We’ve had some requests in past months about developer documentation for writing custom Configuration Wizards for Nagios XI.  Many admins have a large amount of devices of a specific type that they regularly need to add to their monitoring environment.  So for those needing to write their own wizard, and don’t mind getting their hands dirty with PHP development, this document and example code illustrate how to write a monitoring wizard while maintaining the integrity of the Nagios XI framework.  The example wizard utilizes a weather alerts check plugin written by Tony Yarusso.  You can find the document on the Nagios Library.