Sunday, 6 December 2015

PRTG as a Pachube/Cosm/Xively replacement?

Developer/Maker friendly long term data storage can be hard to come across but I think I have found a pretty neat solution.

PRTG is a network monitoring tool produced by Paessler. It also allows ticket management and all sorts of very clever stuff that's totally over the top for a home user, but it does give you access to a really cool dashboard creating tool (see above), a load of built in sensors, the ability to add custom sensor it's totally free for up to 100 sensors. Before I jump ahead lets give your a brief overview of the terminology used in PRTG.

What is a channel

A channel is basically a single data point. Each channel can have a value (a decimal normally), but it can also be a lookup with text as shown below.
For each channel you can specify various options, but the most useful are Units (specifies the units for the thing you are measuring)
You can also specify limits that cause the channel to switch state automatically (in this example a value above 90 will cause the sensor to be in error state).
Finally you can do get some pretty nice graphs for each channel (this shows my energy usage for the last 2 days)

What is a sensor

A sensor is basically a collection of channels (up to 50 is recommended). It has an overall status of Ok, Warning or Error depending on the child channels. PRTG does a really nice job of summarizing the status of all your sensors.

The sensor screen acts a bit like a dashabord for all the channels the sensor contains.

What is a device

A device can have a collection of sensors that normally relate to the devices IP (but they don't have to). The device is clever in that it will automatically pause any sensors on it if some of the lighter weight sensors report an error condition (if for example it stops replying to ping)
The device can also show a nice summary of the status of it's sensors

Device Groups

You can also group devices together like "Windows Machines" etc. Again the status of all the sensors below get grouped up.

Notifications

You can out of the box configure PRTG to e-mail you (or push a notification to you) when a channel goes into a specific state.

Maps

This is perhaps my favourite feature! This lets you create really cool dashboards showing the status, and values of all the items above. Here for example is the map of my network

Mobile App

Paessler have created amazingly complete applications for iOS, Android and even Windows Phone. The apps are very fully featured and make use of the native platforms (for example you can add sensors as widgets on android). As a mobile developer I'm really happy to see this!

Ok, what sort of things can you monitor

Out of the box there are over 200 sensors. I have mainly used the following:-
  • Ping Pretty obvious, but lets you know if something has gone down quickly.
  • HTTP Gives you average load times for a web page (used to monitor your internet connection)
  • Windows Sensors You can monitor a lot on a windows machine (CPU & memory usage, disk free space, uptime, pagefile usage, network traffic, RDP availability, is a service running), I use most of these!
  • Network Flow If your router/switches support this (dd-wrt does!) then you can get a lot of information about the traffic flowing through your network. Really handy for IoT devices when you have no idea what they are doing!

What has any of this go to do with makers

Nothing, because I haven't mentioned the best sensor types yet! PRTG also supports several custom sensors allowing you to monitor just about anything you want:
  • EXE/Script You can write a console application that can output xml
  • Python Script Same as above, but in python
  • HTML XML/REST value This can poll a web api and do things like count the number of times an element appears. I use this to monitor how many people are streaming from my plex server
  • HTTP Push Data Here you can push data to the server whenever an event happens that you would like to track (HOW COOL IS THAT!)
Obviously the above scripts could be used to interface with things like an Arduino really easily! The Paessler blog has listed some cool project makes have done using PRTG - here is a project that counts how much mail you have received during the year, one that monitors fuel prices in Germany (and uses a nice dashboard to present the data). A hospital in South Australia is even using it to monitor blood bank levels and send alerts when they run low! Paessler have a great list showing some of the interesting things that are monitored using PRTG here.

It's also really easy to configure PRTG to have custom notifications too. There are notifications for Twitter, The terrorist favourite Telegram and a load of others, but it's really easy to add your own!

So you basically have your own hosted version of Pachube/Cosm/Xively or whatever it's called now, plus it has ifttt type functionality (in-fact using the ifttt maker channel you could easily make the two work together nicely!)

In the future I'm going to blog a bit about some custom sensors I've made, and a sensor host I'm working on to make it really easy to use the HTML XML/Rest sensor!

Ok, how much is it then

Ok, it's not cheap if you are going to be monitoring a lot of things, but it's totally free for the first 100 sensors! And each sensor can have up to 50 channels, so you could monitor up to 5,000 channels for free.
It used to be a lot less (10 sensors), but Paessler recently changed this in the hope that hobbyists/home network enthusiasts/geeks will love using this at home, and then tell the sys admins at work that they need to be using this in the office. I can easily see how that would work, because this is first and foremost an excellent network monitoring tool, it just so happens to also be an excellent *insert your project here* monitoring tool too :-)

2 comments:

smith clark said...

Thanks for the great info.

Maria Elena said...

This is really appealing, You are a very experienced blogger. I've involved in your RSS feed and stay up for studying for more of your excellent post. Also, I've shared your website in my social networks!

15 Best Health and Medical Websites - Web design for doctors and specialists.