Creating a dashboard with NagiosTV and Livestatus on Ubuntu 20.04

Creating a dashboard with NagiosTV and Livestatus on Ubuntu 20.04

Hey all. I was tasked with setting up a new NagiosXI instance and we needed a dashboard for the office. I found one, NagiosTV, which is super clean and easy to use. The only problem I ran into was creating a dashboard that was able to be accessed without credentials. I ended up using MK Livestatus to fetch the data to display on our big screen.

I'll show you how to do this here, just because it took a bit to get it figured out.

My selected distro is Ubuntu 20.04 LTS.

All configurations are done as root, so

sudo su

NagiosTV Installation

NagiosTV Created and maintained by chriscareycode on github.
The github repository has an install guide. I'll also post mine here just to keep everything together. It's pretty easy.

tar -xvzf nagiostv-0.7.1.tar.gz
sudo mv nagiostv /usr/local/nagiosxi/html/nagiostv
sudo chown -R nagios /usr/local/nagiosxi/html/nagiostv
sudo chgrp -R nagios /usr/local/nagiosxi/html/nagiostv

Now you should be able to navigate to the nagiostv page: http://servername/nagiosxi/nagiostv

Livestatus Installation

Livestatus now resides with CheckMK, I'll post the specific download link.
Note: I don't believe they are releasing any more versions of Livestatus. The last version I see is 1.5.0p25. Newer releases only offer Checkmk with OMD.


Let's begin by making sure we download the needed utilities

sudo apt install rrdtool librrd-dev librrd8 libboost-dev libboost-system-dev

First you'll need to download the tar file from above and extract it.

 cd /tmp
 tar -xzvf mk-livestatus-1.5.0p25.tar.gz
 cd mk-livestatus-1.5.0p25

Next we'll configure, make, and install mk-livestatus. Be sure to use the --with-nagios4 flag for proper compilation and installation.

 ./configure --with-nagios4
 sudo make install

Let's add a line in nagios.cfg to allow livesocket to receive updates from nagios.

 vi /usr/local/nagios/etc/nagios.cfg

Add the line

broker_module=/usr/local/lib/mk-livestatus/livestatus.o /usr/local/nagiosxi/var/subsys/livestatus

You should see another broker_module line while you're in there. Just add the above line after that one.

Restart the Nagios service so the socket shows up under /usr/local/nagiosxi/var/subsys

Restart the Nagios Service

 systemctl restart nagios.service

Now we should be able to test and see if we get output.

Will probably need to run this as sudo to get output.

 echo "GET status" | /usr/local/bin/unixcat /usr/local/nagiosxi/var/subsys/livestatus

Note: /usr/local/nagiosxi/var/subsys/livestatus is where livesocket opens the socket. If we weren't using xi, the path could reflect "/usr/local/nagios/var/subsys" for example.

Lastly, let's point NagiosTV to where it should look for that livesocket instance.

Under /usr/local/nagiosxi/html/nagiostv/connectors there are two files: livestatus-settings.php and livestatus-settings.ini.sample

The file ending in .sample is obviously a sample, so we can leave that alone for a backup. Let's change this line in livestatus-settings.ini

sudo cp livestatus-settings.ini.sample livestatus-settings.ini
sudo vi livestatus-settings.ini
socket_path = /usr/local/nagios/var/rw/live.sock


socket_path = /usr/local/nagiosxi/var/subsys/livestatus

One more service restart

$ systemctl restart nagios.service

And that's all from that side. Now let's navigate to the NagiosTV url. We'll need to change some settings.


The above screenshot reflects how I have mine set up. You'll want to make sure that "Fetch data from" is MK Livestatus.
All of the other settings should be fine.

There we have it! NagiosTV should open without prompting for any credentials! This is going to work great on the large screen TV in the office.

One more thing. It's a good idea to save your settings so that anyone who accesses NagiosTV has the same settings as you configure. Good for situations where multiple people may access the dashboard individually. Below is a screenshot, just follow the instructions listed on the page.


Happy Monitoring!