Fix: a registered MinIO server shows as unreachable
A storage server registered with ImpulseMinio is showing as unreachable on the admin tab, and any provisioning task that touches it stalls or fails.
Last updated 20 days ago
Fix: a registered MinIO server shows as unreachable
What you're seeing
In the ImpulseMinio admin tab, the server row's status badge is amber or red. The admin-proxy health check has stopped ticking green. Any provisioning, quota, or replication task that targets this server stalls in the cron runner or fails outright. The audit log under mod_impulsecore_audit_log filtered to module=impulseminio shows connection-refused, TLS, or HTTP timeout exceptions.
Why it happens
ImpulseMinio talks to each MinIO host over two channels:
- The MinIO S3 endpoint on TCP 443 (HTTPS) for tenant operations.
- The admin proxy on TCP 9099 (default) for create/delete bucket, user, quota.
If either channel is broken, the server is reported as unreachable. The usual culprits are firewall rules (especially missing IPv6), a TLS certificate that didn't renew, or a per-region admin-proxy bearer token that has drifted from what's stored in WHMCS.
Fix
- Get a clean baseline. From the WHMCS box, confirm the host is up at the IP level:
ping -c 3 us-central-dallas.example.com ping6 -c 3 us-central-dallas.example.com - Test the MinIO endpoint without TLS validation. This isolates a cert problem from a connectivity problem:
curl -kI https://us-central-dallas.example.com/minio/health/live200 OKmeans MinIO is up and your only issue is TLS.Connection refusedor hang means a firewall or down service. - Test the admin proxy. Substitute the bearer token from the server row's Edit form:
curl -H "Authorization: Bearer <token>" \ https://us-central-dallas.example.com:9099/admin/v1/health - Confirm UFW rules cover both IPv4 and IPv6. On the MinIO host:
ufw status numberedEvery WHMCS IP needs a rule for ports 443 and 9099 in both
tcpandtcp6. A v4-only rule looks correct in casual inspection but blocks any WHMCS box that resolves to IPv6 first. - If only the admin proxy is failing, re-check the bearer token. Open the server row in the addon, click Edit, and confirm the admin-proxy port and Bearer token match what's installed on the host. Per-region tokens are not interchangeable.
- If TLS specifically is failing, SSH into the MinIO host and check certbot:
sudo certbot certificates sudo systemctl status nginxA stale cert usually means certbot lost DNS API permission. Re-issue the DNS provider token with
Zone:Readand re-runcertbot renew.
How to confirm it worked
The server row's status badge flips back to green online within one cron tick (typically under five minutes). The admin-proxy last-check timestamp on the row updates. The audit log stops appending new exceptions for this server. Any provisioning task that was stuck retries on its own.