Install SmokePing on CentOS 7

This tutorial explains how to install Tobias Oetiker’s Smokeping into /opt/smokeping on a CentOS 7 box.

Features of Smokeping:
– Best of breed latency visualisation.
– Interactive graph explorer.
– Wide range of latency measurement plugins.
– Master/Slave System for distributed measurement.
– Highly configurable alerting system.
– Live Latency Charts with the most ‘interesting’ graphs.
– Free and open-source Software written in Perl written by Tobi Oetiker, the creator of MRTG and RRDtool

Install Development Tools

Load the development tools needed to compile smokeping.

# yum groupinstall "Development tools"

There are also dependencies that will install with these tools.

Enable Epel repo

You can install EPEL by running yum install epel-release. The package is included in the CentOS extras repository, enabled by default.

# yum install epel-release

Install packages

Then install the following packages-

# yum install perl httpd httpd-devel mod_fcgid rrdtool perl-CGI-SpeedyCGI fping rrdtool-perl perl-Sys-Syslog

Add a few of the pre packaged CPAN modules

# yum install perl-CPAN perl-local-lib perl-Time-HiRes

Install smokeping

Now download the latest smokeping package available at http://oss.oetiker.ch/smokeping/pub/
The current version at the time of the writing is 2.6.11

# cd /root
# wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.11.tar.gz

then extract it

# tar xfz smokeping-2.6.11.tar.gz

Install perl modules needed by smokeping

# mkdir /opt/smokeping
# cd smokeping-2.6.11/setup
# ./build-perl-modules.sh
# cd ..
# cp -r thirdparty /opt/smokeping/
# ./configure --prefix=/opt/smokeping
# make install

Configure smokeping

Then you will need to configure smokeping. Find below our sample config in form of a screenshot or download a sample config here.

# vi /opt/smokeping/etc/config

Hint: 10.0.1.251 is the IP of the smokeping host himself.

Create your config from the default config delivered with smokeping and/or use our sample config.

# cd /opt/smokeping/etc
# cp config.dist config
# cp /opt/smokeping/etc/basepage.html.dist /opt/smokeping/etc/basepage.html

Create directories used by smokeping, copy some required files into the public web-directory and set rights for apache user if required.

# mkdir /opt/smokeping/data
# mkdir /opt/smokeping/var
# mkdir /var/www/smokeping
# mkdir /var/www/smokeping/cache
# cp -R /opt/smokeping/htdocs/* /var/www/smokeping
# mv /var/www/smokeping/smokeping.fcgi.dist /var/www/smokeping/smokeping.fcgi
# chown -R apache:apache /var/www/smokeping

Add a virtual apache directory by creating a file on /etc/httpd/conf.d/ with the name smokeping.conf. Add following content to it

Alias /smokeping "/var/www/smokeping"

<Directory /var/www/smokeping>
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex smokeping.fcgi
</Directory>

Restart Apache

# service httpd restart

SELinux

This guide expects SELinux has to be disabled, read following article about disabling SELinux. In case you change your SELinux settings: Make sure you have rebooted your machine to apply the changes.
https://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable.html

Run smokeping

To test the installation, execute following command.

# cd /opt/smokeping
# ./bin/smokeping --config=/opt/smokeping/etc/config --debug

To daemonize smokeping, execute following command:

# cd /opt/smokeping
# ./bin/smokeping --config=/opt/smokeping/etc/config --logfile=smoke.log

Browse to: http://<your_ipaddress>/smokeping

For additional resources have a visit at the authors website:
– http://oss.oetiker.ch/smokeping/

Create smokeping systemd file\

vim /usr/lib/systemd/system/smokeping.service
[Unit]
Description=Smokeping Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
ExecStart=/opt/smokeping/bin/smokeping --nodaemon --config=/opt/smokeping/etc/config --logfile=/var/log/smokeping.log

[Install]
WantedBy=multi-user.target

Restart Services (even during any updates in the config file- remember to restart both smokeping and httpd services)
systemctl start smokeping && systemctl enable smokeping
systemctl restart httpd

Special Hint:

In case your graphics for the last 3 hours didnt get updated but all the other timeframes are updated normaly, you may experience an error from the compiler. In this case please try to execute smokeping like this:

# perl /opt/smokeping/bin/smokeping --config=/opt/smokeping/etc/config --logfile=smoke.log

Issue while define ‘smokeping_secrets’

# chmod og-rw /usr/src/smokeping-2.3.6/etc/smokeping_secrets

Src:
https://www.web-workers.ch/index.php/2017/06/21/how-to-install-smokeping-on-centos-7/
https://smokeping-users.oetiker.narkive.com/DmlABgVP/issue-while-define-smokeping-secrets
https://bidhankhatri.com.np/network/smokeping-2.7.3/

Share

3 thoughts on “Install SmokePing on CentOS 7”

  1. ./bin/smokeping –config=/opt/smokeping/etc/config –debug
    ERROR: /opt/smokeping/etc/config, line 6: File ‘/usr/sbin/sendmail’ does not exist

    Reply
  2. [root@smp smokeping]# ./bin/smokeping –config=/opt/smokeping/etc/config –debug
    ERROR: /opt/smokeping/etc/config, line 6: File ‘/usr/sbin/sendmail’ does not exist

    Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.