1 基本概念

 

2 安装

2.0 时间同步

yum -y install ntpdatentpdate times.aliyun.com

2.1 安装依赖包

yum groupinstall "Compatibility libraries" "Base" "Development tools" -y yum -y installcpan perl perl-FCGI perl-CGI perl-Digest-HMAC perl-Net-Telnet perl-Net-OpenSSH perl-Net-SNMPperl-LDAP perl-Net-DNS perl-IO-Pty-Easy perl-Test-Simple perl-Sys-Syslog perl-libwww-perlperl-IO-Socket-SSL perl-Socket6 perl-CGI-SpeedyCGI perl-FCGI perl-Time-HiResperl-ExtUtils-MakeMaker rrdtool rrdtool-perl curl fping httpd httpd-devel gccmake wget libxml2-devel libpng-devel glib pango pango-devel freetypefreetype-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel mod_fcgidscreen

2.2 安装echoping

tar xvfechoping-6.0.2.tar.gzcd echoping-6.0.2./configure--prefix=/usr/local/echopingmake && makeinstall

2.3 安装smokeping

 

cd /usr/local/srcxf smokeping-2.6.11.tar.gzcd smokeping-2.6.11 #exportPERL5LIB=/usr/local/smokeping/thirdparty/lib/perl5/./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty./configure --prefix=/usr/local/smokepinggmake install

 

如果./configure过程中提示找不到某些perl扩展,如下所示

checking checking for perl module'Config::Grammar'... Can't locate Config/Grammar.pm in @INC (@INC contains:/usr/local/smokeping/thirdparty/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5/usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5/usr/share/perl5 .) at -e line 1.BEGIN failed--compilation aborted at -e line 1.

 

请使用以下命令安装对应模块

perl -MCPAN -e 'install Config::Grammar'

注意:有时候需要重复安装几次才能装上模块。

注意要选择国内的的模块源,不然速度很慢。

 

 

 

2.4 创建相关目录和日志文件

cd /usr/local/smokepingmkdir cache data var touch /var/log/smokeping.log chown apache.apache cache/ data/ var/ /var/log

 

因为这里的web服务使用的是httpd,所以相关文件的属主属组均为apache

 

2.5 创建相关配置文件

 

#fcgi文件cp /usr/local/smokeping/htdocs/smokeping.fcgi.dist /usr/local/smokeping/htdocs/smokeping.fcgi #主配置文件cp /usr/local/smokeping/etc/config.dist/usr/local/smokeping/etc/config

 

 

2.6 修改配置文件

#指定cgi的url地址为本机sed -i ‘s#cgiurl   = http://some.url/smokeping.cgi#cgiurl   = http://10.0.56.12/smokeping.cgi#g’/usr/local/smokeping/etc/config#指定检测的时间为60秒sed -i ‘s#step    = 300#step     = 60#g’/usr/local/smokeping/etc/config #指定ping的次数为60sed -i ‘s#pings   =20#pings    =60#g’/usr/local/smokeping/etc/config 将step和pings都设置为60表示每60秒ping60次。

 

2.7 修改字符集和字体支持中文

vim /usr/local/smokeping/etc/config***Presentation ***charset= utf-8

 

yum -y install wqy-zenhei-fonts

vim/usr/local/smokeping/lib/Smokeping/Graphs.pm

        my$val = 0;

        formy $host (@hosts){

            my ($graphret,$xs,$ys) = RRDs::graph

           ("dummy",

           '--start', $tasks[0][1],

           '--end', $tasks[0][2],

            '--font TITLE:20"WenQuanYiZen Hei Mono"',

           "DEF:maxping=$cfg->{General}{datadir}${host}.rrd:median:AVERAGE",

           'PRINT:maxping:MAX:%le' );

           my $ERROR = RRDs::error();

2.8 修改apache配置文件增加登录验证

htpasswd -c /usr/local/smokeping/htdocs/htpasswd smokepingchmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist

 

2.9 修改httpd.conf增加smokepingweb界面

httpd.conf末尾添加如下内容

vim /etc/httpd/conf/httpd.conf #########changed by ggvylf 2016/06/13##############Alias /cache"/usr/local/smokeping/cache/"Alias /cropper"/usr/local/smokeping/htdocs/cropper/"Alias /smokeping "/usr/local/smokeping/htdocs/smokeping.fcgi"
AllowOverride NoneOptions AllAddHandler cgi-script .fcgi .cgiAllowOverride AuthConfigOrder allow,denyAllow from allAuthName "Smokeping"AuthType BasicAuthUserFile /usr/local/smokeping/htdocs/htpasswdRequire valid-userDirectoryIndex smokeping.fcgi

 

 

2.10 添加监控对象

vim /usr/local/smokeping/etc/config*** Targets ***++ Localhostmenu = Localhosttitle = Localhostalerts = someloss#slaves = boomer slave2host = 10.0.56.12

 

2.11 添加监控节点

注意:每次修改配置文件后需要重启smokeping进程

/usr/local/smokeping/bin/smokeping --restart或/usr/local/smokeping/bin/smokeping --reload或pkill smokeping/usr/local/smokeping/bin/smokeping

 

监控节点样例如下,注意+是第一层,++是第二层,+++ 是第三层:

vim /usr/local/smokeping/etc/config+ Othermenu = 三大网络监控title = 监控统计++ dianxinmenu = 电信网络监控title = 电信网络监控列表host = /Other/dianxin/dianxin-bj/Other/dianxin/dianxin-hlj /Other/dianxin/dianxin-tj  /Other/dianxin/dianxin-sc  /Other/dianxin/dianxin-sh/Other/dianxin/dianxin-gz+++ dianxin-bjmenu = 北京电信title = 北京电信alerts = somelosshost = 202.96.199.133 +++ dianxin-hljmenu = 黑龙江电信title = 黑龙江电信alerts = somelosshost = 219.147.198.242 +++ dianxin-tjmenu = 天津电信title = 天津电信alerts = somelosshost = 219.150.32.132 +++ dianxin-scmenu = 四川电信title = 四川电信alerts = somelosshost = 61.139.2.69 +++ dianxin-shmenu = 上海电信title = 上海电信alerts = somelosshost = 116.228.111.118 +++ dianxin-gzmenu = 广东电信title = 广东电信alerts = somelosshost = 113.111.211.22 ++ liantongmenu = 联通网络监控title = 联通网络监控列表host = /Other/liantong/liantong-bj/Other/liantong/liantong-hlj /Other/liantong/liantong-tj  /Other/liantong/liantong-sc/Other/liantong/liantong-sh /Other/liantong/liantong-gz +++ liantong-bjmenu = 北京联通title = 北京联通alerts = somelosshost = 61.135.169.121 +++ liantong-hljmenu = 黑龙江联通title = 黑龙江联通alerts = somelosshost = 202.97.224.69 +++ liantong-tjmenu = 天津联通title = 天津联通alerts = somelosshost = 202.99.96.68 +++ liantong-scmenu = 四川联通title = 四川联通alerts = somelosshost = 119.6.6.6 +++ liantong-shmenu = 上海联通title = 上海联通alerts = somelosshost = 210.22.84.3 +++ liantong-gzmenu = 广东联通title = 广东联通alerts = somelosshost = 221.5.88.88 ++ yidongmenu = 移动网络监控title = 移动网络监控列表host = /Other/yidong/yidong-bj/Other/yidong/yidong-hlj /Other/yidong/yidong-tj  /Other/yidong/yidong-sc  /Other/yidong/yidong-sh/Other/yidong/yidong-gz +++ yidong-bjmenu = 北京移动title = 北京移动alerts = somelosshost = 221.130.33.52 +++ yidong-hljmenu = 黑龙江移动title = 黑龙江移动alerts = somelosshost = 211.137.241.35 +++ yidong-tjmenu = 天津移动title = 天津移动alerts = somelosshost = 211.137.160.5 +++ yidong-scmenu = 四川移动title = 四川移动alerts = somelosshost = 218.201.4.3 +++ yidong-shmenu = 上海移动title = 上海移动alerts = somelosshost = 117.131.19.23 +++ yidong-gzmenu = 广东移动title = 广东移动alerts = somelosshost = 211.136.192.6

 

smokeping会根据配置文件中配置监控节点的内容,在/usr/local/smokeping/data目录下生成对应的moniter文件夹,其下包含website子文件夹。

[root@linux-node2 smokeping]# tree/usr/local/smokeping/data//usr/local/smokeping/data/├── Other│   ├── dianxin│   │   ├── dianxin-bj.rrd│   │   ├── dianxin-gd.rrd│   │   ├── dianxin-gs.rrd│   │   ├── dianxin-gz.rrd│   │   ├── dianxin-hlj.rrd│   │   ├── dianxin-sc.rrd│   │   ├── dianxin-sh.rrd│   │   └── dianxin-tj.rrd│   ├── liantong│   │   ├── liantong-bj.rrd│   │   ├── liantong-gz.rrd│   │   ├── liantong-hlj.rrd│   │   ├── liantong-sc.rrd│   │   ├── liantong-sh.rrd│   │   └── liantong-tj.rrd│   └── yidong│      ├── yidong-bj.rrd│      ├── yidong-gz.rrd│      ├── yidong-hlj.rrd│      ├── yidong-sc.rrd│      ├── yidong-sh.rrd│      └── yidong-tj.rrd├── __sortercache│   └── data.FPing.storable└── Test    ├──James~boomer.rrd    ├──James.rrd    ├──James~slave2.rrd    └──Localhost.rrd

 

 

 

2.12 启动服务并测试

systemctl start httpd/usr/local/smokeping/bin/smokeping

 

 

在浏览器中访问

http://10.0.56.12/smokeping

用户名和密码为htpasswd命令中设定用户名和密码

 

出现以下界面表示成功。

 

 

 

 

可以看到添加的节点的相关信息。

 

 

 

 

可以看到添加的监控点的ping状态

 

 

 

附录:

更改CPAN源的方法

[root@linux-node2 smokeping-2.6.11]# cpanSorry, we have to rerun the configuration dialogfor CPAN.pm due tosome missing parameters. Configuration will bewritten to <>  CPAN.pm requires configuration, but most of it canbe done automatically.If you answer 'no' below, you will enter aninteractive dialog for eachconfiguration option instead. Would you like to configure as much as possibleautomatically? [yes] yes  
 Warning: You do not have write permission for Perllibrary directories. To install modules, you need to configure a localPerl library directory orescalate your privileges.  CPAN can help you by bootstrapping thelocal::libmodule or by configuring itself to use 'sudo' (ifavailable).  You may alsoresolve this problem manually if you need tocustomize your setup. What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual') [local::lib] Autoconfigured everything but 'urllist'. Now you need to choose your CPAN mirror sites.  You can let mepick mirrors for you, you can select them from alist or youcan enter them by hand. Would you like me to automatically choose someCPAN mirrorsites for you? (This means connecting to theInternet) [yes] no Would you like to pick from the CPAN mirror list?[yes] yesFound a cached mirror list as of Mon Jun 1307:01:48 2016 If you'd like to just use the cached copy, answer'yes', below.If you'd like an updated copy of the mirror list,answer 'no' andI'll get a fresh one from the Internet. Shall I use the cached mirror list? [yes] yesFirst, pick a nearby continent and country bytyping in the number(s)in front of the item(s) you want to select. Youcan pick several ofeach, separated by spaces. Then, you will bepresented with a list ofURLs of CPAN mirrors in the countries youselected, along withpreviously selected URLs. Select some of thoseURLs, or just keep theold list. Finally, you will be prompted for anyextra URLs -- file:,ftp:, or http: -- that host a CPAN mirror. You should select more than one (just in case thefirst isn't available). (1) Africa(2) Asia(3) Europe(4) North America(5) Oceania(6) South AmericaSelect your continent (or several nearbycontinents) [] 2(1) Bangladesh(2) China(3) India(4) Indonesia(5) Iran(6) Israel(7) Japan(8) Kazakhstan(9) Philippines(10) Qatar(11) Republic of Korea(12) Singapore(13) Taiwan(14) Turkey(15) Viet NamSelect your country (or several nearby countries)[] 2(1) ftp://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/(2) ftp://mirrors.ustc.edu.cn/CPAN/(3) ftp://mirrors.xmu.edu.cn/CPAN/(4) http://cpan.communilink.net/(5) http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/(6) http://mirror.lzu.edu.cn/CPAN/(7) http://mirrors.163.com/cpan/(8) http://mirrors.hust.edu.cn/CPAN/(9) http://mirrors.neusoft.edu.cn/cpan/(10) http://mirrors.sohu.com/CPAN/(11) http://mirrors.ustc.edu.cn/CPAN/(12) http://mirrors.xmu.edu.cn/CPAN/(13) http://mirrors.zju.edu.cn/CPAN/Select as many URLs as you like (by number),put them on one line, separated by blanks,hyphenated ranges allowed e.g. '1 45' or '7 1-4 8' [] 7 Now you can enter your own CPAN URLs by hand. Alocal CPAN mirror can belisted using a 'file:' URL like'file:///path/to/cpan/' Enter another URL or ENTER to quit: []New urllist http://mirrors.163.com/cpan/ Autoconfiguration complete. Attempting to bootstrap local::lib... Writing /root/.cpan/CPAN/MyConfig.pm forbootstrap...commit: wrote '/root/.cpan/CPAN/MyConfig.pm'Fetching with LWP:http://mirrors.163.com/cpan/authors/01mailrc.txt.gzReading'/root/.cpan/sources/authors/01mailrc.txt.gz'............................................................................DONEFetching with LWP:http://mirrors.163.com/cpan/modules/02packages.details.txt.gzReading'/root/.cpan/sources/modules/02packages.details.txt.gz'  Databasewas generated on Thu, 09 Jun 2016 22:53:42 GMT.............  NewCPAN.pm version (v2.10) available.  [Currentlyrunning version is v1.9800]  You mightwant to try    install CPAN    reloadcpan  to bothupgrade CPAN.pm and run the new version without leaving  thecurrent session.  ...............................................................DONEFetching with LWP:http://mirrors.163.com/cpan/modules/03modlist.data.gzReading'/root/.cpan/sources/modules/03modlist.data.gz'DONEWriting /root/.cpan/MetadataRunning make forH/HA/HAARG/local-lib-2.000019.tar.gzFetching with LWP:http://mirrors.163.com/cpan/authors/id/H/HA/HAARG/local-lib-2.000019.tar.gzFetching with LWP:http://mirrors.163.com/cpan/authors/id/H/HA/HAARG/CHECKSUMSChecksum for/root/.cpan/sources/authors/id/H/HA/HAARG/local-lib-2.000019.tar.gz ok   CPAN.pm:Building H/HA/HAARG/local-lib-2.000019.tar.gz  Checking if your kit is complete...Looks goodWarning: prerequisite Test::More 0 not found.Generating a Unix-style MakefileWriting Makefile for local::libWriting MYMETA.yml and MYMETA.json---- Unsatisfied dependencies detected during --------     HAARG/local-lib-2.000019.tar.gz    ----    Test::More [build_requires]Running make test  Delayeduntil after prerequisitesRunning make install  Delayeduntil after prerequisitesTried to deactivate inactive local::lib'/root/perl5' local::lib is installed. You must now add thefollowing environment variablesto your shell configuration files (or registry, ifyou are on Windows) andthen restart your command line shell and CPANbefore installing modules: Use of uninitialized value $deactivating innumeric eq (==) at /usr/share/perl5/vendor_perl/local/lib.pm line 381.Use of uninitialized value $deactivating innumeric eq (==) at /usr/share/perl5/vendor_perl/local/lib.pm line 383.Use of uninitialized value$options{"interpolate"} in numeric eq (==) at /usr/share/perl5/vendor_perl/local/lib.pmline 424.Use of uninitialized value$options{"interpolate"} in numeric eq (==) at/usr/share/perl5/vendor_perl/local/lib.pm line 424.Use of uninitialized value$options{"interpolate"} in numeric eq (==) at /usr/share/perl5/vendor_perl/local/lib.pmline 424.exportPERL_LOCAL_LIB_ROOT="$PERL_LOCAL_LIB_ROOT:/root/perl5";export PERL_MB_OPT="--install_base/root/perl5";exportPERL_MM_OPT="INSTALL_BASE=/root/perl5";exportPERL5LIB="/root/perl5/lib/perl5:$PERL5LIB";export PATH="/root/perl5/bin:$PATH"; Would you like me to append that to /root/.bashrcnow? [yes]  commit: wrote '/root/.cpan/CPAN/MyConfig.pm' You can re-run configuration any time with 'o confinit' in the CPAN shellTerminal does not support AddHistory. cpan shell -- CPAN exploration and modulesinstallation (v1.9800)Enter 'h' for help. cpan[1]> exitTerminal does not support GetHistory.Lockfile removed. *** Remember to restart your shell before runningcpan again ***

 

# perl -MCPAN -e shellcpan> o conf urllist unshift http://mirrors.aliyun.com/CPAN/ cpan> o conf commit