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 httpdshell> chkconfig httpd onshell> /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/smokepingshell> mkdir datashell> mkdir var
- Step 4: Add Smokeping Start/Stop Script
shell> wget https://pingpros.com/pub/smokepingshell> mv smokeping /etc/init.d/smokepingshell> 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 needsowner = 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.distHere is an example change in boldowner = 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.fcgishell> cd /var/www/html/shell> mkdir cacheshell> chown apache cacheshell> ln -s /var/www/html/cache /opt/smokeping/cache
- Step 4: Start Smokeping
shell> /etc/init.d/httpd startshell> /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 smokepingshell> chkconfig httpd onshell> 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 https://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/configExample config file below in bold*** Targets ***probe = FPingmenu = Toptitle = Network Latency Grapherremark = Welcome to the SmokePing website of PingPros. \Here you will learn all about the latency of our network.+ Targetsmenu = Networktitle = Ping Network Equipment++ rchicago1menu = ChicagoR1title =Chicago Router 1
host = 10.1.1.1++ schicago1menu = ChicagoS1title = Chicago Switch 1
probe = TCPPingport = 80host = 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
TCPPING – http://www.vdberg.org/~richard/tcpping
Smokeping – http://oss.oetiker.ch/smokeping/
6 Comments
*** 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.
You may be missing the ping information for fping. What does your probe file look like?
(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
image graph not showing, i’m install on centos 6.8 64byte, please give me suggestion for troubleshot.
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.
[…] details of installing SmokePing, as there are already a number of good tutorials out there (like this one or this one). If you have a decent familiarity with Linux, then the process should be fairly […]