WP Manifestindependent plugin directory
manifest / utilities / mm-web-monitoring

MM Web Monitoring

A simple plugin to monitor website performance and uptime.

by Budi Haryono · github.com/itcomindo/mm-web-monitoring · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/itcomindo/mm-web-monitoring/archive/refs/heads/main.zip

Readme

🕸️ MM Web Monitoring

Powerful WordPress plugin for monitoring website uptime, SSL certificates, and domain expiration directly from your WordPress dashboard.

Forget expensive third-party monitoring services. Get enterprise-level website monitoring right in your WordPress dashboard!

MM Web Monitoring Screenshot


🚀 Why MM Web Monitoring?

Imagine managing 50+ client websites when suddenly 5 websites go down simultaneously in the middle of the night. With MM Web Monitoring, you'll know within minutes and can act quickly. This plugin is specifically designed for:

  • 🏢 Web Agencies - Monitor all client websites from one dashboard
  • 💻 Freelance Developers - Maintain reputation with 24/7 uptime monitoring
  • 🛒 E-commerce Owners - Ensure online stores are always accessible
  • 📰 Content Creators - Monitor blogs and portfolio websites
  • 🏗️ System Administrators - Centralized monitoring for multiple properties

Fitur Unggulan v1.0.9

🔍 Website Monitoring

  • Smart Monitoring: Response code check + HTML element verification
  • Flexible Intervals: 5 minutes to 24 hours customizable per website
  • Real-time Status: Live dashboard dengan auto-reload
  • Bulk Operations: Monitor 100+ websites dengan bulk add/actions
  • Enhanced Stability: Improved error handling dan plugin reliability

📧 Intelligent Email Notifications

  • Unified HTML Templates: Professional, responsive email design
  • Smart Triggers: Always notify vs. Error & Recovery only
  • Customizable Recipients: Per-website or global email settings
  • Anti-spam Protection: Rate limiting to prevent email flooding

🔒 SSL Certificate Monitoring

  • Auto SSL Check: Monitor certificate expiration
  • Early Warnings: 30/10/7 days before expiry alerts
  • Certificate Details: Issuer, expiry date, days remaining
  • Bulk SSL Status: See all SSL status in one view

🏢 Domain Monitoring

  • Domain Expiry Check: Automatic domain registration monitoring
  • Manual Override: Set custom expiry dates when needed
  • WHOIS Integration: Real-time domain information lookup
  • Advanced Alerts: 10 days before domain expiration warnings

🌐 Domain Expiration MonitoringNEW

  • Smart Domain Detection: Auto-extract root domain from complex URLs
  • Multi-TLD Support: .com, .co.uk, .web.id, .my.id and 1000+ other TLDs
  • WHOIS Integration: Real-time domain expiry checking
  • Manual Override: Manual input when WHOIS fails
  • 10-Day Alerts: Early warning before domain expiration

Enhanced User Experience

  • Consolidated Columns: SSL Status + Expiry in one column
  • Configurable Auto-reload: 10-300 seconds customizable interval
  • Beautiful UI: Modern, responsive admin interface
  • Bulk Management: Select multiple websites for bulk operations
  • Inline Editing: Quick edit directly from table view

🆕 What's New in v1.0.9

Domain Monitoring Enhancements

  • NEW: Tombol "Click Enable Domain Expiry Monitoring" untuk aktivasi pemantauan domain
  • NEW: AJAX handler untuk pemeriksaan domain secara real-time
  • NEW: Tampilan status pemeriksaan domain yang lebih informatif
  • IMPROVED: Instruksi yang lebih jelas pada checkbox pemantauan domain

🔧 Performance & Reliability

  • OPTIMIZED: Penyimpanan tanggal kedaluwarsa domain yang lebih efisien
  • ENHANCED: Cron job untuk pemeriksaan domain 30 hari sebelum kedaluwarsa
  • FIXED: Masalah pada handler AJAX untuk pemantauan domain
  • FIXED: Masalah pada penghentian cron pemeriksaan WHOIS

🔒 Security & Documentation

  • 🛡️ IMPROVED: Validasi input pada form pemantauan domain
  • 🛡️ ADDED: Nonce untuk verifikasi permintaan AJAX
  • 📖 UPDATED: Dokumentasi kode yang lebih lengkap
  • 📖 NEW: Panduan pengguna yang diperbarui untuk fitur pemantauan domain

💡 Pro Tip: Aktifkan pemantauan domain untuk semua website penting Anda dan periksa dashboard secara berkala untuk melihat status domain.


🕐 Global Daily Monitoring

  • Daily Global Check: Full SSL & domain check once daily
  • Customizable Schedule: Set what time global check runs (00:00-23:00)
  • Smart Notifications: Anti-duplicate to avoid spam
  • Comprehensive Coverage: Auto-check all active monitoring

🤔 Critical Questions Answered

Q: "Self-hosted monitoring is useless - what if the monitoring server goes down?"

This is actually the #1 concern, and here are the logical, practical solutions:

🎯 Multi-Server Monitoring Strategy (Recommended)

Primary Solution: Distributed Monitoring

# Professional Setup (3-Server Strategy)
Server 1: Main business site (monitors 70% of sites)
Server 2: Backup site/VPS (monitors 70% of sites + Server 1)  
Server 3: Third-party hosting (monitors critical sites + Server 1 & 2)

Why This Works:

  • No Single Point of Failure: If one server goes down, others continue monitoring
  • Cost Effective: Basic VPS costs $5-15/month vs. $50+ for external services
  • Cross-Network Coverage: Different hosting providers = different network paths
  • Geographic Diversity: Monitor from multiple locations globally

🔄 Automated Failover Solutions

Option 1: Monitor-the-Monitor Setup

// Install on Server 2 to monitor Server 1
add_action('mmwm_server_down_detected', function() {
    // Automatically take over monitoring duties
    wp_remote_post('https://backup-server.com/activate-monitoring');

    // Send alert to admin
    wp_mail('admin@yoursite.com', 'Primary Monitor Down', 
        'Backup monitoring server has taken over.');
});

Option 2: External Monitor for Critical Infrastructure

  • Use free tier external service (UptimeRobot free = 50 monitors) to monitor your monitoring servers only
  • Monitor your 3 monitoring servers + critical business sites
  • If monitoring server goes down, external service alerts you immediately

🌐 Hybrid Monitoring Architecture

Best Practice: 80/20 Strategy

  • 80% Self-hosted: All regular websites monitored by your servers
  • 20% External backup: Critical business sites + monitoring servers watched by external service

Example Configuration:

External Service (UptimeRobot Free):
- monitor-server-1.yoursite.com  
- monitor-server-2.yoursite.com
- critical-ecommerce-site.com
- main-business-website.com
- payment-gateway-site.com

Self-hosted (MM Web Monitoring):
- All client websites
- All development sites  
- All portfolio sites
- All secondary business sites

Q: "What about network outages, ISP problems, or datacenter issues?"

These are valid concerns with logical solutions:

🌍 Geographic Distribution

# Professional Multi-Location Setup
Primary Monitor: Your main office/hosting (monitors 100% of sites)
Secondary Monitor: Different city/state/country (monitors 50% critical sites)
Tertiary Monitor: Cloud service different provider (monitors 25% most critical)

📱 Mobile Monitoring Backup

// Add mobile checking capability
add_action('mmwm_primary_down', function() {
    // Trigger mobile app to start basic monitoring
    // Send push notification to check sites manually
    // Activate backup monitoring from mobile hotspot
});

Q: "Self-hosted monitoring creates more complexity - why not just use external services?"

Here's the real-world cost-benefit analysis:

💰 Total Cost of Ownership (5 Years)

External Service Route:

UptimeRobot Pro: $7/month × 60 months = $420
+ Pingdom: $10/month × 60 months = $600  
+ StatusCake: $15/month × 60 months = $900
+ Setup complexity: 20 hours × $50/hour = $1000
+ Monthly management: 2 hours × 60 months × $50 = $6000
= Total: $8,920 over 5 years

Self-hosted Route:

MM Web Monitoring: $0 (one-time setup)
+ VPS for backup: $10/month × 60 months = $600
+ Setup time: 8 hours × $50/hour = $400  
+ Monthly management: 0.5 hours × 60 months × $50 = $1500
= Total: $2,500 over 5 years (72% savings)

🎯 Reliability Comparison

External Services Issues:

  • ❌ False positives from Cloudflare blocking
  • ❌ IP changes without notification
  • ❌ Service outages (even big companies have downtime)
  • ❌ Limited customization
  • ❌ No control over monitoring logic

Self-hosted Benefits:

  • ✅ Complete control over monitoring logic
  • ✅ No false positives from security rules
  • ✅ Customizable intervals and notifications
  • ✅ Direct access to logs and debugging
  • ✅ Integration with your existing systems

Q: "What if I don't have technical skills for server management?"

Multiple solutions for different skill levels:

🎓 Beginner Level: Managed WordPress Hosting

# Use these managed services (they handle server management):
- WP Engine: Install plugin → Works automatically
- Kinsta: One-click WordPress → Install plugin  
- SiteGround: Managed WordPress → Plugin installation
- Cloudways: Managed hosting → Simple setup

🔧 Intermediate Level: One-Click VPS

# Services with automatic WordPress installation:
- DigitalOcean App Platform
- Linode WordPress Marketplace  
- Vultr WordPress Apps
- AWS Lightsail WordPress

⚡ Advanced Level: Full Control

# Custom server setup for maximum control
- Custom VPS with cPanel/Plesk
- Docker containers for isolation
- Kubernetes for enterprise scaling
- Custom monitoring dashboards

📊 Perfect For These Use Cases

Use Case Benefit
Agency Managing 50+ Client Sites Monitor all client websites from one dashboard, get instant alerts, professional email reports
E-commerce Multi-store Owner Ensure all stores are online 24/7, SSL certificates valid, domains not expiring
Freelance Developer Proactive monitoring = happy clients, early problem detection before clients notice
Corporate IT Team Centralized monitoring for all company domains, SSL compliance, uptime SLA tracking
Content Creator Network Monitor blog performance, ensure AdSense/affiliate sites always accessible

Addressing Common Concerns & Limitations

Q: "Plugin updates might break monitoring - what about automatic updates?"

Solution: Update Safety Strategy

// Add to wp-config.php for staging environment testing
define('MMWM_STAGING_MODE', true);         // Test updates in staging first
define('MMWM_BACKUP_CONFIG', true);        // Auto-backup settings before updates
define('MMWM_ROLLBACK_ENABLED', true);     // Enable quick rollback feature

// Disable auto-updates for critical monitoring server
add_filter('auto_update_plugin', function($update, $item) {
    if ($item->slug === 'mm-web-monitoring') {
        return false; // Manual updates only
    }
    return $update;
}, 10, 2);

Best Practices:

  • Test in staging environment before production updates
  • Schedule updates during low-traffic hours
  • Backup WordPress site before major updates
  • Monitor monitoring - have backup alerts during update window

Q: "Database growth concerns - monitoring data will fill up server space"

Solution: Intelligent Data Management

// Automatic cleanup configuration
define('MMWM_RETAIN_LOGS_DAYS', 90);       // Keep logs for 90 days
define('MMWM_ARCHIVE_OLD_DATA', true);     // Archive instead of delete
define('MMWM_COMPRESS_LOGS', true);        // Compress old monitoring data
define('MMWM_MAX_DB_SIZE_MB', 500);        // Alert when DB exceeds 500MB

// Custom cleanup schedule
add_action('mmwm_daily_cleanup', function() {
    // Archive data older than 6 months
    // Compress logs older than 30 days  
    // Delete non-critical logs older than 1 year
});

Data Management Features:

  • Automatic log rotation every 30 days
  • Compression for old data (up to 80% space savings)
  • Configurable retention periods per data type
  • Export capabilities for historical analysis

Q: "WordPress cron is unreliable - what if monitoring doesn't run?"

Solution: Multiple Cron Strategies

Option 1: Server-Level Cron (Recommended)

# Add to server crontab for guaranteed execution
*/5 * * * * curl -s https://yoursite.com/wp-cron.php >/dev/null 2>&1

# Alternative with wget
*/5 * * * * wget -q -O - https://yoursite.com/wp-cron.php >/dev/null 2>&1

# For monitoring-specific cron
*/1 * * * * php /path/to/wordpress/wp-content/plugins/mm-web-monitoring/cron-runner.php

Option 2: External Cron Services

# Use external services to trigger WordPress cron
- EasyCron.com (free tier available)
- cron-job.org (free service)
- SetCronJob.com (free tier)

# Setup: Point to your wp-cron.php URL every 5 minutes

Option 3: Monitoring Watchdog

// Self-healing monitoring system
add_action('init', function() {
    $last_run = get_option('mmwm_last_cron_run');
    $current_time = time();

    // If cron hasn't run in 10 minutes, force execution
    if (($current_time - $last_run) > 600) {
        do_action('mmwm_force_cron_execution');
        update_option('mmwm_last_cron_run', $current_time);
    }
});

Q: "Email notifications might be marked as spam - how to ensure delivery?"

Solution: Professional Email Configuration

Read the full README on GitHub →