How to Setup smokePing for Latency Monitoring on Ubuntu 15.04

In this article we are going to setup smokePing to keep track of our network with latency monitoring. It can measure, store and display latency, latency distribution and packet loss. It comes with highly configurable alerting system and live latency charts and interactive graph explorers. Smokeping is not limited to testing just the roundtrip time of the packets. It can also perform some task at the remote end ("probe"), like download a webpage. This will give a combined 'picture' of web server availability and network health.

SmokePing Installation

SmokePing is an open source packets monitoring tool which comes with an easy installation and configurations. On a fresh Ubuntu 15.04 with its minimal installation we only need to get the basic web server’s libraries as its prerequisites.

Installing SmokePing and Pre requisites

The recommended webserver for smokePing is Apache, but we will setup and prefer with Nginx over Apache for performance and scalability.

So, First install Nginx web server with fcgiwrap and sendmail packages as below.

root@ubuntu-15:~# apt-get install nginx
root@ubuntu-15:~# apt-get install sendmail
root@ubuntu-15:~# apt-get install fcgiwrap
root@ubuntu-15:~# apt-get install smokeping

Fcgiwrap Setup with Nginx

Nginx can't serve CGI scripts by itself, so it requires a CGI server bound to localhost in order to make those accessible. Thats why we are using Fcgiwrap here for this.

root@ubuntu-15:~# cp /usr/share/doc/fcgiwrap/examples/nginx.conf /etc/nginx/fcgiwrap.conf

Now modify the host you want or we can use the default host to support cgi scripts as follow.

#fast cgi support
include /etc/nginx/fcgiwrap.conf;
location ~ \.cgi$
fastcgi_intercept_errors on;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/fcgiwrap.socket;

By using below commands we create links from smokeping to www folder.

root@ubuntu-15:~# ln -s /usr/share/smokeping/www /var/www/smokeping
root@ubuntu-15:~# ln -s /usr/lib/cgi-bin/smokeping.cgi /usr/share/smokeping/www/smokeping.cgi

Once smokeping is running, it will generate rrd files that can be examined by the CGI scripts to produce html output.

SmokePing Configuration

After we had successful installation of basic packages, we move forward to configure its different files for monitoring hosts as follow.

Edit General Config file

root@ubuntu-15:~# vim /etc/smokeping/config.d/General

owner = Linoxide
contact =
mailhost = localhost
# NOTE: do not put the Image Cache below cgi-bin
cgiurl =
# specify this to get syslog logging
syslogfacility = local0
# concurrentprobes = no
@include /etc/smokeping/config.d/pathnames

Edit Pathnames file

Put the value as false for sendmail so that smoke ping can run if you are not using it.

root@ubuntu-15:~# vim /etc/smokeping/config.d/pathnames

sendmail = /bin/false
imgcache = /var/cache/smokeping/images
imgurl = ../smokeping/images
datadir = /var/lib/smokeping
piddir = /var/run/smokeping
smokemail = /etc/smokeping/smokemail
tmail = /etc/smokeping/tmail

Edit Alerts file

root@ubuntu-15:~# vim /etc/smokeping/config.d/Alerts

*** Alerts ***
to =
from =

type = loss
# in percent
pattern = >0%,*12*,>0%,*12*,>0%
comment = loss 3 times in a row

Edit the Targets file

Here we Add the targets that will measure by appending them to the bottom of the targets file. We add an entry starting with a + to create a top level entry, and subsequent lines with ++ that will show up as sub entries. These will be show up in a menu on the left of the generated web page like so:

*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of xxx Company. \
Here you will learn all about the latency of our network.

+ Local

menu = Local
title = Local Network
#parents = owner:/Test/James location:/

++ LocalMachine

menu = Local Machine
title = This host
host = localhost
#alerts = someloss

+ My_Blogs

menu = Linoxide
title = Linoxide

++ Web_Server_1
menu = Linoxide Web
title = Linoxide Web
host =

Restart smokeping and Nginx Web server

root@ubuntu-15:~#service smokeping restart
root@ubuntu-15:~#service nginx restart

Access smokeping on web



Understanding smokePing Latency

All the information together gives an indication of network health. For example, packet loss is something which should not happen out of the blue. It means that a device in the middle of the link is overloaded or a router configuration somewhere is wrong.

localhost smoke

Heavy fluctuation of the RTT (round trip time) values also indicate that the network is overloaded. This shows on the graph as smoke; the more smoke, the more fluctuation.

Median RTT


We have successfully setup and activate smokePing on Ubuntu by using Nginx Web Server. SmokePing is the basic open source network latency monitoring tool that every network administrator prefer to setup after its network setup.

About Kashif Siddique

Linux Systems and Security Engineer in Information and Communication Technology. Results-driven ICT Professional and Open Source Geek with technical specialties in the area of Open Source Operating systems and Applications.

Author Archive Page

Have anything to say?

Your email address will not be published. Required fields are marked *

All comments are subject to moderation.