On Debian 13:
sudo apt update
sudo apt install -y apache2 php php-gd php-curl php-mbstring php-xml wget
On RHEL 10:
sudo dnf install -y httpd php php-gd php-curl php-mbstring php-xml wget
cd /tmp
wget https://github.com/ezservermonitor/ezservermonitor_web/releases/latest/download/ezservermonitor_web.zip
sudo apt install -y unzip # Debian only if not installed
sudo unzip ezservermonitor_web.zip -d /var/www/html/ezservermonitor
On Debian 13:
sudo chown -R www-data:www-data /var/www/html/ezservermonitor
sudo chmod -R 755 /var/www/html/ezservermonitor
On RHEL 10:
sudo chown -R apache:apache /var/www/html/ezservermonitor
sudo chmod -R 755 /var/www/html/ezservermonitor
Copy configuration file:
cd /var/www/html/ezservermonitor
sudo cp config.php.dist config.php
sudo nano config.php
Key settings to configure:
<?php
// Language
$LANG = 'en';
// Security
$USER = 'admin';
$PASS = 'your-secure-password';
// Features to enable
$CHECK_UPDATE = true;
$SHOW_HOSTNAME = true;
$SHOW_IP = true;
$SHOW_OS = true;
$SHOW_UPTIME = true;
$SHOW_CPU = true;
$SHOW_RAM = true;
$SHOW_DISK = true;
$SHOW_NETWORK = true;
$SHOW_SERVICES = true;
$SHOW_PROCESSES = true;
?>
On Debian 13:
sudo tee /etc/apache2/sites-available/ezservermonitor.conf >/dev/null <<'EOF'
<VirtualHost *:80>
ServerName ezservermonitor.example.com
DocumentRoot /var/www/html/ezservermonitor
<Directory /var/www/html/ezservermonitor>
Options -Indexes
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
EOF
sudo a2ensite ezservermonitor
sudo systemctl restart apache2
On RHEL 10:
sudo systemctl restart httpd
Access via http://SERVER_IP/ezservermonitor.
On UFW:
sudo ufw allow 80/tcp
On firewalld:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
Open http://SERVER_IP/ezservermonitor to access the dashboard.
Log in with the credentials configured in config.php.
EZ Server Monitor also offers a bash script version for terminal display:
cd /opt
wget https://raw.githubusercontent.com/ezservermonitor/ezservermonitor_bash/main/ezservermonitor.sh
chmod +x ezservermonitor.sh
./ezservermonitor.sh
sudo tee /etc/systemd/system/ezservermonitor.service >/dev/null <<'EOF'
[Unit]
Description=EZ Server Monitor Bash
After=network.target
[Service]
Type=oneshot
ExecStart=/opt/ezservermonitor.sh
StandardOutput=journal
[Install]
WantedBy=multi-user.target
EOF
Edit config.php to enable/disable specific checks:
// Enable SMART disk checks
$CHECK_SMART = true;
// Enable RAID monitoring
$CHECK_RAID = true;
// Enable Docker monitoring
$CHECK_DOCKER = true;
// Enable database monitoring
$CHECK_MYSQL = true;
$MYSQL_USER = 'monitor';
$MYSQL_PASS = 'password';
Create custom check scripts in the checks/ directory:
sudo nano /var/www/html/ezservermonitor/checks/custom_check.php
Configure email alerts in config.php:
$ALERT_EMAIL = 'admin@example.com';
$ALERT_CPU_THRESHOLD = 90;
$ALERT_RAM_THRESHOLD = 90;
$ALERT_DISK_THRESHOLD = 90;
See EZ Server Monitor Hardening.
Setting up monitoring systems can be complex. We offer consulting services for:
Contact us at office@linux-server-admin.com or visit our contact page.
Prefer automation? See EZ Server Monitor Ansible Setup for an example playbook.
Prefer containers? See EZ Server Monitor Docker Setup.
See EZ Server Monitor Configuration for configuration guidance.
See EZ Server Monitor Security for hardening guidance.