While working at the University of Waterloo I developed an application which integrated the open-source monitoring solution Nagios with the custom in-house inventory system. This system, dubbed the ‘Nagios API’, initially pulled data from the inventory database, using NagiosQL to generate the Nagios configuration files. I later rewrote the application to store data in the NagiosQL database and provide a RESTful interface that the inventory system could query when displaying results.
The Nagios API is written in PHP, uses PDO for database access and the Nagios extension MK Livestatus to get the most current status information for monitored machines.
In addition to writing the application, I was also responsible for administration of the Nagios server and the Nagios application. This included initial set up and configuration, as well as integration with the centralized authentication systems.
The outcome of this project was a drastic increase in the amount of monitoring on production systems. Prior to the undertaking of the project there was very little in the way of automatic monitoring, when I left almost every production machine was being monitored as well as some pre-production machines.