Connection Monitoring - Bounty USD $100
I have used a tool called net-check on some Fedora Boxes and it is a very simple perl script that works with crontab. It can be found at this link: http://aaron.marasco.com/linux.html#net-check
It does a good job but is lacking in some features.
Where I am a 384k link costs $768 per month and the ISP guarantees a 99.85% uptime which they are failing to deliver.
What I would like to achieve is a script or program that polls a user defined IP on the internet in a multi-wan environment and summarizes down time, cost etc for me.
So for example:
WAN1 I would like to poll yahoo.com (user definable - either an IP or address) every 120 seconds (The user must be able to set this) and when the connection goes down it should poll yahoo.com every 10 seconds until the link is re-established (Again this is a variable that the user can define). I would also want to be able to enter my monthly charge for the connection i.e. $768 and at the end of every month the script needs to sum up the down time, calculate the percentage down time, calculate the cost of the down time and email it to 1 or more user defined email addresses.
WAN2 I would like to poll cisco.com (user definable - either an IP or address) every 60 seconds (The user must be able to set this) and when the connection goes down it should poll cisco.com every 10 seconds until the link is re-established (Again this is a variable that the user can define). I would also want to be able to enter my monthly charge for the connection i.e. $139 and at the end of every month the script needs to sum up the down time, calculate the percentage down time, calculate the cost of the down time and email it to 1 or more user defined email addresses.
The currency symbol must be able to be set by the user i.e. $ for dollars L for Lempiras etc.
The script must also have the option to connect via ftp to a web server and post the a html document with the same summary on a daily basis and this summary must be displayed on the pfsense box as well, viewable via a user-definable port i.e.: 8000 - representing the total cumulative downtime and cost for the day, the month and the year. I would also like it and the emailed summary to display the timestamp (date and time) for when the link went down and when it came back up.
You can do something similiar right now. Create a pool at services>Loadbalancer and just don't use it anywhere. Enter the monitoring IP of your choice. State changes now will be logged under status>systemlogs, loadbalancer. Won't calculate costs but at least you see when the conection disappears and when it comes back. Also status>rrd graphs, quality will show you packetloss if your wan goes down.
Thanks for the info I will implement that in the interim.
Further to the requirements I posted for the connection monitoring app, thinking about it, each WAN would probably have to have three user defined IPs to monitor, the first being the ISPs router, the second being a first choice external IP like yahoo and the third a backup external IP so… app keeps checking yahoo.com until it can't be reached, once it is unable to reach yahoo it should check the backup IP for example cisco.com to ensure it is not that yahoo suddenly dropped of the face of the earth. If cisco.com is responding then the app should monitor it until such point that it goes offline.
If it is unable to poll either of those IPs (yahoo.com or cisco.com) it should then check if the ISPs router is reachable.
What would you think about an application like Nagios? I've had some interest in getting the details of this install down, but if you would be interested in a Nagios, I would be more much interested myself. Note also that if nagios won't work out for you, we may be able to get the additional funcionality you need by teaming it up with NRPE.
See screenshots at:
Getting this up and running shouldn't be too bad as long as you don't require the configuration for it to be in the gui as it is somewhat extensive. It is an excellent monitoring system though, and will allow you to run reports on outages a several different formats.
I compiled and installed the Nagios NRPE add-on last week on a pfSense developer install. Didn't have any problems compiling it or any of the Nagios plug-ins. Nagios itself would probably compile, but I have a separate box for that and have little interest in having that on my router.
There is a check_ping plugin that should work to ping the hosts you need though you'd probably have to set up static routes for them to ensure that they ping out the appropriate gateway.
While it wouldn't provide the specific billing information, Nagios would keep track of when the connections have gone down and approximately how long. Plus it can notify you of the outage via email or pager.
What I've been wanting to do is write a custom plugin to poll the status of my VPN tunnels so I can tell if one of those isn't functioning. Haven't had a chance to delve into what CLI tools are available in pfSense and FreeBSD to read that status of IPSEC VPNs along with all the other pfSense goodies.
Right after I finish figuring out how to add and extra 10 hours to a day, I'll create a pfSense package for the whole thing….
Cry Havok last edited by
Also worth looking at Hobbit (http://hobbitmon.sf.net/), which can do the sort of monitoring you're after and provide alerting.
Again, no billing info, but it can do summary statistics for user defined periods of time (so you can easily see the availability over the last X days).
I'd add another 50$ for the following details in the reporting…..whatever software is used in collecting data and endorsed as a good choice by the leading pfsense developers:
- Bandwidth consumed by the WAN, start date & end date to be user defined.
- Downtime & downtime timings by the WAN during the defined billing period.
- Latency checked for given sites through each WAN for specified sites and reported if above given latency for that site.
- In addition to web based reporting, Reports to be emailed through a SMTP server on the LAN to given two-three email addresses.
Anyone taking this on please reconfirm the bounty with features you propose to implement.