1 通过 yum 安装依赖的库以及环境
yum install rrdtool wqy* fping curl bind-utils httpd httpd-devel \ perl perl-FCGI perl-CGI perl-CGI-SpeedyCGI perl-libwww-perl perl-Socket6 perl-Net-Telnet perl-Net-OpenSSH perl-Net-DNS perl-LDAP perl-IO-Socket-SSL perl-ExtUtils-MakeMaker rrdtool-perl perl-Sys-Syslog
2 编译安装 smokeping
cd /usr/local/src/ wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.11.tar.gz tar xvf smokeping-2.6.11.tar.gz cd smokeping-2.6.11 ./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty ./configure --prefix=/usr/local/smokeping gmake install
3 配置 smokeping 相关文件目录
cd /usr/local/smokeping/ mkdir cache data var touch /var/log/smokeping.log chown apache.apache cache/ data/ var/ /var/log/smokeping.log cd /usr/local/smokeping/htdocs/ cp smokeping.fcgi.dist smokeping.fcgi cp /usr/local/smokeping/etc/config.dist /usr/local/smokeping/etc/config vim /usr/local/smokeping/etc/config # 修改 /usr/local/smokeping/etc/config 文件 # 修改 cgiurl sed -i 's#some.url#192.168.56.11#' /usr/local/smokeping/etc/config # 默认检测时间 300 秒修改 60 秒 sed -i 's#300#60#g' /usr/local/smokeping/etc/config # 默认 60 秒 ping 20 次,修改为 60 秒 ping 60 次 sed -i 's#pings = 20#pings = 60#' /usr/local/smokeping/etc/config # 在 presentation 后添加 utf-8 中文字符集 vim /usr/local/smokeping/etc/config *** Presentation *** charset = utf-8 # 修改密码文件权限 chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist
4 配置 apache
4.1 设置登录密码认证
htpasswd -c /usr/local/smokeping/htdocs/htpasswd jamin
4.2 修改 apache 配置文件,配置 smokeping 站点目录
vim /etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html" 下添加如下内容 Alias /cache "/usr/local/smokeping/cache/" Alias /cropper "/usr/local/smokeping/htdocs/cropper/" Alias /smokeping "/usr/local/smokeping/htdocs/smokeping.fcgi""/usr/local/smokeping"> AllowOverride None Options All AddHandler cgi-script .fcgi .cgi Order allow,deny Allow from all AuthName "Smokeping" AuthType Basic AuthUserFile /usr/local/smokeping/htdocs/htpasswd Require valid-user DirectoryIndex smokeping.fcgi
5 启动服务以及访问 smokeping
systemctl start httpd
/usr/local/smokeping/bin/smokeping
访问 URL: http://服务器ip/smokeping
6 smokeping 使用
6.1 添加需要监控的节点
注意事项:
1 在 /usr/local/smokeping/etc/config 中添加
2 smokeping 就这点不好,添加节点不能在前台 Web 页面添加,一定要在后台的配置文件中添加
3 修改 /usr/local/smokeping/etc/config 后,必须重启 smokeping 程序,配置才会生效
4 smokeping 会根据配置文件 config 在 /usr/local/smokeping/data 之下添加文件夹及子文件夹
5 用 VMware Workstation 的虚拟机测试有一点好处,虚拟网卡可以设置出入的丢包率,适合 smokeping 做丢包测试,经过测试 smokeping 检测出的丢包率与 VMware Workstation 虚拟网卡设置的丢包率基本相同,也就是说 smokeping 能够反应网络的真实状况
添加监控节点示例:注意 + 是第一层,++ 是第二层,+++ 是第三层
以下附上一份三大运营商网络监控样例配置(在 /usr/local/smokeping/etc/config 最后添加):
+ Other menu = 三大网络监控 title = 监控统计 ++ CT menu = 电信网络监控 title = 电信网络监控列表 host = /Other/CT/CT-BJ /Other/CT/CT-TJ /Other/CT/CT-HLJ /Other/CT/CT-SH /Other/CT/CT-SC /Other/CT/CT-GZ +++ CT-BJ menu = 北京电信 title = 北京电信 alerts = someloss host = 202.96.199.133 +++ CT-TJ menu = 天津电信 title = 天津电信 alerts = someloss host = 219.150.32.132 +++ CT-HLJ menu = 黑龙江电信 title = 黑龙江电信 alerts = someloss host = 219.147.198.242 +++ CT-SH menu = 上海电信 title = 上海电信 alerts = someloss host = 116.228.111.118 +++ CT-SC menu = 四川电信 title = 四川电信 alerts = someloss host = 61.139.2.69 +++ CT-GZ menu = 广东电信 title = 广东电信 alerts = someloss host = 113.111.211.22 ++ CU menu = 联通网络监控 title = 联通网络监控列表 host = /Other/CU/CU-BJ /Other/CU/CU-TJ /Other/CU/CU-HLJ /Other/CU/CU-SH /Other/CU/CU-SC /Other/CU/CU-GZ +++ CU-BJ menu = 北京联通 title = 北京联通 alerts = someloss host = 61.135.169.121 +++ CU-TJ menu = 天津联通 title = 天津联通 alerts = someloss host = 202.99.96.68 +++ CU-HLJ menu = 黑龙江联通 title = 黑龙江联通 alerts = someloss host = 202.97.224.69 +++ CU-SH menu = 上海联通 title = 上海联通 alerts = someloss host = 210.22.84.3 +++ CU-SC menu = 四川联通 title = 四川联通 alerts = someloss host = 119.6.6.6 +++ CU-GZ menu = 广东联通 title = 广东联通 alerts = someloss host = 221.5.88.88 ++ CMCC menu = 移动网络监控 title = 移动网络监控列表 host = /Other/CMCC/CMCC-BJ /Other/CMCC/CMCC-TJ /Other/CMCC/CMCC-HLJ /Other/CMCC/CMCC-SH /Other/CMCC/CMCC-SC /Other/CMCC/CMCC-GZ +++ CMCC-BJ menu = 北京移动 title = 北京移动 alerts = someloss host = 221.130.33.52 +++ CMCC-TJ menu = 天津移动 title = 天津移动 alerts = someloss host = 211.137.160.5 +++ CMCC-HLJ menu = 黑龙江移动 title = 黑龙江移动 alerts = someloss host = 211.137.241.35 +++ CMCC-SH menu = 上海移动 title = 上海移动 alerts = someloss host = 117.131.19.23 +++ CMCC-SC menu = 四川移动 title = 四川移动 alerts = someloss host = 218.201.4.3 +++ CMCC-GZ menu = 广东移动 title = 广东移动 alerts = someloss host = 211.136.192.6
参考文章:http://jaminzhang.github.io/monitoring/smokeping-deploy-practice/#top4
报错
1 .fping yum安装没有正常安装上去,需手动下载fping安装包,源码安装,在配置文件中修改fping命令的路径
2. 安装./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty 时安装不上,可从另外能成功安装的一台上tar 打包文件夹thirdparty, 再传到这台解压缩到相应目录。
遇到部分IP不能直接进行ping操作,可用tcping命令结合smokeping , 必须在Centos 6 上部署。
先安装 tcping 命令
To install tcptraceroute on CentOS/REHL, first set up RepoForge on your system, and then:
$ sudo yum install tcptraceroute
Finally, download tcpping from the web.
$ cd /usr/bin $ sudo wget http://www.vdberg.org/~richard/tcpping $ sudo chmod 755 tcpping
To measure network latency by using tcpping, simply run it as follows.
$ tcpping www.cnn.com seq 0: tcp response from 157.166.240.13 [open] 82.544 ms seq 1: tcp response from 157.166.241.10 [open] 80.771 ms seq 2: tcp response from 157.166.241.11 [open] 80.838 ms seq 3: tcp response from 157.166.241.10 [open] 80.145 ms seq 4: tcp response from 157.166.240.11 [open] 86.253 ms
tcping 结合smokeping 配置文件示例:
*** General *** owner = Peter Random contact = [email protected] 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 = /usr/local/smokeping/cache imgurl = cache datadir = /usr/local/smokeping/data piddir = /usr/local/smokeping/var cgiurl = http://192.168.56.11/smokeping.cgi smokemail = /usr/local/smokeping/etc/smokemail.dist tmail = /usr/local/smokeping/etc/tmail.dist # specify this to get syslog logging syslogfacility = local0 # each probe is now run in its own process # disable this to revert to the old behaviour # concurrentprobes = no *** Alerts *** to = [email protected] from = [email protected] +someloss type = loss # in percent pattern = >0%,*12*,>0%,*12*,>0% comment = loss 3 times in a row *** Database *** step = 60 pings = 60 # consfn mrhb steps total AVERAGE 0.5 1 1008 AVERAGE 0.5 12 4320 MIN 0.5 12 4320 MAX 0.5 12 4320 AVERAGE 0.5 144 720 MAX 0.5 144 720 MIN 0.5 144 720 *** Presentation *** charset = utf-8 template = /usr/local/smokeping/etc/basepage.html.dist + charts menu = Charts title = The most interesting destinations ++ stddev sorter = StdDev(entries=>4) title = Top Standard Deviation menu = Std Deviation format = Standard Deviation %f ++ max sorter = Max(entries=>5) title = Top Max Roundtrip Time menu = by Max format = Max Roundtrip Time %f seconds ++ loss sorter = Loss(entries=>5) title = Top Packet Loss menu = Loss format = Packets Lost %f ++ median sorter = Median(entries=>5) title = Top Median Roundtrip Time menu = by Median format = Median RTT %f seconds + overview width = 600 height = 50 range = 10h + detail width = 600 height = 200 unison_tolerance = 2 "Last 3 Hours" 3h "Last 30 Hours" 30h "Last 10 Days" 10d "Last 400 Days" 400d #+ hierarchies #++ owner #title = Host Owner #++ location #title = Location *** Probes *** + TCPPing binary = /usr/bin/tcpping forks = 5 offset = 50% step = 300 #tcptraceroute = -e "sudo /usr/bin/tcptraceroute" timeout = 15 *** Slaves *** secrets=/usr/local/smokeping/etc/smokeping_secrets.dist +boomer display_name=boomer color=0000ff +slave2 display_name=another color=00ff00 *** Targets *** probe = TCPPing menu = Top title = Network Latency Grapher remark = Welcome to the SmokePing website of xxx Company. \ Here you will learn all about the latency of our network. + mytarget menu = TestTCP title = TestTCP host = 82.223.245.88 pings = 5 port = 80
参考文章:https://oss.oetiker.ch/smokeping/probe/TCPPing.en.html
http://blog.xuite.net/pt.hsu/life/59708395-Smokeping%E4%B9%8BTCPPing%E6%A8%A1%E7%B5%84%E7%AF%87.