1. Introduction
EasyTools Website Uptime Monitor checks your public websites on a schedule from the EasyTools server. It emails you when a website stops responding and again when it recovers. Each customer has a private dashboard showing only their own websites, reports and alert settings.
What it is not: it is not a guaranteed or instant monitoring network. Checks run periodically from one server, so alerts arrive after the confirmation checks complete. It also cannot detect an outage of the server it runs on.
2. Requirements
- WordPress 6.2 or later, PHP 7.4 or later (tested on PHP 8.3 and WordPress 6.8.3).
- MySQL 5.7+ or MariaDB 10.3+ (named locks
GET_LOCKare used for safe concurrency). - PHP cURL extension recommended (enables connection pinning against DNS rebinding).
- Working outgoing email: an SMTP plugin is strongly recommended.
- A server cron job (Plesk Scheduled Task) for reliable timing; see section 11.
3. Installation and activation
- Back up the database and the current plugin folder (see the deployment guide).
- WordPress → Plugins → Add New → Upload Plugin → choose the ZIP → Replace current with uploaded.
- The database upgrade runs automatically on the next page load. Existing websites, incidents and alert recipients are copied into the new tables. The previous version's data is left untouched as a rollback copy.
- Open Site Uptime → Settings → Advanced and confirm the migration log and scheduler status.
- For members: create a page (it can stay private or draft while testing) containing
[etum_member_dashboard], then select it under Settings → Member dashboard.
4. Adding a website
Enter a name and the full address including https://. Only public websites on the standard ports (80/443) can be monitored. Local, private-network, cloud-metadata and internal addresses are blocked for security, including addresses reached through redirects or DNS tricks.
Members add websites from My websites → + Add website. Administrators add administration-owned websites from the Site Uptime dashboard.
5. Understanding monitoring status
| Status | Colour | Meaning |
|---|---|---|
| Online | Green | The latest check returned HTTP 200–399. |
| Warning | Amber | A check failed. The monitor is confirming before declaring DOWN. |
| Down | Red | Consecutive checks failed (2 by default). A DOWN alert was sent. |
| Awaiting first check | Grey | The website has not been checked yet. It is never shown as Online until confirmed. |
| Paused / On hold | Grey | Paused by you, or on hold because the website allowance or licence does not cover it. |
Failed checks include timeouts, DNS failures, SSL certificate errors, connection errors and HTTP 400+. Firewalls, Cloudflare challenges or geo-blocking that block the EasyTools server can cause false alarms. Allow the monitor's user agent EasyTools-Uptime-Monitor where possible.
6. DOWN and RECOVERED alerts
- DOWN is sent once, after the configured number of consecutive failures (default 2). It is not repeated while the website stays down.
- RECOVERED is sent once, at the first successful check after DOWN. It shows the estimated downtime, measured from the confirmed DOWN check to the recovery check. The real outage may have started up to one check interval earlier.
- Flood protection limits each website to a maximum number of alert emails per hour (default 6). Further transitions are still recorded as incidents.
- Members choose up to 3 recipients and can switch DOWN or RECOVERED emails on or off for their own websites only.
7. SMTP email configuration
The monitor sends through WordPress wp_mail(), so any SMTP plugin (WP Mail SMTP, FluentSMTP, Post SMTP and so on) works without changes. Every alert includes a plain-text version for clients that do not display HTML. Use Send test email after configuring SMTP. “WordPress accepted the email” confirms hand-off to the mail system, not inbox delivery.
8. Viewing website reports
Reports are available for the last 24 hours, 7 days, 30 days or a custom date range (up to one year, limited by retention). Each report shows current status, measured uptime, average response time, incidents, estimated downtime, observation coverage, a daily chart, missing-check periods, incident history and recent checks. Export to CSV or use Print report (or print to PDF from your browser).
- Measured uptime = successful checks ÷ recorded checks. It is shown only after at least 12 checks in the period. It is never estimated.
- Coverage compares recorded checks with the checks expected at the configured interval. Low coverage means cron was delayed, monitoring was paused or the server was unavailable. The status during those gaps is unknown.
- Websites added before the upgrade have measured data only from the upgrade onwards, because the previous version did not store individual checks.
9. Plan and website allowance
Website Uptime Monitor is a hosted service: EasyTools' server checks your websites. There is nothing to download or install, and there is no free plan.
| Plan | Price | Websites |
|---|---|---|
| Annual plan | RM9.90 per year | 1 website |
The annual plan is not on sale yet.
- Limits are enforced on the server. Simultaneous submissions cannot exceed the allowance.
- Paused websites count toward the allowance. Removing a website frees its slot immediately. The record is kept for history but no longer checked.
- Expiry or a smaller allowance: nothing is deleted. Your oldest websites, up to the allowance, keep being monitored, and the rest are put “On hold”. If the licence is inactive, all are on hold. Holds lift automatically after renewal.
- Earlier packages: licences bought under the earlier Basic, Standard or Unlimited packages keep their original allowance until they end. Renewal is always the annual plan.
- Checks are shared fairly between customers, and a total service capacity limit protects the server.
10. Subscribing, activation and renewal
The annual plan is bought from your EasyTools account through EasyTools Wallet (Touch 'n Go). Your licence appears in My Licences and My Products.
- Subscribe: press Subscribe on the product page or in Licence & billing, pay at Wallet checkout, then upload the payment receipt and reference.
- Start immediately: monitoring starts as soon as the receipt is uploaded, while EasyTools reviews the payment.
- Verification: an EasyTools administrator verifies every payment. If it has not been verified within 48 hours, monitoring is put on hold (nothing is deleted). It resumes automatically when the payment is verified.
- Rejected payment: only that order's access is removed. Any other active Uptime licence you hold keeps working.
- Several licences: if you hold more than one active licence, the one with the largest allowance applies (allowances are not added together).
- Renewal and expiry: renew from Licence & billing before the expiry date. After expiry, monitoring is put on hold and your websites and history are kept until you renew.
- Account suspension: if your EasyTools account is suspended, monitoring is put on hold.
Administrators verify or reject payments in EasyTools Wallet → Payments & Transactions, and manage licences in Wallet → Licences. The Uptime Monitor only reads this information and never changes it.
11. Plesk cron configuration
By default WordPress cron runs only when someone visits the site, so checks can be delayed on quiet sites. For dependable timing:
- Plesk → Websites & Domains → Scheduled Tasks → Add Task.
- Choose Fetch a URL with
https://easytools.my/wp-cron.php?doing_wp_cron, or Run a PHP script with the site'swp-cron.php. - Schedule: every minute (
* * * * *). Notify: on errors only. - Confirm in Settings → Advanced that the scheduler shows “Worker recently active”.
- Then add
define( 'DISABLE_WP_CRON', true );towp-config.phpso visitors no longer trigger cron.
Capacity (measured on the test server): each worker run checks up to 30 due websites, 6 at a time. Checks are pinned and time-limited. On the test server, websites answering in 0.3–1.0 s took about 4 s per run of 30. The worst case, 30 websites all timing out at 7 s, took 35 s, inside the 40-second run budget. With one run per minute and a 5-minute interval, the scheduler can sustain about 120 websites (interval ÷ 1 min × batch × 80%). New registrations are refused above the lower of this figure and the Service capacity setting (default 150), so the enforced default is 120. Settings → Monitoring shows the live figure. The scheduler shows “Checks are running behind” if real conditions are worse.
Dedicated runner (recommended with other EasyTools jobs): WordPress cron runs due jobs one after another in a single request, so a long uptime run could delay other EasyTools jobs, such as Wallet expiry. To avoid this, add a Plesk task, Run a command, every minute: cd /var/www/vhosts/easytools.my/httpdocs && /opt/plesk/php/8.3/bin/php /usr/local/bin/wp etum-uptime run --quiet. Adjust the paths. Then set Settings → Monitoring → Worker runner to “Dedicated Plesk task”. If monitoring is halted for security reasons, the command exits with an error, so Plesk's “notify on errors” emails you. Other commands: wp etum-uptime status, wp etum-uptime cron-audit --easytools, wp etum-uptime integrity, wp etum-uptime export --dir=/path/outside/webroot.
Storage: each check uses about 184 bytes including indexes, roughly 53 KB per website per day at 5-minute checks. With the default 35-day retention, that is about 1.9 MB per website, or about 230 MB at 120 websites.
12. Troubleshooting
- “Worker may be stalled”: no run for 15+ minutes. Check the Plesk task,
DISABLE_WP_CRONand PHP errors. - “Checks are running behind”: more websites are due than one run can process. Add server cron, raise the batch size, or lengthen the interval.
- A website shows Down but opens in my browser: the EasyTools server may be blocked by a firewall, Cloudflare or geo rule. Check the HTTP code in the report.
- No alert emails: send a test email, check SMTP logs and spam, and confirm DOWN/RECOVERED alerts are enabled. Each incident records the email result (sent, failed, disabled, throttled).
- “Monitoring halted (security)”: this server cannot make pinned connections (PHP cURL missing, libcurl too old, or an outbound proxy is configured). No checks are sent and no statuses change until this is fixed. See Settings → Advanced → Secure transport.
- “Destination blocked by security rules”: the address or a redirect points to a private, local or reserved network.
- Cannot add a website: check the website allowance, licence status and the service capacity in Settings.
13. FAQs
How often are websites checked? About every 5 minutes by default, depending on cron.
Are alerts instant? No. With default settings, a DOWN alert typically arrives 5–10 minutes after the first failed check.
Does deleting a website delete its history? The website stops being checked and disappears from your dashboard. Its records are retained for history and audit.
Can EasyTools staff see my websites? Authorised administrators can view, check and pause websites for support. They cannot edit or delete them for you, and support actions are logged.
14. Security and privacy
- Each member sees only their own websites, reports, incidents and alert settings. Ownership is checked on the server for every action.
- All forms use WordPress nonces and capability checks. Database queries are prepared, and output is escaped.
- Monitoring requests are protected against server-side request forgery. Only public addresses are allowed, and every redirect is re-validated. Connections are pinned to the validated IP address, and the connected address is verified after each request. If pinning is not possible, the monitor sends nothing (fail-closed), rather than falling back to a less safe method.
- If a WordPress user account is deleted, their monitored websites are paused and kept with full history. Ownership is never transferred automatically.
- Alerts contain the website name and address only. Licence or account details are never included.
- Only HTTP status and timing are stored. Page content is not downloaded or stored.
- Individual check results are kept for 35 days by default (enough for 30-day reports). Uninstalling keeps all data unless the administrator explicitly opts in to deletion in
wp-config.php.
15. Support
EasyTools Support: easytools.my/support · Documentation: easytools.my/documentation