A load balancer is supposed to make your application more resilient. Ironically, it can also make monitoring harder. When you monitor your public URL and everything looks fine, you might be missing that two of your four backend nodes are returning errors — the load balancer is just routing around them and the aggregate health check passes.
This guide covers what traditional monitoring misses about load-balanced infrastructure and how to build monitoring that actually catches load balancer failures.
Why Traditional Monitoring Misses Load Balancer Issues
Most uptime monitors hit a single URL and declare the service healthy if it returns 200. That works fine for a single-server setup. Behind a load balancer, the picture is more complex:
- Node failures hidden by routing — a load balancer with 3 healthy nodes and 1 failing node will still pass a naive health check 75% of the time
- Inconsistent responses across nodes — a bad deployment rolled out to one node means 25% of users see errors while monitoring reports 100% uptime
- Load balancer health check misconfiguration — your LB health check path may pass while the actual application path fails
- CDN cache masking origin failures — a CDN can serve cached content for hours after your origin goes down, making monitoring think the service is healthy
- SSL termination at the LB — SSL issues between the LB and your nodes go undetected if you only monitor the public HTTPS endpoint
Monitoring Individual Nodes vs the Load-Balanced Endpoint
Comprehensive load balancer monitoring requires checks at two levels:
Level 1: Public Endpoint Monitoring
Monitor your public URL as your users see it. This catches complete failures — when the load balancer itself is down, when all nodes fail simultaneously, or when DNS resolution breaks. Use this as your primary availability SLI.
Level 2: Individual Node Monitoring
If your nodes are directly reachable (bypassing the LB), monitor them individually. This requires your nodes to have accessible addresses — either private IPs from a monitoring agent running inside your network, or public IPs/hostnames if you've opened them.
Set up separate Vigilmon monitors for each node. When one node starts returning errors, you'll see its monitor go red while the public endpoint monitor stays green — exactly the signal you need to diagnose a partial failure before it cascades.
For teams without direct node access, monitor your LB's per-backend metrics (most load balancers expose these) and alert on backend unhealthy counts.
Health Check Path Configuration
Your load balancer's health check path should be different from your application's root URL. Best practices:
- Use
/healthor/healthz— a dedicated endpoint that checks application internals - Have the health check verify database connectivity, cache reachability, and critical dependencies
- Return
200only when the node is fully ready to serve traffic; return503when degraded - Keep health check response times under 100ms — slow health checks look like failures to aggressive LB health checkers
Configure Vigilmon to monitor the same /health path that your LB uses. This way your uptime monitoring and your LB health checks are validating the same thing, and divergence between them is a signal worth investigating.
CDN Edge Monitoring
Content Delivery Networks add another layer of complexity. When you monitor https://yourapp.com, you may be hitting a CDN edge node in Frankfurt while your users in Singapore hit a different edge. A network partition between a CDN edge and your origin affects only some regions.
Vigilmon's multi-region monitoring addresses this directly. By sending checks from multiple geographic locations, you detect:
- Regional CDN failures — an edge goes down in one region but not others
- Origin connectivity issues — the CDN can't reach your origin servers from specific regions
- Cache poisoning — incorrect cached responses served in one region but not another
- Geo-routing failures — your CDN's traffic steering sends users to the wrong origin
Configure Vigilmon checks from at least 3 regions covering your primary user geographies. When a check fails from one region but passes from others, you've isolated the blast radius immediately.
SSL at the Load Balancer
SSL termination at the load balancer is standard practice — clients connect via HTTPS to the LB, which decrypts and forwards HTTP to backend nodes. This means:
- Monitor the public HTTPS endpoint for certificate validity and expiry
- The LB certificate is what matters — backend node SSL doesn't face the public
- Watch for certificate mismatches if you use multiple domains or SNI
Vigilmon's SSL monitoring checks certificate validity, expiry date, and chain integrity. Set alerts 21 days before expiry — long enough to renew through any approval or DNS propagation delay.
If your LB serves multiple domains via SNI, add a separate SSL monitor per domain. A wildcard certificate renewal that misses one subdomain will go unnoticed otherwise.
Detecting Load Balancer Failures with Vigilmon
Here's the recommended Vigilmon setup for a load-balanced application:
- Public endpoint monitor — your primary URL, multi-region, 1-minute interval
- Health check monitor —
https://yourdomain.com/health, keyword check for{"status":"ok"} - SSL certificate monitor — 21-day advance expiry alert
- Node monitors (if accessible) — one monitor per backend node, 2-minute interval
- CDN origin monitor — direct hit to your origin bypassing the CDN (use
Hostheader to identify the domain)
Configure separate alert policies for node-level failures vs. full outages. A single node failure warrants a Slack notification to your engineering team. A full public endpoint outage warrants immediate PagerDuty escalation.
Common Load Balancer Monitoring Mistakes
- Monitoring only the root URL — use the health check path instead
- Single-region monitoring — misses CDN and regional failures
- No node-level visibility — hides partial failures until they grow
- SSL monitoring pointing at wrong domain — monitor the exact SNI name users hit
- Alert thresholds too high — a single failed check in 3 regions should alert; don't require 3 consecutive failures
Conclusion
Load balancers and CDNs make your application more resilient, but they also create monitoring blind spots if you rely on a single public URL check. Multi-level monitoring — public endpoint, individual nodes, health check paths, and multi-region probes — gives you the visibility to catch partial failures before they become total outages.
Vigilmon's multi-region infrastructure and flexible monitor configuration make it straightforward to build this monitoring stack. Set it up once and you'll stop being surprised by "but monitoring said we were up" post-mortems.