Internet uptime (and speed??) monitoring solution/application. Any ideas?

Aug 21, 2009
As per another post, I've said that I have had MAJOR connectivity issues on my DSL line. My modem used to keep a log but somehow it mysteriously purges randomly and I am lucky to have more than a weeks of data available. I experince service outages of fairly often (many times weekly) and sometimes they can last a day or two. After 10+ years of constant complaining no soltions/fixes from the ISP. So, I would like to figure out a way to monitor the connectivity and save the data to a log file on a computer on the network. Ideally this could be run on the router and saved there.

I can run this either on Windows or Linux (and my router runs a linux distro).

I'd also like to figure out a way to do a speed test (upload & download) as well as latency.

If anyone knows of a program that does this, I would appreciate a reference, link or the name.

I'm thinking that a simple ping command (ping -n 1) run every 30 seconds (-n 1 means just one ping, not the standard 4) and this will tell me if I can get "outside" the network. This could be piped into a text file and the data cumulatively saved with a new file ever day/week/month (and maybe a running cumulative file). It would log date and time when it was run.

As far as the upload and download, IDK how the speed test sites do it. I suppose I could find a file somewhere on the net and use wget to download it (or put a file on a server and rsync, but that requites login and such). I could put a file on a server and wget as well. What file size would be good to test every 15 mins? 10mb? 50mb? I think the upload test would be most difficult b/c IDK of commands to upload a file. I think cURL, PUT, POST and wget --method=PUT may work but I've never used these and have only seen mention of them - also, where could a file be sent over & over (re-written / over-written)?
Use a local linux box. Write a bash script and maybe a python script or two to do all of the above, put a file on a server somewhere close to you (digitalocean or linode are network-close to the entire US) to test transfer speeds. Plug the data into a database and use cacti to graph it. is freeware for up to 100 sensors. You can setup ping monitor to various sites as well as they have provisions to autodownload files from different sites to try to gauge bandwidth. As for file sizes, you'll need to ballpark it base on your speeds. Higher speeds will require larger files in order to get some kind of accuracy.

Keep in mind this is all contingent on everything working between you and the remote sites that you'll be testing. In other words if there is a problem on hop 12 and it's outside your ISP's network, then you can't fault your ISP for those kinds of connectivity problems.

Generally speaking a ping monitor setup to ping the next hop or two outside of your IP should be sufficient to determine if there is a drop in connectivity and its directly related to your ISP.