LibreNMS – alternative to Observium + others

So a while ago (a year) I wrote a blog post about LibreNMS being an alternative NMS. For me back then LibreNMS was already an alternative anyway but is that still the case a year later?

Well without a doubt – a huge amount of things have changed in the last year with regards LibreNMS and all of them positive so I thought it was worth an update to go through some of those in more detail.

New website and Logo – Is LibreNMS a brand? I’d like to think it is and will become more so as time moves on. In the meantime it’s a case of at least having it’s own identity. So a new website was put together (well two in fact, the first being replaced in the last month) to try and showcase the features and what it can provide to people. It’s great to see actually, 5 of the 7 main listed features are all new additions since we forked from Observium. 4 of those are huge in terms of benefit to end users of the software and imho, quite key things in an NMS product. A new logo which has been knocking around for a while and was used to coincide with the new website going live – if you’ve not seen it yet, take a look


Along with the new website, the Twitter account got a facelift, a Facebook page was added along with a Google+ group. All using the new branding. If you’re active on any of these Social media sites then like, share and comment 🙂

But what about features? That’s easy, let’s go through some of the biggest features that have made their way in.

Alerting – Quite an essential feature in an NMS 🙂 A basic alerting system was inherited and was useable to a degree, it supported alerting on devices going up / down, port utilisation and bgp sessions so it did a lot of what most would need. However it did have it’s limits and wasn’t flexible or customisable so work was started to bring all of this to the table. I’ll be the first to admit that the alerting rule system is a little complicated when you first start to use it but this initial drawback is overcome by the huge flexible and powerful feature set that it brings with it. I’ve not yet come across a rule that I’ve not been able to create.

One of the best features of the alerting system is the actual alerting side, out of the box you can alert via email, IRC, a custom API or Slack however it doesn’t stop there – as started out with the Slack integration, you can add your own alert transports in to talk with pretty much anything. Slack support was added from request of a user and is now part of the base install.

Templates are also part of the alerting system so you can customise the look of each alert rule that you create (you don’t need to, a default is provided) but this means you can add custom messages or format the output to meet your needs.

API – As with alerting a basic API was inherited – it was barely useable and contained zero documentation on what if any features existed, this version of the API exists to this day! Expand on what we had or create a new one – create a new one 🙂

We are still technically on a version 0 release at the moment but a good number of users are already making use of what we have. The API is powered by the Slim Framework and extends LibreNMS using a RestFull API and JSON. Listing, Add and remove devices, list available graphs, retrieve graphs, list bgp sessions, handle alerts, the list goes on are all supported via the API and thanks for Slims capabilities – extending the API is a simple task. It’s possible today to write a web client which drills down into the devices and provides all the graphs you can see today in the Web UI.

Distributed Polling – Adding more devices to your NMS? At some point it’s going to creak and you will need to do something about it. Add more Ram, CPU and hard disk space, sure that’s easy enough to do but has limitations still. Add a second server and monitor your next data centre from that, sure if you like logging into 2, 3, 4+ Web UIs just to see your data (you could use the API to fix this :)) or you could now make use of the new Distributed polling feature that’s recently been included. This will enable you to just bolt another server on to perform additional polling so your devices still complete in time. It provides scaling at a horizontal level but also includes the benefit that you can now poll devices that might be located in another physical building behind a NAT firewall. Below is a diagram showing a large scale deployments.

A large scale distributed LibreNMS deployment

Automatic updates – This is a simple one really, you can choose to auto update or not. We can understand why you might not want to leave on auto updates but in reality with LibreNMS it’s proved to be pretty safe. We’ve not released an update that has catastrophically broken something and those bugs that have been introduced have been fixed before the daily updates will have been pulled. It’s on by default – consider leaving it like that 🙂

People contributing to LibreNMS do so with both backwards compatibility in mind and user experience.

Plugin system – Perhaps the least used of all new features, the plugin system enables anyone to extend LibreNMS in a simple fashion. Perhaps one of the examples of this and undoubtably the plugin used most often is the Weathermap.


The benefits of FOSS and why I contribute to LibreNMS

So I’d planned to write this up closer to the time that alerting was to be released for LibreNMS but as I’ve recently been banned from the observium irc channel which I can only assume was done because our subscription at work has now expired, it wasn’t a couple of days ago adam was attempting to play down the impact LibreNMS is having on observium so I thought I’d put the post up now.

Over the last 12 months LibreNMS has gone from strength to strength with regards to both it’s visual improvements, the bugs that have been fixed and most importantly the improvements and additions that have made it into the software. For free software which doesn’t rely on donations or kickstarter funding it’s quite simply the users and developers of the software that make this project what it is. This doesn’t just go for free software, it’s the same for anything but instead of users, it’s clients or customers. Without anyone using or buying your software then you’ve got nothing more than a hobby!

Having initially started with observium, the reasons why I moved on from it are already written in this blog although I haven’t gone into a huge amount of detail. What initially started my interest in either forking it or finding an alternative was that your contributions upstream would have the license changed and you had to basically hand over copyright, whilst I don’t seek recognition for the things I may have contributed, I certainly don’t want someone making it appear that they wrote it or having a restrictive license slapped all over it stopping others from potentially making use of it.

Anyway it’s been an interesting 12 months having to get to grips with the current code base to work out how things have been done before, what’s good about it and what’s poor. A lot of things have been tidied up to make the development a little bit easier, code formatting is being slowly updated to become more standardised, users are contributing to the Wiki and Documentation to make life easier for others. Users are passing by asking for help whether it’s on irc or via issues on the repo GitHub, some stick around to help others, contribute code or ideas whilst some disappear to hopefully enjoy the fruits of everyone’s labour – it’s this part that makes FOSS so appealing to me and others, a lot of others! It’s also done in such a way that should make people feel welcome and comfortable in popping in and asking questions [1].

Anyway, I mentioned at the start that I was going to post something like this around the time the alerting system was released into LibreNMS, now that I’ve done this earlier I think it’s still worth mentioning that an alerting system is currently being finished off. The main codebase has been developed by f0o, I’ve been testing it this week and it looks and appears to be amazing. The rule system is extremely flexible yet simple. Now I imagine that if we were to take this code, strip the license off it and make it closed source then f0o wouldn’t have written it, however due to the openness of the project then he’s been willing to contribute a substantial amount of his own time on this and in turn, made LibreNMS advance forward.

If you’re looking for an NMS then I’d highly recommend LibreNMS, it’s already a great project and with the soon to be introduced alerting system, it should hold it’s own against any other system out there.

[1][email protected]/msg04114.html


LibreNMS API release

So work has been going on in the background for a while now to bring an API to LibreNMS that would be more usable and useful than what was available in it’s previous incarnation. Paul has blogged a few times over on the LibreNMS blog with how the development has been going and the functionality that we were looking at introducing.

Before hand, grabbing data or graphs from LibreNMS would have meant enabling unauthenticated graphs so you would have to control access via iptables or a firewall or if you wanted data, then directly querying the MySQL database. Thankfully that’s no longer the case (well, not for certain features anyway, many more need to be written now to get the API upto scratch), with version 0 being launched around 5 days ago. If you need this feature and you don’t have auto-updates enabled then please update your LibreNMS install so you can start taking advantage of it.

If you would like to contribute and add more functionality then please have a read of the following links:

Overtime we expect the API development to get to a stage where it will move to a v1 release. Until then it should be considered beta. We won’t be making changes that break the routes used unless really necessary, most of the changes should be minor tweaks, new routes and ensuring we are following best practice for APIs.

Go forth and integrate 🙂


LibreNMS – an alternative Network Monitoring System?

So, go back 5 years and I blogged about alternatives to Nagios, comparing things like Zabbix and OpenNMS. Whilst the original blog post was about replacing nagios with an alternative which would have to provide service up/down style notifications, most of the alternatives major functionality was around graphing your network as well which is certainly one of the pre-requisites for running a NOC. So fast forward to today and I’ve found myself both deploying and helping to develop an Open source NMS called LibreNMS.

Would LIbreNMS have made it into the original list? Well possibly not as it can only provide up/down alerting on systems it graphs, so if you want to monitor a URL then you would still need something like Nagios. However if the challenge was to find a system to replace something like Cacti then it certainly would be a worthy contender. We barely ran Cacti at work before it’s annoyances got in the way and we were on the look out for something else. During my searching I came across Observium (which surprisingly I’d never heard of before) and we deployed a test install to see how it would fair. Within days we’d dropped Cacti and moved to the subscription version of Observium and thought we’d found exactly what we were looking for.

Along with Observium came some downsides which if you hang out in the irc channel or read the mailing list will soon become apparent and so the search continued with the thought of forking Observium. The issue with this was that Observium had changed the license to be quite closed and restrictive so forking at the current version wouldn’t be possible. Fork an earlier GPL compliant version? Well yeah that would be great but the work involved would have been too much for me to do. Little did I know that someone had already done the hard work and so a test install was underway. It visually lacked along but for the most part worked for us. We’ve rolled LibreNMS out to our new DC rather than taking another subscription with Observium and haven’t looked back.

Development has moved on in the last couple of months on LibreNMS, it’s visually becoming more pleasing on the eye, some bugs affecting users are being squished daily and new functionality is being added which means the code base is slowly diverging from the Observium path. We’ve got some great developers now who’s attitude is a complete contrast to it’s founding father which makes helping develop it a joy rather than a chore, you get recognition for contributing and if something doesn’t work – you can fix it and request your changes be merged.

If you are on the look out for a new NMS then give it a try, if you’ve got the skills to help develop it then give it a try, I’m sure you won’t be disappointed 🙂


LibreNMS the nice fork

Well having found Observium not so long ago and switched over to it from Cacti, I soon came to realise that a fork was needed to maintain the open source community spirit, allow people to contribute and above all else have a great piece of software.

Someone (namely) Paul has done just that and forked to create LibreNMS , I’ve been using this at home and whilst it’s behind in terms of features and looks compared to where it has come from it still does an outstanding job and things can only get better as more people start to contribute to it.

If you are after a graphing your network or server infrastructure then give it a shot.

It also means I’ve been having to play around with Git and I’m a big fan already 🙂


IPv6 on Draytek Vigor 2830 Router with SIXXS

Last month I finally got round to organising my IPv6 setup at home, as Virgin don’t look like they are providing native IPv6 for a while and I felt I was missing out on loads some websites that support it then it was time to get things up and running.

I chose SIXXS as my router supports AICCU so it was a natural choice. So, the first thing to do is create an account on the SIXXS website here. This can take a couple of days before the account is setup and then you need to request your first tunnel which again will take a couple of days. The  process with SIXXS is manual which I’m sure has it’s advantages but factor this time delay in when you come to setup IPv6 on your home network.

days later…..

Ok, so you now have your new tunnel activated and you are ready to go. I’ve got some screen shots in here as well to try and guide through the setup.

Step 1.

First you need to jot down the following details which can be found on the User Home page and then click on the Tunnel and Subnet links:
TIC Server


You will also need your SIXXS username and the tunnel password which you can set by clicking on the Tunnel within the SIXXS control panel and then setting the “TIC Password for this tunnel”.




Step 2.

Ok, now get to the section within your router to setup the tunnel – I’m not going to guide you through how to access the routers web interface, I’ll assume you can already do that. Once logged in, click WAN, Internet Access and then IPv6 as per the images below. This will take you to the page where you can enter the relevant details.




Step 3.

Ok, final part now which is to enter the following information on the new IPv6 page you have just got to:
Connection Type: AICCU
Always On: Ticked
Username: This is your SIXXS username followed by / and then the tunnel name. So for instance ABC1-SIXXS/T123456
Password: This is the TIC Password you setup within the Tunnel page on the SIXXS website.
Tunnel Broker: For me this is but you can get this information as I’ve said in Step 1.
Subnet Prefix: Enter the Prefix from the Subnet page on the SIXXS website, make sure you don’t specify the / prefix at the end and instead enter the prefix number in the next box along.


Step 4.

Click OK.

And all should be now good in the world of IPv6, well you may need to reboot the router but once that’s done you should now be back online and able to connect to sites such as or

Hope this works for you 🙂


Home entertainment (system)

I got asked on Facebook if I’d write up a little information about the kit I’m currently running in the bungalow for my multiroom audio/video distribution so here it is 🙂

Everything pretty much comes back to a central location bar the Raspberry Pi’s which are used within the rooms themselves.

Russound CAV 6.6:
This handles the audio distribution for the house, it has support for six zones which are pushed out to both the bedrooms, dining room, living room, kitchen and finally the bathroom. Each of these zones has a set of ceiling Polk Audio RC60i speakers but only two contain UNO-S2 keypads for in room control.

At present I only have three sources for audio, two Sonos ZP90 units along with the Virgin V+ box so ample room for three more inputs.

Russound VM1:
This was a lucky bargin purchase recently, a new unit retails at just under £2k and I managed to pick one up for £75, it only contains two VMR-1 receivers but I’m sure I can pick two more up at a later stage. Even though the CAV unit supports distributed video, I was most likely never going to use it as it only supports standard def video so this coming up on Ebay was perfect. Full 1080p support over Cat5 out to Composite is perfect and means that I can push the Virgin V+ box out to any room (four at a time) over the wired Cat6 network installed.

These are following rooms and what we can run in each:

  • Living Room
    • Six Cat6 points.
    • Four Coax points.
    • One UNO-S2 keypad.
    • One SRC-2 remote control.
    • One set of ceiling speakers.
  • Dining Room
    • Four Cat6 points.
    • Four Coax points.
    • One set of ceiling speakers.
  • Main Bedroom
    • Four Cat6 points.
    • Two Coax points.
    • One UNO-S2 keypad.
    • One SRC-2 remote control.
    • One set of ceiling speakers.
  • Guest Bedroom
    • Four Cat6 points.
    • Two Coax points.
    • One set of ceiling speakers.
  • Bathroom
    • One set of ceiling speakers.
  • Kitchen
    • Eight Cat6 points (two sets of four at either end).
    • Two Coax points.
    • One set of ceiling speakers.

System control:
From the outset, I wanted simple control over the system from my iphone and as I’m an Apple man, ipad, itouch or whatever else I may get. To do this it was recommended to get a Russound TCH1 which connects via serial to the CAV6.6 unit (which in turn connects to the VM1 over the RNET protocol). This presents a rather crude web app to any i* devices where you can turn each zone on and off, select which source you want and change volume settings along with turning on and off party mode. For the most part this works fine (the TCH1 unit has failed once and had to be RMA’d but this was done quickly and without quibble), however the interface is slow and awkward.

I don’t like slow or awkward so I’ve written my own custom web app which I mainly use now, this interfaces over the TCH1 at the moment but does so quicker than if it was being used natively. It also means I’ve been able to hook the Sonos interfaces into the same web app so you can turn on each zone, select the Sonos unit and play music. It’s basic at the moment and needs a huge amount of work until it replaces the TCH1 / Sonos apps directly.

In the Living room and Main bedroom are UNO-S2 wall keypads which allow control over those rooms either on the keypad or via a SRC-2 remote control. Using the remotes are great as they allow you to control the TV, Russound and any connected inputs that support IR.

The only video source I have at the moment is a Virgin V+ box, however the VM1 supports upto 4 inputs using Component for 1080p. Other versions of the VM1 support upto 8 zones and 8 inputs with upscaling but these didn’t come up on Ebay for a ridiculous price 🙂

Separately from this I also run Raspberry Pis in the Living room and Dining room for local movie content, these are directly connected to the  TVs via HDMI and then into the wired home network over Cat6. This allows full control from any device that has an XBMC app and works great with a shared MySQL library so I can just pop a new Raspberry Pi online and start watching films and TV straight away.

Two Sonos source inputs are used to provide music to all the rooms but allowing two different audio sources. I’ve got a Spotify account hooked into these along with a local collection of MP3s from a NAS. The Sonos devices also support web radio and a raft of other Music services.

What would a home network be without some local storage. A ReadyNas NV+ is my current nas of choice with a total of 5.4TB of space 🙂

Currently this is all running back to a SMCGS24C switch with it’s fan removed to keep the noise levels down 🙂 A Draytek 2830 then provides internet connectivity through a Virgin Superhub (shudder) with two Wireless zones, one for the family, the other for guests 🙂 Four vlans then segregate the network out to keep general web / email use, Media and servers all separate.

A pic of the ‘server room’:

photo (2) 19.56.43

Would I do anything differently?

Of course, in no particular order:

  • No coax – I’ve used one coax run for 12 months but now it’s obsolete.
  • More power points 🙂
  • More space for kit in the cupboard.
  • Probably opt for a cheaper russound unit for audio distribution seeing as I won’t use the CAV6.6 for standard def distribution.
  • Price in 1080p video distribution from day one, how have I got by without so far!
  • Keypads in all the rooms, I’m about to get a couple more for the other bedroom and dining room but won’t wall mount them and instead just have them behind the TV for IR sending and emergency zone control.
  • Ditch the TCH1, I don’t use it’s wireless capabilities as I run everything over wired where I can, in essence it’s a glorified Netgear router at four x the price. You can get Cat5 to Serial convertors cheaper and I’m sure with a better interface.
  • Put more time into the web app, I’ll be able to do cool stuff with this such as hit play on a film on XBMC and automatically shut any music off in that zone.

Bigger kid now than when I was young

Over the past 12 months at work, we’ve had multiple dress up days, some adhoc and last minute which I’ve not really got involved in due to other commitments or lack of time. However for Halloween 08, Red nose day 08,  Halloween 09 and Children in need 09 – I made an effort, an ever increasing effort as well if I do say so myself 🙂

I seem to enjoy the whole planning what to dress up as, sourcing the stuff, making the outfit and then seeing the results. So here we go so far:

Halloween 08:
Admittedly I didn’t make this one, it was borrowed from a friend who did make it so it sort of counts. Jedi Knight
Jedi knight

Red nose day 08
Me dressed as pool table, red face for the top ball just to fit it into the Red nose day theme.
Pool table

Halloween 09
I was a bit ill for this one but I still think it’s an improvement on the pool table.

Finally – Children in need 09
Out of 100 or so staff, our team was the only ones to dress up. Me as Hellboy:

Now the whole team including our cheerleader:
From left to right: Iron man, Popeye, Hulk, Hellboy and the cheerleader
Our Children in Need Team :)
Hellboy is going to take some beating but I have a few ideas – my next one isn’t something a lot of people either remember, or know due to the age – I like it though and it will be a challenge that’s for sure 🙂