phpIPAM (PHP IP Address Management) is the leading open-source IPAM solution — it tracks your IPv4/IPv6 address space, VLANs, VRF configurations, and SNMP-discovered network devices. When phpIPAM goes down, your team loses visibility into IP allocations, VLAN assignments, and subnet utilization. Worse, scheduled SNMP discovery scans stop running silently, leaving your IPAM database stale. Vigilmon keeps watch over phpIPAM's web UI, REST API, and scheduled discovery cron jobs so you always know when something is wrong.
What You'll Set Up
- HTTP uptime monitor for the phpIPAM login page
- REST API endpoint health check (
/api/{app_id}/sections/) - Database connectivity verification via HTTP keyword check
- SSL certificate expiry alerts for HTTPS phpIPAM setups
- Cron heartbeat for phpIPAM scheduled SNMP discovery scans
Prerequisites
- phpIPAM installed and accessible over HTTP or HTTPS
- phpIPAM API enabled with an app ID configured (for Step 2)
- A free Vigilmon account
Step 1: Monitor the phpIPAM Web UI
phpIPAM's login page is your primary health signal. If it's unreachable, your team can't look up IP allocations or make changes.
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your phpIPAM URL:
https://ipam.yourdomain.com/ - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Enable Keyword Check and enter
phpIPAMto confirm the page is rendering correctly. - Click Save.
The keyword check catches PHP fatal errors or misconfigured web server setups that return HTTP 200 but serve a blank or error page instead of the phpIPAM login form.
Step 2: Monitor the phpIPAM REST API
phpIPAM exposes a REST API for automated IP management workflows. The /api/{app_id}/sections/ endpoint lists your defined IP sections and is a reliable API health indicator.
- Click Add Monitor →
HTTP / HTTPS. - Enter:
Replacehttps://ipam.yourdomain.com/api/myapp/sections/myappwith your configured phpIPAM API app ID (found in Administration → phpIPAM API). - Set Check interval to
5 minutes. - Set Expected HTTP status to
200. - Enable Keyword Check and enter
success(the API returns{"code":200,"success":true,...}on a healthy response). - Click Save.
If your phpIPAM API requires token authentication, first obtain a session token:
curl -X POST https://ipam.yourdomain.com/api/myapp/user/ \
-u "admin:yourpassword"
Then add the token to Vigilmon's Custom Headers:
phpipam-token: YOUR_TOKEN_HERE
For unattended monitoring, create a read-only API user in phpIPAM with minimal permissions.
Step 3: Verify Database Connectivity via HTTP Keyword Check
phpIPAM requires MySQL/MariaDB. If the database becomes unavailable, phpIPAM renders a database error page instead of the login form — but Apache/nginx may still return HTTP 200.
- Open the web UI monitor from Step 1.
- Expand Keyword Check.
- Set the keyword to
phpIPAMand enable Keyword must be present mode. - Save.
A database outage causes phpIPAM to render a PHP error or a blank page — the keyword phpIPAM disappears from the response, triggering a Vigilmon alert without requiring database-level monitoring.
Step 4: SSL Certificate Alerts for HTTPS phpIPAM Setups
phpIPAM often sits on an internal network with a self-signed or internal CA certificate, or on a public-facing subdomain with a Let's Encrypt certificate. Either way, certificate expiry breaks access for your entire team.
- Open the phpIPAM web UI monitor.
- Enable Monitor SSL certificate under the SSL section.
- Set Alert when certificate expires in less than
21 days. - Click Save.
For internal CA certificates with short validity periods (common in enterprise environments), reduce the alert threshold to 7 days to match your renewal cadence.
Check your current certificate expiry:
echo | openssl s_client -connect ipam.yourdomain.com:443 -servername ipam.yourdomain.com 2>/dev/null \
| openssl x509 -noout -dates
Step 5: Heartbeat Monitoring for phpIPAM SNMP Discovery Scans
phpIPAM's SNMP discovery scans keep your device and IP data current. These scans run as scheduled cron jobs — if the cron job stops executing or the phpIPAM discovery agent fails, your IPAM database silently falls out of sync with the real network.
Set Up the Heartbeat Monitor
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Set Expected ping interval to match your discovery schedule (e.g.
60minutes for hourly subnet scans). - Copy the heartbeat URL (e.g.
https://vigilmon.online/heartbeat/abc123).
Wire It Into Your phpIPAM Discovery Cron
phpIPAM's discovery script is typically invoked via php /var/www/phpipam/functions/scripts/discoveryCheck.php. A typical cron entry:
0 * * * * /usr/bin/php /var/www/phpipam/functions/scripts/discoveryCheck.php
Extend it to ping Vigilmon after a successful run:
0 * * * * /usr/bin/php /var/www/phpipam/functions/scripts/discoveryCheck.php && curl -s https://vigilmon.online/heartbeat/abc123
For the ping-sweep scan script:
*/15 * * * * /usr/bin/php /var/www/phpipam/functions/scripts/pingCheck.php && curl -s https://vigilmon.online/heartbeat/def456
If a discovery scan crashes or the cron job is accidentally deleted, Vigilmon alerts after the expected interval passes with no ping received.
Step 6: Configure Alert Channels
- Go to Alert Channels in Vigilmon and configure email, Slack, or a webhook.
- Set Consecutive failures before alert to
2for the web UI monitor — phpIPAM restarts after a crash may cause a single check to fail. - Use Maintenance windows during phpIPAM upgrades or database migrations to suppress expected downtime alerts.
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| Web UI | / (login page) | Application down, PHP errors |
| Keyword check | phpIPAM on login page | Database connection failure |
| REST API | /api/{app_id}/sections/ | API stack failure |
| SSL certificate | Your phpIPAM domain | Certificate expiry |
| Discovery heartbeat | Heartbeat URL | Missed SNMP scan runs |
| Ping scan heartbeat | Heartbeat URL | Missed ping sweep runs |
phpIPAM is the single source of truth for your IP address space — when it goes dark or falls behind, your network team works blind. With Vigilmon watching the web UI, API, database connectivity signal, SSL certificate, and discovery cron heartbeats, you get continuous assurance that your IPAM data is fresh and your management interface is always accessible.