From 80a8900641ce87f15d5184dcd208eea52873722c Mon Sep 17 00:00:00 2001 From: Bram Prieshof Date: Thu, 17 Nov 2022 02:51:13 +0100 Subject: [PATCH] Add 'smokeping-setup.md' Inital versions of smokeping setup documentation --- smokeping-setup.md | 221 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 smokeping-setup.md diff --git a/smokeping-setup.md b/smokeping-setup.md new file mode 100644 index 0000000..5d2f1da --- /dev/null +++ b/smokeping-setup.md @@ -0,0 +1,221 @@ +# 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`