# Setup Smokeping Intructions for setting up SmokePing on Alpine Linux ## Main(Master) Needed packages: smokeping lighttpd make sure to empty the remote secret file (/etc/smokeping/smokeping_secrets), you also need to correct the permmisions `chown smokeping:smokeping /etc/smokeping/smokeping_secrets` Lighttpd (/etc/lighttpd/lighttpd.conf) ``` # {{{ modules server.modules = ( # "mod_accesslog", "mod_cgi" ) # }}} # {{{ includes include "mime-types.conf" # }}} # {{{ CGI cgi.assign = ( ".cgi" => "/usr/bin/perl" ) # }}} # {{{ server settings server.username = "smokeping" server.groupname = "smokeping" server.document-root = "/usr/share/webapps/smokeping" server.pid-file = "/run/lighttpd.pid" server.errorlog-use-syslog = "enable" server.indexfiles = ("smokeping.cgi") server.follow-symlink = "enable" static-file.exclude-extensions = (".cgi") # }}} # {{{ mod_accesslog #accesslog.filename = "/var/log/lighttpd-access.log" # }}} # vim: set ft=conf foldmethod=marker et : ``` Smokeping config (/etc/smokeping/config) ``` *** General *** owner = MaintainerName contact = some@address.nowhere mailhost = my.mail.host sendmail = /usr/sbin/sendmail imgcache = /var/lib/smokeping/.simg imgurl = img datadir = /var/lib/smokeping piddir = /var/run/smokeping cgiurl = http://some.url/smokeping.cgi tmail = /etc/smokeping/tmail smokemail = /etc/smokeping/smokemail syslogfacility = local0 #Use to overwrite system hostname #display_name = HostName *** Database *** step = 300 pings = 20 # consfn mrhb steps total AVERAGE 0.5 1 1008 AVERAGE 0.5 12 4320 MIN 0.5 12 4320 MAX 0.5 12 4320 AVERAGE 0.5 144 720 MAX 0.5 144 720 MIN 0.5 144 720 *** Presentation *** template = /etc/smokeping/basepage.html htmltitle = yes graphborders = no + charts menu = Charts title = The most interesting destinations ++ stddev sorter = StdDev(entries=>4) title = Top Standard Deviation menu = Std Deviation format = Standard Deviation %f ++ max sorter = Max(entries=>5) title = Top Max Roundtrip Time menu = by Max format = Max Roundtrip Time %f seconds ++ loss sorter = Loss(entries=>5) title = Top Packet Loss menu = Loss format = Packets Lost %f ++ median sorter = Median(entries=>5) title = Top Median Roundtrip Time menu = by Median format = Median RTT %f seconds + overview width = 600 height = 50 range = 10h + detail width = 600 height = 200 unison_tolerance = 2 "Last hour" 1h "Last day" 24h "Last week" 7d "Last month" 30d "Last year" 365d *** Probes *** +FPing binary = /usr/sbin/fping step = 60 *** Slaves *** secrets=/etc/smokeping/smokeping_secrets *** Targets *** probe = FPing menu = Top title = Network Latency Grapher remark = Welcome to SmokePing. + Internet menu = Internet title = Hosts on the internet ++ cloudflare #slaves = host = 1.1.1.1 ++ google #slaves = host = 8.8.8.8 ``` Start and Enable services on boot `service smokeping start && service lighttpd start && rc-update add smokeping default && rc-update add lighttpd default` ## Remote(Slave) ### On Main Add the name and a secret in in the secrets file`/etc/smokeping/smokeping_secrets` using the following format (one per line) `remotehostname:Secret` Add the host to the slaves section using the folling exampe: ``` +remotehostname display_name=Remote-Hostname color=00ffff ``` Add the host to the `slaves` section of the targets (should be seperated with a space) Last step on main is to restart smokeping `service smokeping restart` ### On Remote Needed packages: smokeping Put a secret in `/etc/smokeping/secret.txt` set its permissions `chown smokeping:smokeping /etc/smokeping/secret.txt && chmod 600 /etc/smokeping/secret.txt` Service file(/etc/init.d/smokeping-remote) ``` #!/sbin/openrc-run HostName=host1 MainURL="http:///smokeping.cgi" depend() { need net } start() { checkpath --directory --owner smokeping:smokeping /var/run/smokeping ebegin "Starting smokeping remote" LC_ALL=C \ start-stop-daemon --start --name smokeping \ --pidfile /var/run/smokeping/smokeping.pid \ --exec /usr/bin/smokeping \ --user smokeping:smokeping \ -- --master-url=$MainURL --cache-dir=/var/lib/smokeping --pid-dir=/var/run/smokeping --shared-secret=/etc/smokeping/secret.txt --slave-name=$HostName eend $? } stop() { ebegin "Stopping smokeping Remote" start-stop-daemon --stop \ --pidfile /var/run/smokeping/smokeping.pid eend $? } ``` Set permissions service file ``chmod +x /etc/init.d/smokeping-remote` Start and Enable service on boot `service smokeping-remote start && rc-update add smokeping-remote default` Add to Root cron tab to auto reload after crash (/etc/crontabs/root) `echo '* * * * * openrc --no-stop' >> /etc/crontabs/root`