57

I've been having a lot of problems with both of my Internet providers lately, and I'd like to start monitoring and graphing the quality of my Internet connections. My ultimate goal is to be able to produce graphs and data that I can take to my ISP to assist them in narrowing down what the problem might be.

I'd like something that runs nicely in the background on Windows 7 with a convenient task bar icon that I can use to browse the collected data and change the configuration of the program as needed. I want to collect the following types of data:

  • Pings to various hosts that I define
  • The time it takes to complete a HTTP request to various hosts that I define
  • How long it takes to download a 1 MB file at an interval (to get a rough estimate of speed)

Timestamps, of course, would be critical in logged data. I imagine being able to create graphs similar to what the Cacti network monitor produces.

I have something that monitors the quality of my WiFi connections, the Xirrus WiFi inspector and companion desktop gadget, but this only measures the quality of signal from my router to my machine, and the data doesn't easily persist. Still, it illustrates the kind of interface I'm hoping for.

Is there something that fits, or comes close to fitting this criteria?

  • Outside of writing a batch file to do the necessary actions and scheduling it, I don't know that there is a single specific solution. Also, I could just be full of crap because I'm not familiar with Windows batch files. – dotVezz Feb 5 '14 at 13:24
  • Have you considered doing collection and perhaps even visualizing on the router? Whether this is possible depends a lot on your router model. – Gilles 'SO- stop being evil' Feb 5 '14 at 15:57
  • @Gilles I wish I could. One connection provides me with a proprietary router / modem combo unit (with exceptionally awesome WiFi, it's a nice unit) .. just not hack-able unfortunately. I could use my own and just treat their's like a gateway, but that adds another hop and I'd have to shell out for the same WiFi power. – Tim Post Feb 5 '14 at 16:02
  • @TimPost, What do you mean by "it takes to download a 1 MB file at an interval"? Do you mean this file is pre-specified by you? And what's the plan to differentiate between a problem on your side vs a problem on the hosting servers that you are accessing? – Pacerier Mar 31 '15 at 23:18
29

Smokeping (demo) does all that. However, this includes multiple caveats. This is not out-of-the box solution for Windows. I have not tested this on Windows, but I'm using Smokeping for exactly same thing. To avoid installing on Windows, see bottom of this post.

  • It's for unix based systems, so installing it to windows is not easy
  • There's no GUI. All configuration goes to configuration file.
  • Output should be accessed through web server/browser. Web server causes additional overhead.
  • Installation script only supports smokeping 2.2.4, which is already 7 years old.
    • But smokeping is not updated really often, 7 year old version is basically feature complete
    • Modifying installation script and patches for newer version should be easy.

This old, and probably outdated blog post offers Windows installation instructions, quickly referenced below. Requires downloading installer/patch set, which might disappear. The patch set changes Unix paths to Windows paths.

  1. Install perl
  2. Install web server, for example wamp
  3. Configure cgi-bin support to your web server
  4. Download this installer/patch set
  5. unzip and run perl install\ n\ patch.pl. Downloads smokeping and patches files for Windows support.

Following steps are from this blog post:

  1. Test it by running C:\smokeping-2.2.4\bin\smokeping.pl on cmd.exe
  2. Wait for 15 minutes while smokeping pings predefined targets.
  3. Try opening http://127.0.0.1/cgi-bin/smokeping.pl
  4. Configure autostart: add scheduled task for the same command, and option to run it on each startup.
  5. Modify C:\smokeping-2.2.4\etc\config.dist to suit your configuration. Restart smokeping after changes.

Pinging redefined targets is supported by default. For http requests, there's EchoPingHttp.


Alternatively you could install Linux to virtual machine. For example, install Debian with no graphical environment to VirtualBox. Disk usage is really conservative (by default, somewhere around 3MB/destination/probe, with one-year history). For memory, 256MB is easily enough if you're not planning to run anything else. Advantage of this approach is getting the newest version, and avoiding patching smokeping and installation/configuration hassles.

Installation in Debian:

sudo apt-get install smokeping
sudo vi /etc/smokeping/config.d/Targets
sudo /etc/init.d/smokeping reload

By default, smokeping is available at http://virtual_machine_ip/cgi-bin/smokeping.cgi (replace virtual_machine_ip with IP address of your virtual machine). Note that by default, you can only connect to VirtualBox machines from the host OS, not from another computer.

Yet another alternative is to buy Raspberry PI (30€/$25), and run smokeping on that. Do note that migrating database files (Round Robin Database, RRD) to different processor architecture is far from simple. If you don't mind losing history, you don't have to care about this.

  • 1
    Doing this via Virtual Box never occurred to me, I'm going to give this a try today. I think it installs simply in Debian. – Tim Post Feb 5 '14 at 14:46
  • 1
    Coming back a bit later, this works brilliantly using VirtualBox. The loss / latency you pick up using the virtual network adapters is quite negligible. The VM itself can have a very small footprint, and also serve other functions (FTP store, local DNS, etc). Still, there's quite a void that a Windows application could conceivably fill if someone were to create it. – Tim Post Oct 5 '14 at 5:37
0

Mac

PeakHour
Seems interesting although not tested:
https://peakhourapp.com/

Windows

ISP monitor
Started using, provides average down/up speeds + ping, lacks graphing capability to visualize results over time.
http://ispmonitor.be/software/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.