Software to Monitor the Stability of Internet Connection [closed]

For quick, short term monitoring, a tool like Ping Plotter can give you a graph of connectivity that includes not only a graph of ping times, but also red bars that show when there was no connectivity.

For more permanent, long term monitoring, a dedicated tool like Cacti or Smoke Ping is the way to go.


Pardon me for going slightly offtopic, but I felt your pain a couple of years ago and I've developed a workflow which you might find useful.

When debugging a connectivity issue, I split it into three parts:

  • my connection to the ISP (that's between me and the gateway at the ISP)
  • the infrastructure of the ISP (you will have to do a little investigation to find this out, because some ISPs don't disclose their network ranges. Look at the output of traceroute and do "whois" against each IP starting with your gateway. Up to a certain point they will be assigned to your ISP, that's the internal infrastructure of your ISP)
  • the rest of the internet

My favorite tool for debugging networking issues is mtr. There are at least Linux and Windows versions. It works like a combination of ping and traceroute - it's like an interactive traceroute.

A wide class of connectivity issues happens because IP packets loss. I will elaborate on them in reverse order:

  • issues outside your ISP. This is not an excuse for your ISP support to turn around angry customers. They should work with the upstream provider and settle this. Such problems don't happen often, because backbone ISPs have better quality. They might happen if some link went down and traffic is temporarily rerouted over a backup link that has lower bandwidth.
  • issues inside your ISP infrastructure. This is the situation when you can be more harsh. Call the support and tell them "Your router with this IP (you will see which one in mtr, there will be packet losses there) has issues. Fix them and tell me how much time do you need for fixing that." Sometimes they will say ten minutes or 30 minutes, just to dodge your call, because most people call once and give up. If they said ten minutes and the problem is not getting fixed, call again after ten minutes. Never say "internet is not working" or something like that. Tell them exactly what the problem is, if you can figure it out, this will make them understand that you know the tech part and they won't get away with silencing you by providing some silly tech excuse.
  • issues between you and your gateway. These can be harder to debug, because there are many factors involved. They can happen because your network card went faulty. But they also can happen because you get ADSL over an old phone line and the signal is bad. This is already the headache of your ISP, it shall replace your phone line to meet the standards.

Missing internet stresses people a lot, so never be rude when talking with support guys. Remember that they are just earning some money this way and generally they are not your ennemies :-) So be nice to them. But also always ask for their name and ID. It is important because this way you already know the name you shall complain about later, if the support guy provides inaccurate information or is just telling plain lies to you (yes, that happens too). If you feel that you are wasting your time, politely request to be hooked up with an upper-level sysadmin and talk to him.

Set up a locally hosted forum and spread the word among the clients of a certain ISP. If something gets bad, the forum will instantly fill up with complaints and logs which prove that the ISP indeed has issues and that your case is not a single one. Such an argument is very valuable if the situation evolves and you have to talk with a senior manager. They are very sensitive about such matters and this is one of the reasons why a lot of ISPs don't have their own tech support forums for customers, because every reported issue is bad PR for them :-)

As correctly pointed, monopolies, especially government-linked ones, are another pain. But this is a double edge sword. If the monopoly gains bad reputation against its clients as "crappy ISP", as soon as there will appear a second player on the market (and this will eventually happen, sooner or later) - a lot of clients will cancel their contracts. Not for switching to a better ISP, just for getting rid of a crappy one.

Regarding your ping problem: yes, it can be a DNS issue. Sometimes ISP startups (especially in developing countries) get a pair of DNS servers configured when launching their services. At some point the client base grows enough that the DNS servers can't handle the load anymore "just because sometimes it still works, so no need to fix anything". There are a couple of workarounds here that can help mitigate the problem:

  • use alternate DNS servers: the ones from google or from opendns. Use them if you can, it is not always possible, because some ISPs go as far as blocking DNS requests to third-party DNS servers (guess what happens when their own DNS servers die for some reason)
  • use a local DNS caching proxy. I've used pdnsd and it did the job very well for me

You probably need to figure out what a good definition of "stability" is. You talk about, for example, a failure of name resolution (the "unable to resolve host" error), but you don't mention if ICMP (pings) or other traffic can "get out" during such outages. It may be that you're using a firewall/router device with a caching DNS server implementation that's faulty, for example, and seeing failures of DNS that have nothing at all to do with the Internet connection.

To my mind, you need to find a host that you can ping and, during an outage, verify that you can or cannot ping that host using its IP address in the ping command-line.

If pings don't go through I'd do a "traceroute" (or "tracert", if you're on Windows) to that same IP address and determine if you're able to see your requests leaving your LAN and entering the ISP's network.

Ultimately you really do need to rule out problems with your software / equipment first before going to the trouble of setting up any software to do long-term monitoring.

If you do get to the long-term monitoring point, pgs's answer re: Cacti or Smoke Ping is a good way to go. You don't just have to measure ICMP, though. You could just as easily report on the ability to resolve DNS names or to connect to an external server via some application-layer protocol.

Until you have a pretty good idea of what is happening it makes little sense to track when it's happening except as a way to assist in determining what's happening.