smokeping是一款用来监控网络性能状况的监控软件,在数据中心网络性能监测方面有很大的使用价值。官网关于smokeping的介绍如下:
SmokePing keeps track of your network latency:Best of breed latency visualisation.Interactive graph explorer.Wide range of latency measurement plugins.Master/Slave System for distributed measurement.Highly configurable alerting system.Live Latency Charts with the most ‘interesting’ graphs.Free and OpenSource Software written in Perl written by Tobi Oetiker, the creator of MRTG and RRDtool
下面介绍smokeping的基本搭建:
0x01 安装其他源
0x02 安装rrdtool与相关依赖库
yum -y 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-CGI-SpeedCGI perl-Time-HiRes perl-ExtUtils-MakeMaker perl-RRD-Simple rrdtool rrdtool-perl curl fping echoping httpd httpd-devel gcc make wget libxml2-devel libpng-devel glib pango pango-devel freetype freetype-devel fontconfig cairo cairo-devel libart _lgpl libart_ lgpl-devel mod_fastcgi
0x03 下载与安装smokeping
tar zxvf smokeping-2.6.10.tar.gzcd smokeping-2.6.10./configure –prefix=/usr/local/smokeping./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty (安装Perl module)./configure –prefix=/usr/local/smokeping/usr/bin/gmake install
0x04 smokeping相关配置
1) 创建cache、data、var目录、log
cd /usr/local/smokepingmkdir cache data vartouch /var/log/smokeping.log
2) 授权
chown apache:apache cache data varchown apache:apache /var/log/smokeping.log
3) 配置文件修改
cd /usr/local/smokeping/htdocs/mv smokeping.fcgi.dist smokeping.fcgicd /usr/local/smokeping/etcmv config.dist configvim config
修改ip或域名:
`cgiurl = http://some.url/smokeping.cgi`
修改检测时间:
*** Database ***step = 300300改为60
修改中文显示:
*** Presentation ***charset = utf-8
4)修改密码文件权限
chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist
5)修改apache配置,增加权限控制
vim /etc/httpd/conf/httpd.conf
添加如下
Alias /cache “/usr/local/smokeping/cache/”Alias /cropper “/usr/local/smokeping/htdocs/cropper/”Alias /smokeping “/usr/local/smokeping/htdocs/smokeping.fcgi”<Directory “/usr/local/smokeping”>AllowOverride NoneOptions AllAddHandler cgi-script .fcgi .cgiAllowOverride AuthConfigOrder allow,denyAllow from allAuthName “Smokeping”AuthType BasicAuthUserFile /usr/local/smokeping/htdocs/htpasswdRequire valid-userDirectoryIndex smokeping.fcgi</Directory>
然后进入cd /usr/local/smokeping/htdocs目录
设置登录账户与密码
htpasswd -c /usr/local/smokeping/htdocs/htpasswd admin
设置登录账户为admin,密码在后面输入,然后重启httpd就可以实现密码验证登录
6)设置开机启动
echo “/usr/local/smokeping/bin/smokeping –logfile=/var/log/smokeping.log 2>&1 &” >> /etc/rc.local
7) 同步系统时间
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
8) 启动服务
/etc/init.d/httpd start /usr/local/smokeping/bin/smokeping –logfile=/var/log/smokeping.log 2>&1 & 或 /usr/local/smokeping/bin/smokeping &
9) 修改监控内容
+是第一层,++是第二层,后者继承前者,举例如下
+ jiancemenu= xx机房++ xx-1menu = iptitle = somenamealerts = somelossslaves = boomer slave2host = ip
0x05 smokeping的主从分布式部署方案
替代单一监测点的不足,master/slave的主从模式,一个master可以管理多个slave,多个slave可针对不同的监测点进行网络性能监测。而且slave配置较为简单,slave从master上获取自己的配置信息,检测数据以及web呈现都汇总在master上,slave只负责从master获取的配置信息进行数据检测。smokeping的数据采集是被动式采集,主从之间的通信验证采用类似rsync的密码验证方式,启动服务的用户不必具备root权限,安全性较好。且smokeping占用内存很小,对系统要求不高。
配置要点:
在master的config里修改
*** Slaves ***secrets=/usr/local/smokeping/etc/smokeping_secrets.dist #密码文件+slave1 #”slave1″需要设置为slave主机的hostname,并且写在”slavesecrets.con”文件里面display_name=slave1
另外,master上面启动”smokeping”进程和apache进程的用户必须要一致。因为rrd文件是由”smokeping”进程创建的,而数据的update却是由”smokeping.cgi”进行的,也就是apache用户。如果不一致的话会出现rrd文件无法被更新的情况。
smokeping官网链接:http://oss.oetiker.ch/smokeping/