222 lines
4.9 KiB
Markdown
222 lines
4.9 KiB
Markdown
# 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 permissions `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 following example:
|
|
```
|
|
+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://<MainHost>/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`
|