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

I'm actually a programmer but I have been involved some in system administration lately as I believe the actual administrators might not be that interested in their work. I believe they are using WhatsupGold for monitoring, even if I've heard something about Tivoli too.

Anyway, we have a Windows Server 2008 environment (big surprise) with 3 web servers that is in a NLB Cluster. We are waiting for a real load balancer but will have to do with NLB for at least half a year or more.

On these web servers we have 5+ ASP.NET Web applications and on each application there is a page that shows OK if everything is ok. The problem is that the NLB does not know if an application pool is down and happily sends data that way anyway and the monitoring tool that checks the page might end up on another server that shows that it is ok.

This is of course not acceptable (even if they does not seem to care at all) so I'm wondering how a experienced administrator would set this up so I can directly address a particular Web application on a particular server?

Thank you.

share|improve this question

There's probably a few ways to do this. The load balancer has a public facing IP, we'll call it A, and each of your servers has an IP, we'll call B, C, and D. Normally the end user points to A and the NLB forwards the request to B, C, or D returning the results. You could monitor B, C, and D directly looking for the OK message, assuming your network is configured to give you direct access to B, C and D.

Xymon (previously Hobbit), or Nagios are open source monitoring tools that would be able to monitor and alert you to problems with B, C or D.

share|improve this answer
Yeah, I don't know why they don't do that. I was looking at the setup and it looked like all IP:s was in the NLB load balancing or something. Anyway, I would still need to put up some kind of interface so I could target single applications right? like for example ip : 100.100.100:9991 for application one and 100.100.100:9992 for application two etc? – cc81 Jun 1 '09 at 20:47
Depends on the tool you're using, but yes. With Hobbit you'd have a line entry for B, C, and D, and then tests for app1 & app2 on B, app3 on C, etc. – Sage Jun 1 '09 at 23:01
+1 for the approach. I've used Ipswitch WhatsUp for this, and Woodstone ServersAlive. Don't be fooled by ServersAlive's low price - it's a great little app for stuff like this. Try the free one. – Brent Ozar Jun 2 '09 at 12:47

The problem with using an external monitor is that you don't know which cluster node you'll reach by hitting the cluster IP. And accessing the individual host's IP is not always the same as going through the cluster. For instance, if you're running 5 websites, that's 5 cluster IPs, and only 1 host IP. Not to mention binding to multiple IPs can sometimes lead to issues on certain applications, and if you use host-headers too, good luck.

I'm in the exact same place. We're going to end up writing a script on each node that performs its own health check (traffic from a cluster node to the cluster is always handled by the local host, as far as I can tell). This would be a scheduled task, and if the check fails, it can call the NLB command line tools to remove that node from the cluster.

This script would also be checkable by Nagos via the normal host management IP (using nrpe/NSClient++) to tell us which nodes are down, while still seeing the cluster as up.

This is pretty basic stuff, and I'm confused why Microsoft doesn't include it in their offering. Compare that to Failover Clustering which enables all sorts of resources to be checked. Oh well...

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.