Server Monitoring & Alerts
Set up comprehensive server monitoring and alerting for California businesses. Covers CPU, memory, disk, and network metrics with automated alert configuration.
Here's the hard truth about server monitoring: you're either watching your servers, or you're putting out fires. There's no middle ground. Every business we've worked with in Stockton, Modesto, and Tracy that didn't have proper monitoring ended up calling us in panic mode when something crashed.
The difference between a minor inconvenience and a business-ending disaster? Knowing about problems before your users do.
Why Monitoring Actually Prevents Disasters
The $10,000 Question: How much does downtime cost your business per hour? For most of our clients, it's between $5,000 and $50,000. Every hour. That's lost productivity, lost sales, lost customer confidence, and IT staff pulling overtime to fix problems that monitoring would have caught early.
Real example from last month: A distribution company in Tracy had their SQL server slowly running out of disk space. No monitoring. They found out when the database crashed during their busiest shipping day of the year. Four hours of downtime. $38,000 in lost business. A $20/month monitoring solution would have alerted them a week earlier when they still had 20% free space.
What You Actually Need to Monitor (Not the Enterprise Nonsense)
The Critical Four (These Break Everything)
Disk Space -- Servers fill up, and when they hit 100%, they stop working. Period.
- Alert at 80% full so you have time to clean up or add storage
- Track growth trends so you know when you'll run out
- Monitor temp directories—they fill up faster than you think
CPU Usage -- Sustained high CPU means something's wrong or you need more resources.
- Alert if over 80% for more than 10 minutes
- Identify which processes are consuming resources
- Track historical patterns to spot slowdowns before users complain
Memory Usage -- When you run out of RAM, performance tanks.
- Alert at 85% memory usage
- Watch for memory leaks (usage climbing over time)
- Know your baseline—sudden spikes indicate problems
Network Connectivity -- If users can't reach the server, nothing else matters.
- Ping monitoring every minute
- Alert if server doesn't respond to 3 consecutive pings
- Monitor network interface status
A manufacturing company in Manteca ignored high CPU alerts for weeks. "It's always high, we'll deal with it later." Then their line-of-business app crashed during a critical production run because the overloaded server couldn't handle the load. Four hours of stopped production. Don't ignore alerts just because you get them regularly—investigate and fix the root cause.
Application-Specific Monitoring
Web servers (IIS):
- Response time for key pages
- Failed requests and error rates
- Application pool health
- Certificate expiration dates
Database servers (SQL Server):
- Failed login attempts (potential attack)
- Long-running queries
- Database file sizes
- Backup job completion
- Transaction log sizes
File servers:
- SMB connection count
- Failed access attempts
- Shadow copy status
- Replication health (if using DFS)
Domain controllers:
- AD replication status
- DNS query failures
- Netlogon errors
- Authentication failures
Setting Up Monitoring That Actually Works
For Small Businesses (Under 50 People)
You don't need enterprise-grade monitoring. You need something that works and doesn't require a PhD to configure.
PRTG Network Monitor (Free for up to 100 sensors):
- Easy setup with auto-discovery
- Good out-of-box sensors for Windows
- Email and SMS alerts
- Decent mobile app
Basic setup takes 30 minutes:
- Install PRTG on a workstation or small server
- Run auto-discovery to find your devices
- Enable default sensors (ping, CPU, memory, disk)
- Configure email alerts
- Set thresholds based on your environment
# Quick PowerShell monitoring for the DIY approach
# Save this as Monitor-Server.ps1 and schedule it to run every 5 minutes
$Server = $env:COMPUTERNAME
$AlertEmail = "it@yourcompany.com"
$SMTPServer = "smtp.yourcompany.com"
# Check disk space
$Disks = Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3"
foreach ($Disk in $Disks) {
$FreePercent = ($Disk.FreeSpace / $Disk.Size) * 100
if ($FreePercent -lt 20) {
$Subject = "LOW DISK SPACE: $Server - $($Disk.DeviceID)"
$Body = "Drive $($Disk.DeviceID) is $([math]::Round($FreePercent,2))% free"
Send-MailMessage -To $AlertEmail -From "monitoring@yourcompany.com" -Subject $Subject -Body $Body -SmtpServer $SMTPServer
}
}
# Check CPU
$CPU = (Get-Counter '\\Processor(_Total)\\% Processor Time').CounterSamples.CookedValue
if ($CPU -gt 80) {
$Subject = "HIGH CPU: $Server"
$Body = "CPU usage is at $([math]::Round($CPU,2))%"
Send-MailMessage -To $AlertEmail -From "monitoring@yourcompany.com" -Subject $Subject -Body $Body -SmtpServer $SMTPServer
}
# Check memory
$Memory = Get-WmiObject Win32_OperatingSystem
$MemoryPercent = (($Memory.TotalVisibleMemorySize - $Memory.FreePhysicalMemory) / $Memory.TotalVisibleMemorySize) * 100
if ($MemoryPercent -gt 85) {
$Subject = "HIGH MEMORY: $Server"
$Body = "Memory usage is at $([math]::Round($MemoryPercent,2))%"
Send-MailMessage -To $AlertEmail -From "monitoring@yourcompany.com" -Subject $Subject -Body $Body -SmtpServer $SMTPServer
}
# Check critical services
$CriticalServices = @("NTDS", "W3SVC", "MSSQLSERVER") # Adjust for your environment
foreach ($Service in $CriticalServices) {
$Status = Get-Service $Service -ErrorAction SilentlyContinue
if ($Status -and $Status.Status -ne "Running") {
$Subject = "SERVICE DOWN: $Server - $Service"
$Body = "Critical service $Service is $($Status.Status)"
Send-MailMessage -To $AlertEmail -From "monitoring@yourcompany.com" -Subject $Subject -Body $Body -SmtpServer $SMTPServer
}
}
For Mid-Size Businesses (50-200 People)
You need something more capable, with better reporting and historical data.
The Tools That Actually Work:
SolarWinds N-central -- Full RMM (remote monitoring and management)
- Auto-remediation for common issues
- Patch management integration
- Good automation capabilities
- Used by most MSPs for a reason
Datto RMM -- Strong backup integration
- Built-in integration with Datto backup appliances
- Good patch management
- Reasonable pricing for mid-size deployments
Nagios/Nagios XI -- Open-source powerhouse
- Extremely flexible
- Free core version
- Requires more technical expertise
- Great community support
Alert Configuration (Don't Drown in Noise)
The Alert Fatigue Problem
We've seen businesses set up monitoring, get 50 alerts per day, and then start ignoring all of them. That's worse than having no monitoring at all.
The right approach:
- Start with critical alerts only—things that require immediate action
- Alert different people for different issues (disk space to infrastructure team, application errors to dev team)
- Use escalation—first alert goes to on-call tech, if not acknowledged in 15 minutes, escalate to manager
- Alert via multiple channels (email, SMS, mobile app)
Critical vs Warning vs Info
Critical -- Immediate business impact, immediate action required:
- Server unreachable
- Critical service down
- Database offline
- Out of disk space
Warning -- Could become critical, investigate within 1-4 hours:
- Disk space under 20%
- CPU over 80% for 10+ minutes
- Memory over 85%
- Backup job failed
Info -- Good to know, review during business hours:
- Non-critical service restarted
- Successful backup completion
- Performance baseline exceeded
- Configuration changes detected
A law firm in Lodi had everything set to "critical"—including successful backup notifications. They got so many alerts that they turned off email notifications entirely. Then their backups actually failed for a week and nobody noticed until they needed to restore something.
Cost-Benefit Analysis of Monitoring
Let's do the math on why monitoring pays for itself:
Scenario: Small Business (20 employees)
- Monitoring tool: $50/month ($600/year)
- Time to set up: 4 hours (one-time)
- Downtime without monitoring: 8 hours/year (conservative estimate)
- Downtime cost: $5,000/hour (lost productivity + emergency IT)
- Annual savings: $40,000 - $600 = $39,400
Scenario: Mid-Size Business (100 employees)
- Monitoring tool: $200/month ($2,400/year)
- Time to set up: 8 hours (one-time)
- Downtime without monitoring: 12 hours/year
- Downtime cost: $15,000/hour
- Annual savings: $180,000 - $2,400 = $177,600
These numbers are conservative. We've seen single incidents cost more than a year's monitoring budget.
Beyond Basic Monitoring: Proactive Maintenance
Trend Analysis That Prevents Problems
Monitor disk growth weekly. If a drive is 50% full and growing 5GB per week, you know you have 10 weeks before problems start. Order more storage now, not during an emergency.
Track baseline performance. If Monday mornings are slow because everyone logs in at once, you know that's normal. If Thursday afternoon suddenly becomes slow, something changed—investigate.
Log aggregation catches patterns. A few failed login attempts per day? Normal. Hundreds from the same IP? You're under attack.
Capacity Planning
Good monitoring tells you when you'll need more:
- Storage -- Track growth rate and plan purchases 3 months ahead
- CPU/Memory -- Identify workloads that need more resources
- Network -- Spot bandwidth bottlenecks before they impact users
- Licensing -- Know when you'll exceed license limits
The Monitoring Tools Comparison
Free/Open Source Options
Nagios Core
- Pros: Free, extremely flexible, huge community
- Cons: Steep learning curve, basic web interface
- Best for: Technical teams comfortable with Linux
Zabbix
- Pros: Free, modern UI, good scalability
- Cons: Complex initial setup
- Best for: Mid to large environments with technical staff
Prometheus + Grafana
- Pros: Excellent for containerized environments, beautiful dashboards
- Cons: Focused on metrics, less complete for traditional Windows servers
- Best for: DevOps teams, cloud-native applications
Commercial Options (That Are Worth the Money)
PRTG Network Monitor
- Price: Free up to 100 sensors, paid beyond
- Sweet spot: Small to mid-size businesses
- Strength: Easy setup, Windows-friendly
SolarWinds
- Price: $$$ (licensing per device)
- Sweet spot: Mid-size to enterprise
- Strength: Full feature set, mature product
Datadog
- Price: $$$$ (per host per month)
- Sweet spot: Cloud-heavy environments
- Strength: Excellent cloud integration, beautiful dashboards
Getting Started: The 1-Hour Monitoring Setup
For an immediate monitoring win:
Install PRTG (30 minutes)
- Download, install, run auto-discovery
- Verify it found your servers
Configure alerts (20 minutes)
- Add email/SMS notification settings
- Set thresholds on auto-created sensors
- Test alerts to verify delivery
Create dashboard (10 minutes)
- Pin critical servers and services
- Set up mobile app access
- Bookmark the dashboard URL
You now have basic monitoring that would have prevented half the emergencies we've responded to this year.
When to Call for Help
DIY monitoring works until it doesn't. If you're spending more time managing monitoring than it saves you, or if you're getting critical alerts you don't understand, it's time to get professional help.
We set up full monitoring for businesses across the Central Valley. The goal isn't alerts—it's preventing problems before they impact your business.
Related Documentation
Active Directory Management
Manage users, groups, and security policies in Active Directory. Covers AD setup, group policy, permission management, and troubleshooting for businesses.
Backup & Recovery Procedures
Backup and disaster recovery strategies for California businesses: scheduling, offsite storage, retention policies, and regular recovery testing.
Need Help Implementing This?
Our technical experts can help you implement these solutions in your environment.