This post will be about LibreNMS and what it can do for you.
LibreNMS is an open-source network monitoring tool and it is a fork of Observium.
LibreNMS provides graphs, notifications to allow you to monitor the network and be informed of any changes taking place.
The documentation is pretty exhaustive and you can get all the information from here LibreNMS.
The installation is straightforward and you need to decide if you want to use a prebuilt VM or you want to perform the installation. Tutorials are available based on your Linux flavour(Ubuntu, RHEL, CentOS or Debian) and webserver(apache or nginx) preference. I used Ubuntu and apache for my test.
But let’s see how this looks like.
This is my test network with Juniper(Junos), Cisco(IOS XR) and Linux(Ubuntu) devices:
First, LibreNMS can detect if a device is a router, a switch or a server. This is the list of devices:
LibreNMS is able to draw a network map with all devices monitored. Unfortunately, I have not found a way to have the devices hostnames, instead of the IP address used to monitor the device. Actually, if DNS resolution is available, then hostname can be used to add devices in LibreNMS.
LibreNMS can detect the routing protocols used by the devices, in this case OSPF and BGP.
Let’s check quickly MX1 CLI and see how many OSPF neighbours it has:
root@MX1> show ospf neighbor Address Interface State ID Pri Dead 10.10.10.2 ge-0/0/3.0 Full 22.214.171.124 128 33 10.10.11.2 ge-0/0/4.0 Full 126.96.36.199 1 38 root@MX1>
And how many interfaces in OSPF:
root@MX1> show ospf interface Interface State Area DR ID BDR ID Nbrs ge-0/0/1.0 DR 0.0.0.0 188.8.131.52 0.0.0.0 0 ge-0/0/3.0 DR 0.0.0.0 184.108.40.206 220.127.116.11 1 ge-0/0/4.0 BDR 0.0.0.0 18.104.22.168 22.214.171.124 1 lo0.0 DR 0.0.0.0 126.96.36.199 0.0.0.0 0 root@MX1>
And then compare it with LibreNMS output:
Also, there is IBGP between XR-1 and MX2:
RP/0/0/CPU0:XR-1#show bgp summary Thu Jun 22 07:06:48.641 UTC BGP router identifier 188.8.131.52, local AS number 65000 BGP generic scan interval 60 secs Non-stop routing is enabled BGP table state: Active Table ID: 0xe0000000 RD version: 41 BGP main routing table version 41 BGP NSR Initial initsync version 1 (Reached) BGP NSR/ISSU Sync-Group versions 0/0 BGP scan interval 60 secs BGP is operating in STANDALONE mode. Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer Speaker 41 41 41 41 41 0 Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd 184.108.40.206 0 65000 1004 887 41 0 0 01:07:34 20 RP/0/0/CPU0:XR-1#
This is from LibreNMS:
MX2 announces 20 unicast IPv4 prefixes to XR-1 as you can also see from the above CLI output:
RP/0/0/CPU0:XR-1#show route bgp Thu Jun 22 07:06:58.750 UTC B 100.100.1.0/24 [200/0] via 220.127.116.11, 01:07:44 B 100.100.2.0/24 [200/0] via 18.104.22.168, 01:07:44 B 100.100.3.0/24 [200/0] via 22.214.171.124, 01:07:44 B 100.100.4.0/24 [200/0] via 126.96.36.199, 01:07:44 B 100.100.5.0/24 [200/0] via 188.8.131.52, 01:07:44 B 100.100.6.0/24 [200/0] via 184.108.40.206, 01:07:44 B 100.100.7.0/24 [200/0] via 220.127.116.11, 01:07:44 B 100.100.8.0/24 [200/0] via 18.104.22.168, 01:07:44 B 100.100.9.0/24 [200/0] via 22.214.171.124, 01:07:44 B 100.100.10.0/24 [200/0] via 126.96.36.199, 01:07:44 B 100.100.11.0/24 [200/0] via 188.8.131.52, 00:53:43 B 100.100.12.0/24 [200/0] via 184.108.40.206, 00:53:43 B 100.100.13.0/24 [200/0] via 220.127.116.11, 00:53:43 B 100.100.14.0/24 [200/0] via 18.104.22.168, 00:53:43 B 100.100.15.0/24 [200/0] via 22.214.171.124, 00:53:43 B 100.100.16.0/24 [200/0] via 126.96.36.199, 00:53:43 B 100.100.17.0/24 [200/0] via 188.8.131.52, 00:53:43 B 100.100.18.0/24 [200/0] via 184.108.40.206, 00:53:43 B 100.100.19.0/24 [200/0] via 220.127.116.11, 00:53:43 B 100.100.20.0/24 [200/0] via 18.104.22.168, 00:53:43 RP/0/0/CPU0:XR-1#
On the top-left graph, you can see the number of prefixes at 20 after a while when there were no BGP prefixes received:
And this is just a glimpse of what LibreNMS can do to monitor the network.
You can monitor other type of devices like firewall, load balancers, APs.
You can setup alerts and notifications, you can view load on the interfaces, CPU usage, memory usage and other things like this that can help you out to detect possible problems before they actually become problems.
I hope you found this interesting.
Latest posts by Paris ARAU (see all)
- Statistics for logical child links in aggregated interface on QFX10K - 7 September 2017
- DHCP Relay on EX9200 - 18 July 2017
- OpenNMS to monitor Juniper, Cisco and Linux devices - 26 June 2017
- LibreNMS to monitor Juniper, Cisco and Linux devices - 22 June 2017
- Running a shell script during boot on Junos - 8 June 2017