Working on Nagios perl module

I am currently working on creating a perl module do deal with Nagios configuration. The existing Nagios-Object package is quite limited, outdated and not that fully implemented. I checked it up and decided to rewrite it using my way.

Currently I am using Class-Generate package to help me with creating classes for Nagios object definitions and I already managed to write a parser which takes a path of nagios main configuration file, finds all links to object definition files and parses all definitions. One’s parsed, the definitions are stored as objects with all accessorts/mutators available.

I am also implementing object linkage so that the relations of objects can be used easily. Currently most of the stuff is already working fine.

In addition I am planning to implement the write function so that it is possible to create problem text config files with object definitions. Also thinking on getting on status log parsing.

The idea behind is to create a web admin panel for Nagios and extend the functionality, plus maybe I will do a new web frontend for Nagios, since the one given is not that good (anymore). I already have some web stuff working (based on perl, Catalyst, CGI-FromBuilder and Template-Toolkit)

Nagios stuff

I am playing around nagios now (again) and it seems that I have found the nice way to monitor most of the stuff I need.

Monitoring Linux servers in not a big deal and a lot of custom plugins can be (and already) written for watching different stuff, but monitoring Windows servers were not so easy for me until this days. Now it seems that I found the way.

It is well known that SNMP under windows really sux (I mean the standard one), the thing that really caught my attention was Performance Counter. This can do the job well.

My idea was to integrate nagios, windows performance counters and rrd graphs. For this I have set up nagios, installed NRPE plugin on windows to be able to check it and added a plugin which is able to watch performance counters. Now I have everything: performance counters are monitored, nagios updates the state of services and does all that fancy stuff it is supposed to do and in addition, the output and performance data of the plugins is written by nagios to the named pipe from where my small perl script takes it and updates a bunch of rrd databases. A simple web GUI shows me all needed graphs.