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!
Before I continue: I am NOT a fanboy nor do I push to use Apple’s products exclusively. I have an Android phone (Motorola X2) which I love, along with a Transformer 300T tablet. Onto the good stuff…
Why would I consider a Mac when I’ve been a PC guy literally my whole life and swear by Windows for gaming and day to day functionality? A bunch of guys at the office are being upgraded to Macbook Pro systems and the developers swear by them for using the tools for coding and the terminal itself for developing code. I do a bit in Perl and Bash both for work and for home life so it only makes sense to develop this on a *NIX based system (Linux/Unix, or a Mac in this instance) so it”s easier to test and migrate system to system. Along with this, I”ve spoken to a number of people who use them day to day and also love the systems as IT people who use them very often (think 8+ hours a day between work and home). So, I got an on call from work for some extra money and took the plunge.
What did I get? I went the refurbished route as the warranty is the same as the new ones and I’ve had decent luck with refurb products in general. I’ve also been told that the build quality is quite excellent so I didn’t expect to be disappointed. Onto the good stuff:
- MacBook Pro, November 2013 Series
- 16GB DDR3L RAM
- i7-4850HQ, quad-core, 2.3 – 3.5GHz
- 15 inch retina display
- 512GB SSD
I want to note at this point in the story I have NO recent experience with Mac operating systems, not since elementary school when I used them in a computer lab, so going into this I had very little experience. Thankfully I’m pretty apt to figuring out new toys.
I’ve owned the machine for a few months now and it’s been a learning experience to say the least. The Macbook Pro is ridiculously fast and has only had a couple moments where it’s showed the slightest slow down, and that was while running multiple VMs (in VirtualBox) along with a slew of other applications through work. The learning curve from an IT guy perspective hasn’t been bad. Google is a good friend in this case to find applications (Apps for short) to replace a number of the Windows programs I’d normally use. I use Chrome anyways so that was a quick install, then installed Office 2010 for Mac since I use the system for work and need the full capabilities and options. Adium, Spotify, VirtualBox, and ZOC round out my other Apps I use on almost a daily basis. Apart from not having a Notepad++ solution (using Editra but doesn’t have the full functionality), I haven’t had a hard time finding anything to replace my Windows brethren.
Next steps: Start looking into some of the games from my Steam library and look into Wine for Mac to run Windows applications. More updates to come!