How to install smokeping on CentOS 7 linux

Today, we will show you how to install smokeping on CentOS 7 linux.
Smokeping software is one of the most popular network management software used by service providers and can only be implemented on Linux-based operating systems.
It allows a servers to be analyzed by a user interface. This software is very lightweight and will not require many resources to launch.
Availability checks is one of the most usage of smokeping.

Here is our environment:

OS: CentOS 7 linux on VMWare
Firewall: enabled
SELinux: permissive

1- Install prerequisites

To install smokeping, we first need to install other software packages that are listed as Dependencies of smokeping.
With the command below we will install them. In addition to the original repository of the operating system itself, Epel must also be installed:

# yum install epel-release
# yum install mod_fcgid httpd httpd-devel rrdtool rrdtool-perl fping wget curl bind-utils gcc make perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-RadiusPerl perl-IO-Socket-SSL perl-Socket6 perl-CGI-SpeedyCGI perl-FCGI perl-RRD-Simple perl-CGI-SpeedCGI perl-ExtUtils-MakeMaker perl-rrdtool perl-core

2- Install smokeping

Now download the latest version of Smokeping from smokeping FTP server:

# wget https://oss.oetiker.ch/smokeping/pub/smokeping-2.7.3.tar.gz

then extract it in the /opt:

# tar -zxvf smokeping-2.7.3.tar.gz -C /opt/

create a directory called smokeping in /opt:

# mkdir /opt/smokeping/

then go to extracted smokeping archive and run configure script:

# cd /opt/smokeping-2.7.3/
# ./configure --prefix=/opt/smokeping

now install smokeping by running:

# /usr/bin/gmake install

3- Configure smokeping

now created required directories:

# cd /opt/smokeping/
# mkdir data var cache

change config files names:

# cd etc/
# for foo in *.dist; do mv $foo `basename $foo .dist`; done

then change permission of smokeping secret file and some ownerships:

# chmod 600 etc/smokeping_secrets.dist
# ln -s /opt/smokeping/cache /opt/smokeping/htdocs/cache
# chown -R apache cache
# chown -R apache data

create smokeping.conf file in httpd conf directory and put the following content in it:

# vim /etc/httpd/conf.d/smokeping.conf
ScriptAlias /smokeping/smokeping.cgi /opt/smokeping/htdocs/smokeping.fcgi.dist
Alias /smokeping /opt/smokeping/htdocs
<Directory "/opt/smokeping/htdocs">
Options FollowSymLinks
Require all granted
</Directory>

then open smokeping config file:

# vim /opt/smokeping/etc/config

and change this line:

host = james.host

to:

host = 192.168.43.242 (replace this with your own IP)

4- Configure firewall

to view graphs and access web interface, we should open port 80:

# firewall-cmd --permanent --add-service=http
# firewall-cmd --reload

5- Smokeping systemd service

basically, smokeping runs by executing its script and passing parameters. for better handling smokeping execution, we will make a systemd service unit for it.
so create a service unit file:

# vim /lib/systemd/system/smokeping.service

and put these lines in it:

[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/smoke.log

[Install]
WantedBy=multi-user.target

6- Start Services

now it’s time to start httpd and smokeping services. run these command to start and check both services:

# systemctl start httpd
# systemctl start smokeping
# systemctl status httpd
# systemctl status smokeping

then open browser and point to this addresss for smokeping web interface:

http://localhost/smokeping/smokeping.cgi