Installing Smokeping On CentOS 5.x and 6.x

NOTE: THIS INSTALLATION HAS BEEN TESTED TO BE WORKING WITH CENTOS 5.X – 6.x

Prep your server


  • Step 1: Disable SELinux 

shell> setenforce 0

  • Step 2: Install rpmforge

shell> yum install http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

  • Step 3: Install Required Packages

shell> yum install mod_fcgid httpd httpd-devel rrdtool fping wget curl bind-utils gcc make gcc-c++

  • Step 4: Install Perl based packages

shell> yum install 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

 


Install Apache


  • Step 1: Install Apache and ensure it runs on startup
shell> yum install httpd
shell> chkconfig httpd on
shell> /etc/init.d/httpd start

Install Smokeping


  • Step 1: Download latest version of smokeping on website at http://oss.oetiker.ch/smokeping/pub

shell> wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.9.tar.gz

  • Step 2: Extract and install smokeping

shell> tar -zxvf smokeping-2.6.9.tar.gz -C /opt/
shell> mkdir /opt/smokeping
shell> cd /opt/smokeping-2.6.9/setup
shell> ./build-perl-modules.sh
shell> cp -r ../thirdparty /opt/smokeping/
shell>  cd ..
shell> ./configure –prefix=/opt/smokeping
shell>  make install

  • Step 3: Create missing folders needed
shell> cd /opt/smokeping
shell> mkdir data
shell> mkdir var
  • Step 4: Add Smokeping Start/Stop Script
shell> wget http://pingpros.com/pub/smokeping
shell> mv smokeping /etc/init.d/smokeping
shell> chmod 755 /etc/init.d/smokeping

Configure Smokeping Application


  • Step 1: Rename Config Files and set file permissions

shell> cd /opt/smokeping/etc/
shell> for foo in *.dist; do cp $foo `basename $foo .dist`; done
shell> chmod 600 /opt/smokeping/etc/smokeping_secrets.dist

  • Step 2: Change Default Config

shell> cd /opt/smokeping/etc/
shell>
 vim config

Change the values in bold to something that fit your needs
owner    = Peter Random
contact  = some@address.nowhere
mailhost = my.mail.host
sendmail = /usr/sbin/sendmail
# NOTE: do not put the Image Cache below cgi-bin
# since all files under cgi-bin will be executed … this is not
# good for images.
imgcache = /opt/smokeping/cache
imgurl   = cache
datadir  = /opt/smokeping/data
piddir  = /opt/smokeping/var
cgiurl   = http://some.url/smokeping.cgi
smokemail = /opt/smokeping/etc/smokemail.dist
tmail = /opt/smokeping/etc/tmail.dist
Here is an example change in bold
owner    = PingPros.com
contact  = something@pingpros.com
mailhost = mail.pingpros.com

sendmail = /usr/sbin/sendmail
# NOTE: do not put the Image Cache  below cgi-bin
# since all files under cgi-bin will be executed … this is not
# good for images.
imgcache = /opt/smokeping/cache
imgurl   = /cache
datadir  = /opt/smokeping/data
piddir  = /opt/smokeping/var
cgiurl   = http://(IP  or Hostname)/cgi-bin/smokeping.fcgi
smokemail = /opt/smokeping/etc/smokemail.dist
tmail = /opt/smokeping/etc/tmail.dist
  • Step 3: Copy Smokeping files into web server
shell> cp -r /opt/smokeping/htdocs/cropper /var/www/cgi-bin/
shell> cp /opt/smokeping/htdocs/smokeping.fcgi.dist /var/www/cgi-bin/smokeping.fcgi
shell> cd /var/www/html/
shell> mkdir cache
shell> chown apache cache
shell> ln -s /var/www/html/cache /opt/smokeping/cache
  • Step 4: Start Smokeping
shell> /etc/init.d/httpd start
shell> /etc/init.d/smokeping start
  • Step 5: Test Smokeping Link for errors
    • Visit the cgi-url you configured above. IE: cgiurl   = http://(IP  or Hostname)/cgi-bin/smokeping.fcgi
  • Step6: Clean Up Smokeping Installation Files

shell> rm -rf /opt/smokeping-2.6.9

  • Enable smokeping to start during boot
shell> chkconfig –add  smokeping
shell> chkconfig httpd on
shell> chkconfig smokeping on

Install TCPPing and Change TCPPing/FPing Intervals – Recommended


  • Install TCPTraceroute

shell> yum install tcptraceroute

  • Install TCPPing

shell> cd /usr/bin/
shell> wget http://pingpros.com/pub/tcpping
shell> chmod 755 tcpping

  • Configure Probe into Smokeping

shell> vim /opt/smokeping/etc/config

Add Below under *** Probes *** (note: I prefer setting it up to ping every 60 second interval in this example…FPING will already be there just add the step = 60 configlet)

+ FPing
binary = /usr/sbin/fping
step = 60

+ TCPPing
binary = /usr/bin/tcpping
step = 60

  • Restart smkeping to use new config

shell> /etc/init.d/smokeping restart


Configure Smokeping to monitoring your targets


  • Step 1: Add your own hosts in the config file
shell> vim /opt/smokeping/etc/config
Example  config file below in bold
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of PingPros. \
         Here you will learn all about the latency of our network.
+ Targets
menu = Network
title = Ping Network Equipment
++ rchicago1
menu = ChicagoR1
title =Chicago Router 1
host = 10.1.1.1
++ schicago1
menu = ChicagoS1
title = Chicago Switch 1
probe = TCPPing
port = 80
host = 10.1.1.254
  • Restart smkeping to use new config

shell> /etc/init.d/smokeping restart

NOTE ABOVE: rchicago1 is using FPing by default as is configured to be the default, schicago1 is using TCPPING because we specified it. It is recommended to utilize TCPPING whenever possible! It is also best practice to put in the probe parameters for each host!

 

END OF TUTORIAL

 

Credits:
TCPPING – http://www.vdberg.org/~richard/tcpping
Smokeping – http://oss.oetiker.ch/smokeping/

 

 

6 thoughts on “Installing Smokeping On CentOS 5.x and 6.x

  1. *** Targets ***

    probe = FPing
    menu = Top
    title = Network Latency Grapher
    remark = Welcome to the SmokePing website of NNTI Company. \
    Here you will learn all about the latency of our network.

    + Test
    menu = Test
    title = Ping Network Equipment
    #parents = owner:/Test/James location:/

    ++ Network

    menu = sample
    title = sample-Router
    #alerts = someloss
    #slaves = boomer slave2
    host = 192.168.0.115

    ++ MultiHost

    menu = Multihost
    title = James and James as seen from Boomer
    host = /Test/James /Test/James~boomer

    ***************************************************

    Software error:

    Can’t call method “_pings” on an undefined value at /opt/smokeping/bin/../lib/Smokeping.pm line 888.

    For help, please send mail to the webmaster (root@localhost), giving this error message and the time and date of the error.

    • (I know it’s been a long time… I’m posting a result in case someone else runs into this in the future…)

      In my case, the error listed – “Can’t call method “_pings” on an undefined value … /lib/Smokeping.pm line 888″ – was caused by a mis-typed host data path.

      The apache error log contained lines specifying the source of the problem. The relevant line can be found by searching the web server error log (/var/log/httpd/error_log in my case) for “.rrd”

      grep \.rrd /var/log/httpd/error_log

      [Sun Jul 09 06:28:54 2017] [error] [client 192.168.200.110] [Sun Jul 9 06:28:54 2017] smokeping_cgi [client 192.168.200.110]: opening ‘…/data/local/vwin1-64.rrd’: No such file or directory

      Where —
      …/data is the path to the smokeping data folder specified in the config file
      /local/vwin1-64.rrd is the mis-typed host data path for /local/vwin10-64

      My multi-host declaration looked like this:
      + local
      menu = My Local Hosts
      title = My Local Hosts
      host = /local/netgear /local/cloud /local/time_capsule /local/proxmox /local/nas01 /local/vwin1-64

      The error went away when I added the missing zero to /local/vwin10-65

    • Most likely an issue with permissions. ls inside of the image directory and ensure you Chmod or chown to make sure that the files are appropriately configured.

Leave a Comment