Been debating on how to keep an eye on my home network and decided to take a swing at getting a monitoring system built from scratch to build my coding skills more. General idea:
- Have a list of devices stored in a database with information such as IPs and names
- Pull this device list, and run a ping sweep on all devices to test for activity/status
- Log this into the database for reference
- Build a lightweight front end to show this information at a glance
At this point, I’ve gotten a basic running version of this on a dedicated Linux system (Ubuntu 12.04LTS with a LAMP install). It’s extremely fast and runs every 5 minutes out of a cron entry. I’ve gotten most of the items done:
- Database has multiple devices which can be added through front end GUI based off PHP
- GUI (webpage) refreshes every 60 seconds and shows the last pull status along with logs from recent pulls to look for trends
- Cron entry kicks off Perl poller that pulls information from DB and pings each device; 10 devices in less than a second total
- Stable and has been working without issue for a few days now
I’ve also gone and tested a few of the devices, unplugging them and what not and still show up without issue. Mind you, this is a dirty way to show this information and needs cleaning, but it works. Next goals are to clean up the dashboard a bit, maybe add a search tool in the near future and some color logging to note the bad devices. Who knows, maybe a ticket system in the future? Stay tuned as always!