Server Maintenance
Routine server maintenance procedures and schedules for MDHosting Ltd infrastructure, ensuring optimal performance, security, and reliability.
Overview
Regular server maintenance is essential for maintaining service quality, security, and uptime. This document outlines scheduled maintenance activities, emergency procedures, and best practices for all MDHosting servers.
Maintenance Objectives: - Security: Keep systems patched and secure - Performance: Maintain optimal server performance - Reliability: Prevent issues through proactive maintenance - Transparency: Clear communication with clients during maintenance - Minimal Disruption: Schedule maintenance during low-traffic periods
Maintenance Philosophy: - Live Patching: KernelCare enables kernel updates without reboots - Proactive Monitoring: Identify and resolve issues before client impact - Scheduled Windows: Predictable maintenance schedules - Emergency Response: Rapid response to critical security issues
Maintenance Schedule
Regular Maintenance Windows
Scheduled Maintenance: First Tuesday of Each Month - Time: 02:00-04:00 GMT (low-traffic period) - Duration: Up to 2 hours - Scope: Non-critical updates, configuration changes, testing - Client Notification: 7 days advance notice (if reboot required)
Emergency Maintenance: As Required - Criteria: Critical security patches, service outages, urgent fixes - Notification: Minimum 4 hours notice (when possible) - Client Communication: Email and status page updates
Daily Maintenance Tasks: - Time: 03:00-03:30 GMT - Scope: Automated backups, log rotation, monitoring checks - Impact: Negligible (no service disruption)
Maintenance Calendar
gantt
title Monthly Maintenance Schedule
dateFormat YYYY-MM-DD
section Regular Maintenance
Monthly Scheduled Window (1st Tuesday) :done, 2026-01-07, 2h
Daily Automated Tasks :active, 2026-01-01, 30d
section Quarterly Tasks
Q1 Security Audit :2026-03-15, 7d
Q2 Security Audit :2026-06-15, 7d
Q3 Security Audit :2026-09-15, 7d
Q4 Security Audit :2026-12-15, 7d
section Annual Tasks
ApisCP Migration Planning :2026-02-01, 90d
Infrastructure Review :2026-06-01, 14d
Daily Maintenance Tasks
Automated Daily Operations
Backup Operations (02:00-04:00 GMT): - Full account backups via cPanel - Transfer to Hetzner BX11 Storage Box - Backup verification and error checking - Retention cleanup (>30 days)
Log Management (03:00 GMT): - Log rotation (Apache, MySQL, system logs) - Compression of old logs - Cleanup of logs >90 days - Error log analysis
Security Scans (03:30 GMT): - Imunify360 malware scanning - ClamAV virus scanning - File integrity monitoring - Suspicious activity detection
System Health Checks (04:00 GMT): - Disk space monitoring (alert if >80%) - Memory usage analysis - CPU load monitoring - Service availability checks - SSL certificate expiry checks
Daily Manual Checks (Weekdays)
Morning Checks (09:00-10:00 GMT):
- Review Overnight Alerts:
- Check email for backup failures
- Review Imunify360 alerts
- Check CSF firewall notifications
-
Review any automated incident reports
-
Verify Service Status:
-
Review Backup Status:
- Log in to WHM → Backup → Backup Status
- Verify all accounts backed up successfully
- Investigate any failures
-
Re-run failed backups if necessary
-
Check Client Support Tickets:
- Review new tickets in Blesta
- Prioritise critical issues
- Respond to urgent requests
Afternoon Checks (15:00-16:00 GMT): - Monitor resource usage trends - Review any new security alerts - Check for pending software updates - Prepare for next day if maintenance scheduled
Weekly Maintenance Tasks
Every Monday Morning (10:00 GMT)
Security Review: 1. Review Imunify360 Dashboard: - Check for malware detections - Review blocked IPs and attacks - Verify firewall rules - Check for false positives
-
Review CSF Firewall Logs:
-
SSL Certificate Audit:
- Check for expiring certificates (<30 days)
- Verify AutoSSL functioning
- Review any SSL errors
Performance Review: 1. Analyse Resource Usage: - Review CPU usage trends - Check memory consumption patterns - Analyse disk I/O statistics - Identify resource-heavy accounts
-
Database Optimisation:
-
Web Server Optimisation:
- Review Apache/nginx error logs
- Check for slow queries
- Analyse access patterns
- Optimise configurations if needed
Every Friday Afternoon (16:00 GMT)
Backup Verification: 1. Test Random Backup Restore: - Select random client account - Restore one file to verify backup integrity - Document results
- Storage Space Management:
- Check backup storage utilisation
- Verify BX11 Storage Box capacity
- Clean up old/unnecessary backups if needed
Pre-Weekend Checks: 1. Verify Monitoring: - Ensure all monitoring systems active - Check notification settings - Verify on-call contact details current
- Review Pending Updates:
- Check for critical security patches
- Schedule emergency maintenance if required
- Prepare patch notes for Monday
Monthly Maintenance Tasks
First Tuesday of Month (02:00-04:00 GMT)
Operating System Updates:
- Pre-Update Checklist:
- ✅ Backups completed and verified
- ✅ Current snapshot/backup of critical configurations
- ✅ Rollback plan prepared
-
✅ Client notification sent (if reboot required)
-
Apply Updates (AlmaLinux):
# Update package lists dnf check-update # Review available updates dnf list updates # Apply all updates (excluding kernel - KernelCare handles this) dnf update --exclude=kernel* # Check for services requiring restart needs-restarting -s # Restart services as needed systemctl restart httpd mysql exim -
KernelCare Live Patching:
cPanel/WHM Updates:
-
Update cPanel:
-
Update EA4 (Apache/PHP):
-
Update Plugins:
- Imunify360: Auto-updates enabled
- ConfigServer products: Check for updates
- WHM plugins: Review and update
Security Hardening:
- Review Security Settings:
- Audit user accounts (remove unused)
- Review sudo access permissions
- Check SSH key authentication
-
Verify firewall rules current
-
Password Rotation:
- Rotate root passwords (quarterly)
- Update stored credentials in password manager
-
Verify new passwords work before finalising
-
Security Scan:
Database Maintenance:
-
MySQL Optimisation:
-
Database Size Review:
- Identify largest databases
- Check for bloated tables
- Recommend optimisations to clients if needed
Log Review and Cleanup:
-
Archive Old Logs:
-
Analyse Error Patterns:
- Review Apache error logs for patterns
- Check MySQL slow query log
- Identify recurring issues
Disk Space Management:
-
Cleanup Operations:
-
Storage Review:
- Identify accounts consuming most space
- Check for suspicious storage growth
- Contact clients approaching quota limits
Post-Maintenance Verification:
-
Service Checks:
-
Client Verification:
- Spot-check 3-5 client websites
- Verify email functionality
- Check cPanel accessibility
-
Monitor for post-maintenance support tickets
-
Documentation:
- Record maintenance activities
- Document any issues encountered
- Update internal documentation if needed
Quarterly Maintenance Tasks
Security Audit (Mid-Quarter)
Comprehensive Security Review:
- External Security Scan:
- Run vulnerability scan (OpenVAS or similar)
- Check for exposed services
- Verify firewall effectiveness
-
Test for common vulnerabilities
-
Access Control Audit:
- Review all SSH keys
- Audit cPanel account permissions
- Check reseller accounts
-
Verify API token usage
-
Compliance Check:
- Review GDPR procedures
- Verify data retention policies
- Check backup encryption status
- Update Data Processing Agreements if needed
Performance Optimisation:
- Resource Analysis:
- Review 3-month resource trends
- Identify growth patterns
- Plan capacity upgrades if needed
-
Optimise resource allocation
-
Client Account Review:
- Identify inactive accounts
- Review accounts approaching limits
- Contact clients for service adjustments
- Optimise package allocations
Disaster Recovery Testing (Quarterly)
Backup Restore Testing:
- Full Account Restore Test:
- Select test account or create dummy account
- Perform full restore from backup
- Verify all data restored correctly
-
Document restore time (RTO verification)
-
Database Restore Test:
- Test MySQL database restoration
- Verify data integrity
-
Check for corruption
-
Email Restore Test:
- Test mailbox restoration
- Verify email account configuration
- Check mail filters and settings
Failover Testing:
- DNS Failover (if implemented):
- Test DNS failover procedures
- Verify monitoring triggers failover
-
Document failover and recovery time
-
Service Recovery:
- Simulate service failure
- Execute recovery procedures
- Measure recovery time objectives (RTO)
Annual Maintenance Tasks
Infrastructure Review (Mid-Year)
Comprehensive Infrastructure Assessment:
- Hardware Review:
- Assess server specifications
- Review resource utilisation trends
- Plan hardware upgrades or migrations
-
Evaluate cost optimisation opportunities
-
Software Licensing:
- Review cPanel licenses (renewal dates)
- Audit other software licenses
- Evaluate license tier requirements
-
Plan for software migrations (ApisCP)
-
Service Provider Review:
- Evaluate Hetzner performance and costs
- Review backup storage adequacy
- Assess registrar (internet.bs) performance
- Consider alternative providers if beneficial
Documentation Update:
- Procedure Review:
- Update all operational procedures
- Verify contact information current
- Update network diagrams
-
Review and update disaster recovery plans
-
Compliance Documentation:
- Update GDPR documentation
- Review Data Processing Agreements
- Update incident response procedures
- Verify ICO registration current
Capacity Planning (Annual)
Growth Analysis:
- Client Growth Review:
- Analyse client acquisition trends
- Review churn rate
- Project next year's growth
-
Plan infrastructure scaling
-
Resource Forecasting:
- Project storage requirements
- Estimate bandwidth needs
- Plan CPU/RAM requirements
-
Budget for infrastructure expansion
-
Financial Planning:
- Review infrastructure costs
- Plan capital expenditures
- Evaluate cost-saving opportunities
- Budget for migrations (ApisCP)
Emergency Maintenance Procedures
Critical Security Patches
Immediate Response (Within 4 Hours):
- Assessment:
- Evaluate severity (CVSS score, exploitability)
- Determine affected systems
- Check for active exploitation
-
Assess client impact
-
Client Notification:
Subject: Emergency Maintenance Notification - [Date/Time] Dear MDHosting Client, We are performing emergency security maintenance on [date] at [time] to address a critical security vulnerability. Expected Impact: [Brief service interruption/No impact expected] Maintenance Window: [Start Time] - [End Time] GMT Duration: Approximately [X] minutes This maintenance is necessary to protect your hosting account and data. We apologise for the short notice and any inconvenience. Updates will be posted to: [Status Page URL] MDHosting Ltd admin@mdhosting.co.uk -
Patch Application:
-
Verification:
- Verify vulnerability patched
- Test service functionality
- Monitor for issues
- Update clients on completion
Service Outage Response
Immediate Actions:
- Incident Declaration:
- Log incident start time
- Notify on-call staff
-
Begin incident log
-
Assessment:
-
Service Restoration:
- Restart failed services
- Clear any resource constraints
- Restore from backup if corruption detected
-
Implement temporary fixes if needed
-
Client Communication:
- Provide status updates every 30 minutes
- Use Blesta announcement system
- Update status page
- Send post-incident summary
Hardware Failure Response
See: Incident Response Procedures for comprehensive hardware failure workflows.
Quick Actions:
- Hetzner Support:
- Open emergency ticket
- Request hardware diagnostics
-
Arrange replacement if needed
-
Failover (if possible):
- Migrate critical services to backup server
- Update DNS for affected services
-
Restore from backups if necessary
-
Client Notification:
- Provide transparent updates
- Set realistic expectations
- Offer service credits if significant impact
Maintenance Best Practices
Pre-Maintenance Checklist
Before any significant maintenance:
- ✅ Backups completed and verified (within 24 hours)
- ✅ Rollback plan documented
- ✅ Client notification sent (if impact expected)
- ✅ Change window approved
- ✅ Staff availability confirmed
- ✅ Testing plan prepared
- ✅ Monitoring systems active
During Maintenance
Communication: - Post start/progress/completion updates - Document all actions taken - Note any unexpected issues - Keep incident log updated
Verification: - Test each change before proceeding - Verify services after each major step - Monitor system metrics continuously - Check for client reports of issues
Post-Maintenance
Immediate Verification: - Test all critical services - Spot-check client websites - Review error logs - Monitor support tickets
Documentation: - Record all changes made - Document issues encountered - Update procedures if needed - File maintenance report
Follow-Up (24 Hours): - Review monitoring data - Check for delayed issues - Respond to client feedback - Verify backup success post-maintenance
Client Communication
Planned Maintenance Notification (7 Days Advance)
Subject: Scheduled Maintenance - [Date] at [Time] GMT
Dear MDHosting Client,
We will be performing scheduled server maintenance on:
Date: [Day, Month Date, Year]
Time: [Start Time] - [End Time] GMT
Expected Duration: [X] hours
Expected Impact: [Minimal/Brief interruption]
Maintenance Activities:
- Security updates and patches
- Performance optimisations
- System health checks
Your hosting services should remain available during this maintenance window. In the unlikely event of service disruption, downtime will be minimal.
You do not need to take any action. Your websites and email will be automatically restored if any brief interruption occurs.
If you have any questions or concerns, please contact us via:
- Support Tickets: https://mdhosting.co.uk/billing/submitticket.php
- Email: admin@mdhosting.co.uk
Thank you for your understanding.
Best regards,
MDHosting Ltd
Emergency Maintenance Notification (Minimum 4 Hours Notice)
Subject: URGENT: Emergency Maintenance - [Date] at [Time] GMT
Dear MDHosting Client,
We must perform emergency security maintenance to protect your hosting account:
Date: [Today/Tomorrow]
Time: [Start Time] - [End Time] GMT
Expected Duration: [X] minutes
Impact: [Brief service interruption expected]
Reason: Critical security vulnerability requires immediate patching
We apologise for the short notice. This maintenance is essential for your security and data protection.
Your services will be automatically restored. No action is required from you.
We will provide updates via:
- Email notifications
- Status page: [URL]
- Client portal: https://mdhosting.co.uk/billing
For urgent concerns, contact: admin@mdhosting.co.uk
Thank you for your understanding.
MDHosting Ltd
Maintenance Completion Notification
Subject: Maintenance Completed - Services Restored
Dear MDHosting Client,
Our scheduled maintenance has been completed successfully.
All services have been restored and are operating normally. Your websites and email should be fully accessible.
If you experience any issues, please contact support immediately:
- Support Tickets: https://mdhosting.co.uk/billing/submitticket.php
- Email: admin@mdhosting.co.uk
Thank you for your patience during this maintenance window.
Best regards,
MDHosting Ltd
Monitoring During Maintenance
Real-Time Monitoring
Service Availability:
# Monitor HTTP response
watch -n 10 'curl -Is https://eu1.mdhosting.co.uk | head -1'
# Monitor service status
watch -n 5 'systemctl status httpd mysql exim'
# Monitor system load
watch -n 5 'uptime; free -h'
Error Monitoring:
# Watch Apache errors
tail -f /usr/local/apache/logs/error_log
# Watch MySQL errors
tail -f /var/lib/mysql/$(hostname).err
# Watch system messages
tail -f /var/log/messages
Post-Maintenance Monitoring (24-48 Hours)
Automated Checks: - Service availability (uptime monitoring) - Response time metrics - Error rate monitoring - Resource utilisation trends
Manual Verification: - Client support ticket volume - Error log analysis - Backup success rates - Security alert review
Maintenance Tools & Commands
Essential System Commands
# System Information
uname -a # Kernel version
cat /etc/redhat-release # OS version
uptime # System uptime and load
# Resource Monitoring
top # Interactive process viewer
htop # Enhanced process viewer (if installed)
iotop # I/O monitoring
free -h # Memory usage
df -h # Disk usage
du -sh /home/* # Directory sizes
# Service Management
systemctl list-units --type=service --state=running
systemctl status [service]
systemctl restart [service]
systemctl enable [service]
journalctl -u [service] -n 50
# Log Analysis
tail -f /var/log/messages
grep -i error /var/log/messages | tail -50
journalctl -p err -since "1 hour ago"
# Network
ss -tunlp # Listening ports
netstat -an | grep ESTABLISHED | wc -l # Active connections
ping -c 4 8.8.8.8 # Network connectivity
# Security
csf -l # CSF firewall status
csf -g [IP] # Check IP in firewall
fail2ban-client status # Fail2Ban status (if used)
cPanel/WHM Specific Commands
# cPanel Scripts
/scripts/check_cpanel_rpms --fix # Fix cPanel RPMs
/scripts/upcp --force # Force cPanel update
/scripts/restartsrv_httpd # Restart Apache
/scripts/restartsrv_mysql # Restart MySQL
/scripts/restartsrv_exim # Restart Exim
# Account Management
/scripts/listaccts # List all accounts
/scripts/suspendacct [user] # Suspend account
/scripts/unsuspendacct [user] # Unsuspend account
# Backup Management
/scripts/pkgacct [username] # Create account backup
/scripts/restorepkg [username] # Restore account
# Security
/scripts/check_security # Security audit
/scripts/compilers off # Disable compilers (security)
KernelCare Commands
# Check KernelCare status
kcarectl --info
# Update to latest patches
kcarectl --update
# Check effective kernel version
kcarectl --uname
# Verify license
kcarectl --license-info
Additional Resources
Internal Documentation: - Security Monitoring - Imunify360, KernelCare, monitoring procedures - Incident Response - Emergency response procedures - Backup & Recovery - Backup procedures and restoration - Network Architecture - Infrastructure diagrams and configuration
External Resources: - AlmaLinux Documentation - OS documentation - cPanel Documentation - cPanel/WHM guides - KernelCare Documentation - Live patching guides - Imunify360 Documentation - Security platform guides
Tools: - Server Status - Public status page (if implemented) - WHM - Server management - Blesta Admin - Client management
Last updated: January 2026