The net/smokeping port
smokeping-2.8.2p5 – latency logging and graphing system (cvsweb github mirror)
Description
SmokePing is a latency logging and interactive graphing system, for ICMP pings and many other protocols (DNS, SSH, SIP, HTTP and more). The main daemon process organizes latency measurements, records them in an RRDtool database, and optionally sends email alerts based on various criteria. The CGI/FastCGI program presents the graphs and optionally allows remote control via a master/slave protocol (allowing aggregation of data from multiple test locations in a single server).WWW: https://oss.oetiker.ch/smokeping/
Readme
+----------------------------------------------------------------------- | Running ${PKGSTEM} on OpenBSD +----------------------------------------------------------------------- Basic configuration =================== Smokeping is split into two main parts, the daemon (running the probes and updating RRD files) and the part responsible for generating website graphs. For the daemon, edit ${SYSCONFDIR}/config (at least add some hosts to monitor) and enable it: rcctl enable smokeping rcctl start smokeping For graph generation, the simplest method is generate static HTML and image files from a cron job. This doesn't allow zoom into graphs interactively from the browser, but it is easy to configure, more secure, and is good enough for many use cases. To do this, add a cron job to run this as the _smokeping user (adjust path as necessary): smokeping --static=/var/www/htdocs/smokeping Alternatively it can run as a CGI/FastCGI script with a web server. A normal installation runs smokeping_fcgi as a daemon and the web server is told to communicate with it over a UNIX socket. If you wish to use this method, enable the daemon: rcctl enable smokeping_fcgi rcctl start smokeping_fcgi And configure your web server to access it - here is a sample configuration section for use with nginx: location ~ /smokeping/smokeping.cgi$ { fastcgi_pass unix:run/smokeping.sock; fastcgi_split_path_info ^(/cgi-bin/[^/]+)(.*); fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; include fastcgi_params; } Or the httpd(8) in OpenBSD base: server "example.org" { listen on * port 80 location "/smokeping/smokeping.cgi*" { fastcgi socket "/run/smokeping.sock" root "/" } } Other probe types ================= Smokeping is most often used to perform ICMP monitoring via fping, but has "Probe" modules for other protocols too. Some of these require additional packages to be installed: RADIUS: p5-Authen-Radius TelnetIOSPing: p5-Net-Telnet OpenSSHEOSPing: p5-Net-OpenSSH p5-IO-Pty OpenSSHJunOSPing: p5-Net-OpenSSH p5-IO-Pty AnotherDNS: p5-Net-DNS LDAP: p5-ldap p5-IO-Socket-SSL Advanced topic: Heavy load systems ================================== If problems are seen with excessive load or i/o, it is possible to configure Smokeping to use rrdcached instead. This is not needed for a typical setup but will typically reduce the amount of data that needs to be written to disk (the RRD files are flushed periodically according to the command-line flags, allowing some writes to be aggregated). To use this, group permissions should be set to allow Smokeping to access the rrdcached socket, and to allow rrdcached to access Smokeping's files, e.g.: $ grep _smokeping /etc/group _smokeping:*:562:_rrdcached _rrdcached:*:726:_smokeping # chgrp -R _rrdcached /var/db/smokeping # chmod -R g+w /var/db/smokeping The rrdcached daemon must be running: # rcctl enable rrdcached # rcctl set rrdcached flags -b /var/db/smokeping -B -m 770 \ -l unix:/var/run/rrd/rrdcached.sock -j /var/db/smokeping/journal \ -p /var/run/rrd/rrdcached.pid # rcctl restart rrdcached The Smokeping daemon must be told to use rrdcached when writing data. This is done by setting an environment variable; add this to /etc/login.conf: smokeping:setenv=RRDCACHED_ADDRESS=unix\c/var/run/rrd/rrdcached.sock:tc=daemon Then restart smokeping. Use -d to show more information in case of errors at startup. # rcctl -d restart smokeping You can also have Smokeping's FastCGI script use rrdcached when accessing data to display. This will be needed in order that it displays the most up-to-date information (otherwise it will only see updates that have been flushed to disk) and *may* improve performance, however it can also result in too much kernel contention (the OpenBSD kernel does not have great SMP support for disk access yet) so can actually slow down display. Test to see what's best for your system. To do this, a FastCGI parameter needs to be passed across from your web server. For nginx: fastcgi_param RRDCACHED_ADDRESS unix:/var/run/rrd/rrdcached.sock; Or the httpd(8) in OpenBSD base: param RRDCACHED_ADDRESS "unix:/var/www/run/rrd/rrdcached.sock" And reload the web server configuration.
Maintainer
The OpenBSD ports mailing-list
Categories
Build dependencies
Run dependencies
Files
- /etc/rc.d/smokeping
- /etc/rc.d/smokeping_fcgi
- /etc/smokeping/
- /etc/smokeping/basepage.html
- /etc/smokeping/config
- /etc/smokeping/smokemail
- /etc/smokeping/smokeping_secrets
- /etc/smokeping/tmail
- /usr/local/bin/smokeinfo
- /usr/local/bin/smokeping
- /usr/local/bin/smokeping_cgi
- /usr/local/bin/tSmoke
- /usr/local/lib/Smokeping.pm
- /usr/local/lib/Smokeping/
- /usr/local/lib/Smokeping/Colorspace.pm
- /usr/local/lib/Smokeping/Config.pm
- /usr/local/lib/Smokeping/Examples.pm
- /usr/local/lib/Smokeping/Graphs.pm
- /usr/local/lib/Smokeping/Info.pm
- /usr/local/lib/Smokeping/Master.pm
- /usr/local/lib/Smokeping/RRDhelpers.pm
- /usr/local/lib/Smokeping/RRDtools.pm
- /usr/local/lib/Smokeping/Slave.pm
- /usr/local/lib/Smokeping/ciscoRttMonMIB.pm
- /usr/local/lib/Smokeping/matchers/
- /usr/local/lib/Smokeping/matchers/Avgratio.pm
- /usr/local/lib/Smokeping/matchers/CheckLatency.pm
- /usr/local/lib/Smokeping/matchers/CheckLoss.pm
- /usr/local/lib/Smokeping/matchers/ConsecutiveLoss.pm
- /usr/local/lib/Smokeping/matchers/ExpLoss.pm
- /usr/local/lib/Smokeping/matchers/Median.pm
- /usr/local/lib/Smokeping/matchers/Medratio.pm
- /usr/local/lib/Smokeping/matchers/base.pm
- /usr/local/lib/Smokeping/pingMIB.pm
- /usr/local/lib/Smokeping/probes/
- /usr/local/lib/Smokeping/probes/AnotherCurl.pm
- /usr/local/lib/Smokeping/probes/AnotherDNS.pm
- /usr/local/lib/Smokeping/probes/AnotherSSH.pm
- /usr/local/lib/Smokeping/probes/CiscoRTTMonDNS.pm
- /usr/local/lib/Smokeping/probes/CiscoRTTMonEchoICMP.pm
- /usr/local/lib/Smokeping/probes/CiscoRTTMonTcpConnect.pm
- /usr/local/lib/Smokeping/probes/Curl.pm
- /usr/local/lib/Smokeping/probes/DNS.pm
- /usr/local/lib/Smokeping/probes/DismanPing.pm
- /usr/local/lib/Smokeping/probes/EchoPing.pm
- /usr/local/lib/Smokeping/probes/EchoPingChargen.pm
- /usr/local/lib/Smokeping/probes/EchoPingDNS.pm
- /usr/local/lib/Smokeping/probes/EchoPingDiscard.pm
- /usr/local/lib/Smokeping/probes/EchoPingHttp.pm
- /usr/local/lib/Smokeping/probes/EchoPingHttps.pm
- /usr/local/lib/Smokeping/probes/EchoPingIcp.pm
- /usr/local/lib/Smokeping/probes/EchoPingLDAP.pm
- /usr/local/lib/Smokeping/probes/EchoPingPlugin.pm
- /usr/local/lib/Smokeping/probes/EchoPingSmtp.pm
- /usr/local/lib/Smokeping/probes/EchoPingWhois.pm
- /usr/local/lib/Smokeping/probes/FPing.pm
- /usr/local/lib/Smokeping/probes/FPing6.pm
- /usr/local/lib/Smokeping/probes/FPingContinuous.pm
- /usr/local/lib/Smokeping/probes/FTPtransfer.pm
- /usr/local/lib/Smokeping/probes/IOSPing.pm
- /usr/local/lib/Smokeping/probes/IRTT.pm
- /usr/local/lib/Smokeping/probes/LDAP.pm
- /usr/local/lib/Smokeping/probes/NFSping.pm
- /usr/local/lib/Smokeping/probes/OpenSSHEOSPing.pm
- /usr/local/lib/Smokeping/probes/OpenSSHJunOSPing.pm
- /usr/local/lib/Smokeping/probes/Qstat.pm
- /usr/local/lib/Smokeping/probes/Radius.pm
- /usr/local/lib/Smokeping/probes/RemoteFPing.pm
- /usr/local/lib/Smokeping/probes/SSH.pm
- /usr/local/lib/Smokeping/probes/SendEmail.pm
- /usr/local/lib/Smokeping/probes/SipSak.pm
- /usr/local/lib/Smokeping/probes/TCPPing.pm
- /usr/local/lib/Smokeping/probes/TacacsPlus.pm
- /usr/local/lib/Smokeping/probes/TelnetIOSPing.pm
- /usr/local/lib/Smokeping/probes/TelnetJunOSPing.pm
- /usr/local/lib/Smokeping/probes/TraceroutePing.pm
- /usr/local/lib/Smokeping/probes/WebProxyFilter.pm
- /usr/local/lib/Smokeping/probes/base.pm
- /usr/local/lib/Smokeping/probes/basefork.pm
- /usr/local/lib/Smokeping/probes/basevars.pm
- /usr/local/lib/Smokeping/probes/passwordchecker.pm
- /usr/local/lib/Smokeping/probes/skel.pm
- /usr/local/lib/Smokeping/sorters/
- /usr/local/lib/Smokeping/sorters/Loss.pm
- /usr/local/lib/Smokeping/sorters/Max.pm
- /usr/local/lib/Smokeping/sorters/Median.pm
- /usr/local/lib/Smokeping/sorters/StdDev.pm
- /usr/local/lib/Smokeping/sorters/base.pm
- /usr/local/man/man1/smokeinfo.1
- /usr/local/man/man1/smokeping.1
- /usr/local/man/man1/smokeping_cgi.1
- /usr/local/man/man1/tSmoke.1
- /usr/local/man/man3/Smokeping_matchers_Avgratio.3
- /usr/local/man/man3/Smokeping_matchers_CheckLatency.3
- /usr/local/man/man3/Smokeping_matchers_CheckLoss.3
- /usr/local/man/man3/Smokeping_matchers_ConsecutiveLoss.3
- /usr/local/man/man3/Smokeping_matchers_ExpLoss.3
- /usr/local/man/man3/Smokeping_matchers_Median.3
- /usr/local/man/man3/Smokeping_matchers_Medratio.3
- /usr/local/man/man3/Smokeping_matchers_base.3
- /usr/local/man/man3/Smokeping_probes_AnotherCurl.3
- /usr/local/man/man3/Smokeping_probes_AnotherDNS.3
- /usr/local/man/man3/Smokeping_probes_AnotherSSH.3
- /usr/local/man/man3/Smokeping_probes_CiscoRTTMonDNS.3
- /usr/local/man/man3/Smokeping_probes_CiscoRTTMonEchoICMP.3
- /usr/local/man/man3/Smokeping_probes_CiscoRTTMonTcpConnect.3
- /usr/local/man/man3/Smokeping_probes_Curl.3
- /usr/local/man/man3/Smokeping_probes_DNS.3
- /usr/local/man/man3/Smokeping_probes_DismanPing.3
- /usr/local/man/man3/Smokeping_probes_EchoPing.3
- /usr/local/man/man3/Smokeping_probes_EchoPingChargen.3
- /usr/local/man/man3/Smokeping_probes_EchoPingDNS.3
- /usr/local/man/man3/Smokeping_probes_EchoPingDiscard.3
- /usr/local/man/man3/Smokeping_probes_EchoPingHttp.3
- /usr/local/man/man3/Smokeping_probes_EchoPingHttps.3
- /usr/local/man/man3/Smokeping_probes_EchoPingIcp.3
- /usr/local/man/man3/Smokeping_probes_EchoPingLDAP.3
- /usr/local/man/man3/Smokeping_probes_EchoPingPlugin.3
- /usr/local/man/man3/Smokeping_probes_EchoPingSmtp.3
- /usr/local/man/man3/Smokeping_probes_EchoPingWhois.3
- /usr/local/man/man3/Smokeping_probes_FPing.3
- /usr/local/man/man3/Smokeping_probes_FPing6.3
- /usr/local/man/man3/Smokeping_probes_FPingContinuous.3
- /usr/local/man/man3/Smokeping_probes_FTPtransfer.3
- /usr/local/man/man3/Smokeping_probes_IOSPing.3
- /usr/local/man/man3/Smokeping_probes_IRTT.3
- /usr/local/man/man3/Smokeping_probes_LDAP.3
- /usr/local/man/man3/Smokeping_probes_NFSping.3
- /usr/local/man/man3/Smokeping_probes_OpenSSHEOSPing.3
- /usr/local/man/man3/Smokeping_probes_OpenSSHJunOSPing.3
- /usr/local/man/man3/Smokeping_probes_Qstat.3
- /usr/local/man/man3/Smokeping_probes_Radius.3
- /usr/local/man/man3/Smokeping_probes_RemoteFPing.3
- /usr/local/man/man3/Smokeping_probes_SSH.3
- /usr/local/man/man3/Smokeping_probes_SendEmail.3
- /usr/local/man/man3/Smokeping_probes_SipSak.3
- /usr/local/man/man3/Smokeping_probes_TCPPing.3
- /usr/local/man/man3/Smokeping_probes_TacacsPlus.3
- /usr/local/man/man3/Smokeping_probes_TelnetIOSPing.3
- /usr/local/man/man3/Smokeping_probes_TelnetJunOSPing.3
- /usr/local/man/man3/Smokeping_probes_TraceroutePing.3
- /usr/local/man/man3/Smokeping_probes_WebProxyFilter.3
- /usr/local/man/man3/Smokeping_probes_base.3
- /usr/local/man/man3/Smokeping_probes_basefork.3
- /usr/local/man/man3/Smokeping_probes_basevars.3
- /usr/local/man/man3/Smokeping_probes_passwordchecker.3
- /usr/local/man/man3/Smokeping_probes_skel.3
- /usr/local/man/man3/Smokeping_sorters_Loss.3
- /usr/local/man/man3/Smokeping_sorters_Max.3
- /usr/local/man/man3/Smokeping_sorters_Median.3
- /usr/local/man/man3/Smokeping_sorters_StdDev.3
- /usr/local/man/man3/Smokeping_sorters_base.3
- /usr/local/man/man5/smokeping_config.5
- /usr/local/man/man5/smokeping_examples.5
- /usr/local/man/man7/smokeping_extend.7
- /usr/local/man/man7/smokeping_install.7
- /usr/local/man/man7/smokeping_master_slave.7
- /usr/local/man/man7/smokeping_upgrade.7
- /usr/local/share/doc/pkg-readmes/smokeping
- /usr/local/share/examples/smokeping/
- /usr/local/share/examples/smokeping/basepage.html.dist
- /usr/local/share/examples/smokeping/config.dist
- /usr/local/share/examples/smokeping/config.echoping
- /usr/local/share/examples/smokeping/config.fping-instances
- /usr/local/share/examples/smokeping/config.multiple-probes
- /usr/local/share/examples/smokeping/config.simple
- /usr/local/share/examples/smokeping/config.targetvars-with-Curl
- /usr/local/share/examples/smokeping/config.template
- /usr/local/share/examples/smokeping/httpd.conf
- /usr/local/share/examples/smokeping/smokemail.dist
- /usr/local/share/examples/smokeping/smokeping_secrets.dist
- /usr/local/share/examples/smokeping/tmail.dist
- /var/db/smokeping/
- /var/www/conf/modules.sample/
- /var/www/conf/modules.sample/smokeping.conf
- /var/www/htdocs/smokeping/
- /var/www/htdocs/smokeping/css/
- /var/www/htdocs/smokeping/css/smokeping-print.css
- /var/www/htdocs/smokeping/css/smokeping-screen.css
- /var/www/htdocs/smokeping/js/
- /var/www/htdocs/smokeping/js/cropper/
- /var/www/htdocs/smokeping/js/cropper/cropper.css
- /var/www/htdocs/smokeping/js/cropper/cropper.js
- /var/www/htdocs/smokeping/js/cropper/cropper.uncompressed.js
- /var/www/htdocs/smokeping/js/cropper/licence.txt
- /var/www/htdocs/smokeping/js/cropper/marqueeHoriz.gif
- /var/www/htdocs/smokeping/js/cropper/marqueeVert.gif
- /var/www/htdocs/smokeping/js/prototype.js
- /var/www/htdocs/smokeping/js/scriptaculous/
- /var/www/htdocs/smokeping/js/scriptaculous/builder.js
- /var/www/htdocs/smokeping/js/scriptaculous/controls.js
- /var/www/htdocs/smokeping/js/scriptaculous/dragdrop.js
- /var/www/htdocs/smokeping/js/scriptaculous/effects.js
- /var/www/htdocs/smokeping/js/scriptaculous/scriptaculous.js
- /var/www/htdocs/smokeping/js/scriptaculous/slider.js
- /var/www/htdocs/smokeping/js/scriptaculous/sound.js
- /var/www/htdocs/smokeping/js/scriptaculous/unittest.js
- /var/www/htdocs/smokeping/js/smokeping.js
- /var/www/htdocs/smokeping/smokeping.fcgi
- @newgroup _smokeping:562
- @newuser _smokeping:562:562::Smokeping account:/var/empty:/sbin/nologin