What Is It?

Nagios passive agent is a cross platform monitoring agent for the popular Nagios monitoring tool.   It aims to fill in some of the gaps not filled by other methods of running checks on monitored servers, most notably where the checks are running on a remote server which is only able to communicate back to the Nagios server over firewalls/proxies and HTTP/S.

What Does It Do?

NPA already has some useful features, more are on the roadmap.  Here are the currently working features:
  • Open source and free to use however you see fit (licensed under the GPL v3)
  • Simple scheduling (run a check every so many seconds)
  • Support for existing Nagios checks and performance information
  • Submission of passive checks results using the Nagios CGI interface
  • HTTP Proxy Support
  • Cross-platform - tested on Linux, Windows and Solaris.  Written in Java/Groovy so most platforms can be supported.
  • Simple queuing to allow resubmition in the event of temporary network outages.
  • Serveral built in OS checks (CPU, Disk)
  • Built in HTTP response checks
  • Serveral built in Oracle checks (Tablespace free, Buffer Cache Hit Ratio. Custom SQL)
The following features are presently being developed and tested:
  • Extensible API  to add in custom check plugins
  • Further SQL Server and Oracle built in checks
  • Further submission options other than the Nagios CGI interface
  • More complex performance gathering features as required
  • Simple groovy script plugin mechanism to make writing checks using the NPA API quite simple

Here is an explanation diagram of how check results are returned to Nagios over firewalls and the internet:

NPA Diagram

You will need a publically accessible HTTP server for Nagios to allow check results to be returned this way.  It can use basic HTTP authentication to prevent unauthorised access.  It's also recommended that you set up HTTPS for this server so that none of the traffic between your monitored servers and the Nagios server can be intercepted.

Why Should I Use It Instead Of Something Else?

There are quite a few agents for Nagios, including the official ones, and Windows specific agents such as NSClient++. Unfortunately, none of them had the ability to work through firewalls. In addtion, in a cross platform envrionment of three different operating systems and two different types of database, it was difficult to do consistent checking on all platforms. To solve this, inititally I tried to write a return script which simply submitted check results back to Nagios via HTTP. This was not flexible enough though, so one frustrated afternoon, NPA was born. Since then, it's been worked on and developed by myself, Chris Gilbert, and used internally in Corelogic for our customers. After a suggestion by one of the team, we agreed it would be a good idea to make the project open source, and encourage other people to develop and contribute to it.