Setting up Smokeping

From Alpine Linux
Warning: This material have several security craps and breaks, and are here only due historical purposes, will be reorganized, please dont deploy production servers with this guide


Smokeping is a network latency monitor webapp.

Install smokeping and lighttpd from main repository.

apk add smokeping lighttpd

In lighttpd.conf uncomment line: include "mod_cgi.conf", save and exit

Assign cgi to run with /usr/bin/perl in /etc/lighttpd/mod_cgi.conf (by default it's only in cgi-bin virtual host):

cgi.assign = (
".cgi" => "/usr/bin/perl"
)

And uncomment the use of mod.cgi in /etc/lighttpd/lighttpd.conf.

FastCGI Support

Smokeping is slow, and fastcgi can help , especially on constrained devices.

install

apk add perl-fcgi

lighttpd.conf:

 include "mod_fastcgi.conf"

mod_fastcgi.conf:

 server.modules += ("mod_fastcgi")
 fastcgi.server = (
         ".fcgi" =>
         ((
                 "bin-path" => "/usr/share/webapps/smokeping/smokeping.fcgi",
                 "host" => "localhost",
                 "port" => 8001,
         )),
 )

Setup URLs for Smokeping

Softlink /usr/share/webapps/smokeping -> /var/www/localhost/htdocs/smokeping

ln -s /usr/share/webapps/smokeping /var/www/localhost/htdocs/smokeping

Softlink /var/lib/smokeping/.simg -> /var/www/localhost/htdocs/img

ln -s /var/lib/smokeping/.simg /var/www/localhost/htdocs/img

Make /smokeping/ work lighttpd.conf:

 index-file.names     = ("smokeping.fcgi", "smokeping.cgi", "index.php", "index.html", "index.htm", "default.htm")

Setup Probes & Permissions

If using a version of Alpine older than 2.1_rc2, edit /usr/share/perl5/vendor_perl/Qooxdoo/Services/Tr.pm and on line 34: add "sudo", to beginning so that line looks like:

system "sudo","traceroute","-I","-q","1",$host;

This is because in Alpine, regular user can't run a traceroute

Add sudo package, then add the following to /etc/sudoers using visudo command:

lighttpd ALL=(ALL) NOPASSWD: /usr/bin/traceroute

Change permissions on /var/lib/smokeping/.simg to 777.

chmod 777 /var/lib/smokeping/.simg

Set fping to using setuid:

chmod u+s /usr/sbin/fping

Configure Targets

Add hosts to be monitored in /etc/smokeping/config and remove example hosts
The cache configured must be linked to /var/www/localhost/htdocs/smokeping/cache

Activate Smokeping Service at Boot

Set lighttpd to autostart and start the daemon.

rc-update add lighttpd && rc-service lighttpd start

Set smokeping to autostart and start the daemon.

rc-update add smokeping && rc-service smokeping start


For further information on configuration, see the smokeping homepage https://oss.oetiker.ch/smokeping/doc/index.en.html.