smokeping_install (7) - Linux Manuals

smokeping_install: How to install SmokePing


smokeping_install - How to install SmokePing


This document explains how to setup SmokePing at your site.



SmokePing does not stand alone. It relies on various other tools and services being present. Apart from a Unix OS and a working Perl installation you need the following components:
RRDtool 1.2.x or later
Smokeping uses RRDtool for logging and graphing. If your linux distro provides an rrdtool package with perl support, use this. If you want to get the latest and greatest version, compile your own: <>
FPing (optional)
Go to <> to grab a copy.

Note that fping must be installed setuid root. It seems that older versions of fping report round trip times in 0.1 milliseconds instead of 1 milliseconds as advertised ... SmokePing tries to figure this out. It tells you when it starts ... let me know if it gets it wrong.

EchoPing (Optional)

You need this to run the EchoPing probes

Curl (Optional)

You need this for the Curl probe.

dig (Optional)

You need this for the DNS probe.

SSH (Optional)

You need this for the SSH probe.


Well I won't get much into this. The important thing is, to have a webserver which allows you to run CGI and preferably FastCGI scripts. If you are using Apache I strongly recommend using the suexec system for running CGI scripts as a particular user.

See <> and <> for more information on this.

Perl 5.8.8 or later.
If you still have an older version, maybe have a look at perlbrew.
Various Perl modules (Many are optional)
The modules are all available from <> and you may be able to get them as packages from your distro's repository. There is also a script provided in the setup folder to install the missing bits. You will be instructed later on how to use the script.
The module for supporting FastCGI operation.
CGI, CGI::Fast
Perl CGI/FastCGI support. Might already be installed localy.
The configuration file parser used in smokeping
The master/slave functionality introduced a dependency on LWP::UserAgent from the libwww-perl (also known as LWP) library. The module is required even if the master/slave mode is not enabled.
Socket6 (optional)
The Socket6 module enables smokeping to check hostnames that only resolve to an IPv6 address. If you probe such hosts using ie. the FPing6 probe and get warnings that those hosts don't resolve to an IP address, you need to install it.
Net::Telnet (optional)
You need this for the TelnetIOSPing probe.
Net::OpenSSH (optional)
You need this for the OpenSSHJunOSPing probe.
Net::DNS (optional)
You need this for the AnotherDNS probe.
Net::LDAP (optional)
You need this for the LDAP probe.
IO::Socket::SSL (optional)
You need this if you want the LDAP probe to be able to use the 'starttls' command.
Authen::Radius (optional)
You need this for the Radius probe.


Once the tools listed above are in place, you can start setting up SmokePing itself. Unpack the tar archive and run the included configure script:

 ./configure --prefix=/opt/smokeping

Configure will verify that all the required perl modules are available. If some are missing it will tell you to run the module build script. Just follow the instructions on screen and then run configure again. Once it completes, you can run

 make install

to finish your setup.


Use the etc/config.dist file as a template to create your own smokeping configuration file. See smokeping_config for details.
Installing the webinterface
Copy the content of the PREFIX/htdocs directory to the place where your webserver expects its data. Maybe to /var/www/smokeping.

Edit the smokeping.fcgi script to point to your smokeping_cgi script.

If you have no FastCGI support in your webserver, you may want to use the smokeping.cgi script.

Edit the html template to your likings. Please do not remove the link to the SmokePing counter and my name from the template. The content of the template will be renderd by smokeping.cgi. This means that all embedded links must be relative to smokeping.cgi. If you are using HTTP authentication, then the template variable "authuser" will be populated from the $ENV{REMOTE_USER} environment variable.
If you are going to use the DYNAMIC IP support, customize the contents of this file.

Starting the Smokeping Daemon

With all the scaffolding in place, you can now launch the smokeping daemon and have it gather data for you. First you may want to run it in debug mode to see what it is doing

 ./bin/smokeping --config=/opt/smokeping/etc/config --debug

once all is well, start it up as a daemon. I would recomend you enable the logfile option so that you can see if it runs into trouble.

 ./bin/smokeping --config=/opt/smokeping/etc/config --logfile=smoke.log

Once the system works, you may want to put a SmokePing startup script into your /etc/init.d tree. Check out smokeping for further information.

You can now open the smokeping.cgi webpage to look at your data.

See the smokeping_cgi documentation on how to setup the smokeping web interface.


Copyright (c) 2001, 2011 by Tobias Oetiker. All right reserved.


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


Tobias Oetiker <tobi [at]>