Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

we're an ISV about to deploy our SaaS application over the internet to our end users, and are currently looking for an application monitoring solution. In addition to monitoring the usual OS-level suspects (I/O, disk space, logs, CPU, RAM, swapping, etc.), we're also looking to monitor, alert and report on internal application events, conditions, and counters (think queue size for internal service, or latency of a service we're getting from a third party via custom APIs).

We're started looking at Nagios, Zenoss, etc., but found out those do only low-level stuff, and are currently looking at MOM and ManageEngine. Still, they are far from being an custom app monitoring tool.

So - do you have anything to suggest?


locked by HopelessN00b Dec 5 '14 at 5:03

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

What platform are you running on? Windows or Linux? I notice you mention MOM (which I do not suggest) but you also mention Nagios and Zenoss. I think you should also look at instrumenting your application. – BobbyShaftoe May 1 '09 at 10:57

12 Answers 12

up vote 2 down vote accepted

A couple possibilities:

  1. Most monitoring systems - from Nagios to Zenoss to HP OpenView - allow you to write custom monitors, which may be what you want.

  2. You could write a simpler monitor but make it more monitoring-system-agnostic by exporting it using the customization features of (linux) net-snmpd. These let you export whatever random numbers or strings you want out over snmp; all you have to do is write the small script to fetch the numbers themselves from your app. This could be from log files or a status file that your app writes out periodically or whatever.


Perhaps your Software as a Service application can output SNMP information, which could be collected by any number of tools (Nagios, Munin, etc.).

Sun Java System Messaging Server is an example of an application that provides a lot of statistics via SNMP. The SNMP Implementation section of their Admin Guide says:

The active information focuses on currently queued messages and open network connections (for example, counts of queued messages, source IP addresses of open network connections), while the historical information provides cumulative totals (for example, total messages processed, total inbound connections).


StackHub does what you are asking: "monitor, alert and report on internal application events, conditions, and counters". It's a SaaS itself, so you don't have to install and config anything bulky like Nagios/Zenoss/etc.

The service is in beta right now and initially targets Java apps (e.g., Log4J/Logback), so early feedback is welcome.


zabbix still has a lot of quirks, but works good for me.


Not sure if it is an exact fit for what you are after but monit may do what you need.

I'd post a link, but I'm a new user. So you will just have to google it :(


You should look at Quest Foglight. It has the standard server-based metrics but also application monitoring for both J2EE, .Net, as well as all the big application suites (PeopleSoft, E-Business Suite, etc.). One feature that might be a very good fit for you is the Foglight Experience Monitor. It captures http requests off the wire (agentless) and reports on response times at the different layers of the tech stack. You can use this to monitor those third parties you rely on and can even provide this as a valued-added feature to your customers who can then monitor the performance of your SaaS offering.


I use Nagios to monitor those very things, as well as disk space and load averages and all that. See, the thing about Nagios is that it's just a fault management system, and it relies on plugins to actually check anything. It happens to come with some nice default plugins for monitoring SNMP variables and pings and suchlike, but you can monitor anything with it, as long as you can write a program to check something and return an OK/warning/critical/unknown indication.

The 'plugin' nomenclature is a bit silly, since the 'plugin API' amounts to command args, environment variables, an exit status, and what you print on stdout. I have more than a few plugins that are just 20-line ksh scripts.


Nagios is very good. You can also write your own plugins and set it up quite easily.


If your application is using log4j or the like, try logFaces - it's ideal for monitoring application specific events, particularly for distributed applications.


Zenoss will let you reuse any Nagios plugins you have and adds WMI and JMX monitoring for applications. You can also instrument your applications to send events via syslog or xml-rpc and REST straight into Zenoss.


We have an application monitoring tool named RMS (Remote Monitoring System) which you may interested. RMS can narrow down root cause of application problems within couple of minutes. It can send alerts and link to help desk API to generate tickets. It can also monitor SLA and generate reports. Let me know if you need more information.



If you feel more like a developer than a sysadmin i suggest to take a look at AlertGrid service. It might be helpful for you to accomplish some application monitoring tasks (super-easy integration). However it is not so helpful with system monitoring system stats (other tools have more plugins).


Not the answer you're looking for? Browse other questions tagged or ask your own question.