3.下载与安装smokeping
wget?
http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.8.tar.gzwget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.11.tar.gz ? ?
tar zxvf smokeping-2.6.8.tar.gz
cd smokeping-2.6.8
./configure --prefix=/usr/local/smokeping
出现问题是因为需要安装perl的模块,所以运行下面内容即可
?
如果只出现?Config::Grammar‘?...?Failed
解决?‘Config::Grammar‘?...?Failed
wget?http://search.cpan.org/CPAN/authors/id/D/DS/DSCHWEI/Config-Grammar-1.10.tar.gz
tar zxvf?Config-Grammar-1.10.tar.gz
cd?Config-Grammar-1.10
perl Makefile.PL
make &&?make install
如果出现很多个failed,就用下面的方法
./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty ?这个是为前面failed做安装 ?
./co nfigure --prefix=/usr/local/smokeping ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
如果还出现问题可以看下这里面的参考。http://bbs.51cto.com/thread-1106181-1.html
/usr/bin/gmake install
?
?
安装下yum install cpan ?????perl?-MCPAN?-e?‘install?CGI‘ ? ? ? ? ? perl?-MCPAN?-e?‘install?CGI::Fast?‘??这个安装好了然后再执行这一步。
?
tar zxvf CGI.pm-3.65.tar.gz
cd CGI.pm-3.65
perl Makefile.PL
make && make install
?
然后再执行下?./co nfigure --prefix=/usr/local/smokeping ?
?
?
现在smokeping安装完成
?
4. 配置smokeping
第一种 使用nginx
?
yum install -y nginx
?
2.安装基础IO?
cd /root
tar xvzf IO-All-0.46.tar.gz
cd IO-All-0.46
perl Makefile.PL ? ? ? # ?这里出现这个问题 把那个文件删了就行了。
?
make &&?make install
?
3.配置nginx的sock
创建fcgi sock 文件,配置nginx fcgi使用
?
chmod a+x /etc/nginx-fcgi
/etc/nginx-fcgi -l /var/log/nginx-fcgi.log -pid /var/run/nginx-fcgi.pid -S /var/run/nginx-fcgi.sock
chmod 777 /var/run/nginx-fcgi.sock
?
4.增加smokeping使用的data、var、和cache目录
cd?/usr/local/smokeping
mkdir data var cache
mv htdocs/smokeping.fcgi.dist htdocs/smokeping.fcgi
cd?/usr/local/smokeping/etc
mv config.dist config
chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist
?
5.上传监控节点conf文件到smokeping的etc目录
?
6.修改smokpeing配置脚本
vi config
在如下位置修改
*** Database ***
step???? = 300
pings??? = 20
修改为
*** Database ***
step ? ? =?60
pings??? = 20
在如下位置添加一句话
*** Presentation ***
template = /usr/local/smokeping/etc/basepage.html.dist
charset=utf-8
在第一个加号位置下将监控节点文件引入,如下例子
?
+ testnetwork
menu=测试网络状况
title= 测试网络状况
@include CT-IP.conf
@include CN-IP.conf
@include CT_IDC.conf
@include CNC-IDC.conf
保存退出
?
7.增加data、var、cache目录的软连接
ln -s /usr/local/smokeping/data/ /usr/share/nginx/html/data
ln -s??/usr/local/smokeping/cache/ /usr/share/nginx/html/cache
ln -s?/usr/local/smokeping/htdocs/cropper/ /usr/share/nginx/html/cropper
8.修改nginx 配置文件
查看下nginx的版本,使用nginx -v 查看,如下例子:
?nginx -v
nginx version: nginx/1.0.15
?
修改nginx配置
vi /etc/nginx/conf.d/default.conf
--增加fcgi 指向
? ? location ?~ .*\.fcgi$ {
? ? ? ? root /usr/local/smokeping/htdocs/;
? ? ? ? gzip off;
? ? ? ? fastcgi_pass ?unix:/var/run/nginx-fcgi.sock;
? ? ? ? fastcgi_index smokeping.fcgi;
? ? ? ? include fastcgi.conf;?????????????? ? #1.0.x 与0.8.x 用这个
? ? ? ? #include?fastcgi_params; ? ? ? ? ? ?#1.4.x版本用 fastcgi_params
????? ? #fastcgi_param ? SCRIPT_FILENAME?/opt/smokeping/htdocs$fastcgi_script_name; #1.4.x版本必加
? ? }
保存退出
第二种 使用apache
(1) 创建cache、data、var目录
cd /usr/local/smokeping
mkdir htdocs/cache data var
(2) 在创建日志
touch /var/log/smokeping.log
(3) 上传监控节点的conf文件到smokeping的etc目录下
修改smokeping目录的用户和组权限
chown apache:apache -R?/usr/local/smokeping
chown apache:apache /var/log/smokeping.log
(4) 修改配置文件
cd /usr/local/smokeping/htdocs/
mv smokeping.fcgi.dist smokeping.fcgi
cd /usr/local/smokeping/etc
mv config.dist config
vi config
修改改行设置
imgcache = /usr/local/smokeping/cache
imgcache = /usr/local/smokeping/htdocs/cache
?*** Database ***
step? = 300
pings? = 60
然后修改step,从300改为60,这是检测的时间, pings 从20 改为60, 即60秒ping 60次
在如下位置添加一句话
*** Presentation ***
template = /usr/local/smokeping/etc/basepage.html.dist
charset=utf-8
在第一个加号位置下将监控节点文件引入,如下例子
+ testnetwork
menu=测试网络状况
title= 测试网络状况
@include CT-IP.conf
@include CN-IP.conf
@include CT_IDC.conf
@include CNC-IDC.conf
保存退出?
?(5) 配置完成之后修改密码文件权限
chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist
5. 修改apache的配置
vim /etc/httpd/conf/httpd.conf
在DocumentRoot "/var/www/html" 这一行之下添加如下内容:
?
Alias /cache "/usr/local/smokeping/htdocs/cache"
Alias /cropper "/usr/local/smokeping/htdocs/cropper"
Alias /smokeping "/usr/local/smokeping/htdocs"
<Directory "/usr/local/smokeping/htdocs">
? AllowOverride None
? AddHandler cgi-script .fcgi .cgi
? Options ExecCGI
? <IfModule dir_module>
???? DirectoryIndex smokeping.fcgi
? </IfModule>
? Order allow,deny
? Allow from all?
</Directory>
?
6. 设置开机启动httpd, smokeping,并关闭iptables.
echo "/usr/local/smokeping/bin/smokeping --logfile=/var/log/smokeping.log 2>&1 &" >> /etc/rc.local
chkconfig httpd on????? #开机启动httpd进程
chkconfig iptables off? #开机不启动iptables服务
chkconfig nginx on
7. 启动http或者nginx以及smokeping
service httpd start?service nginx start
/usr/local/smokeping/bin/smokeping --debug-daemon
chown apache:apache -R?/usr/local/smokeping ?
8. 打开检测主机的Web页面
使用httpd做web,在Web浏览器里输入?
http://您的监控主机IP/smokeping? ?? ?这里启动不了,看下什么原因。是不是CT-IDC.conf 没有上传到etc下面
打开这里出现500 ?说明配置正确防火墙看下。serenfroce 0 ?有没有关闭。
?
如果遇到500错误:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
--------------------------------------------------------------------------------
Apache/2.2.15 (CentOS) Server at 192.168.2.101 Port 80
说明没有关闭SElinux 选项,关闭就正常了
vi /etc/sysconfig/selinux
SELINUX=permissive
[root@localhost ~]# getenforce???? #查看SElinux 的命令
Permissive????????????????????? #返回的结果是Permissive, 表示已经关闭SElinux了
9. 在Web页面增加验证用户名和密码(可选步骤)
(1)修改httpd.conf里的内容
<Directory "/usr/local/smokeping">
AllowOverride None
Options All
AddHandler cgi-script .fcgi .cgi
AllowOverride AuthConfig
Order allow,deny
Allow from all
AuthName "Smokeping"
AuthType Basic
AuthUserFile /usr/local/smokeping/htdocs/htpasswd
Require valid-user
DirectoryIndex smokeping.fcgi
</Directory>
注:上面的内容部分已经添加,这里仅添加红色字体内容即可。
(2) 设置登录账户与密码
进入cd /usr/local/smokeping/htdocs目录, 执行命令:htpasswd -c /usr/local/smokeping/htdocs/htpasswd admin
这个是设置登录账户为admin,密码在后面输入,然后重启httpd就可以实现密码验证登录
重新登录web页面,会要求输入用户名和密码,如下图
11. 一定要同步好时间
?? 在ESXI4的虚拟机中,定期执行ntpdate 210.72.145.44??? #或者与本地的时间服务器同步
?? 在vmware workstation中,安装vmware-tools, 虚拟机的时间会自动与其宿主机时间同步
?? 注: 如果vmware workstation中的虚拟机不安装vmware-tools,则虚拟机时间会与宿主机时间相隔整整8个小时(虚拟机时间早于宿主机时间)??
??????? vmware-tools的安装不在此叙述
12. 特别说明: 修改/usr/local/smokeping/etc/config 文件的配置参数,必须重启动smokeping程序
??? (1)如果重启动smokeping程序失败,根据报错提示删除/usr/local/smokeping/data子文件夹的rrd文件
??? (2)中文问题:如果需要在网页里展示中文,修改/usr/local/smokeping/etc的config文件
??? *** Presentation ***
??? charset = utf-8 //注:在这里添加
??? 然后在menu与titile里修改中文,重启即可
??? 有一个要注意的地方就是,你输入的中文必须在utf-8的字符编码下输入的中文字符,不然会出现乱码。
???? 如果在xshel下,选择file-properities-terminal
??? 如果还是不显示就看看你系统里是否安装了中文字体,或者在安装一个
???? [root@smokeping data]# ps -ef |grep smoke?? #查找smokeping进程
???? root????? 8740???? 1? 0 09:08 ???????? 00:00:00 /usr/local/smokeping/bin/smokeping [FPing]
???? root???? 35552 35529? 0 09:33 pts/2??? 00:00:00 grep smoke
???? [root@smokeping data]# kill 8740???? #杀掉smokeping进程
???? [root@smokeping data]# ps -ef |grep smoke
???? root???? 35554 35529? 4 09:33 pts/2??? 00:00:00 grep smoke
???? smokeping进程已经被杀掉
???? [root@smokeping data]#screen??????????????????? #如果通过SSH远程登录到监控主机,最后执行screen,在虚拟窗口中启动smokeping
???? /usr/local/smokeping/bin/smokeping --logfile=/var/log/smokeping.log 2>&1 &
三. 添加需要监控的网站和节点(在/usr/local/smokeping/etc/config中添加)
????? * smokeping就这点不好,添加节点不能在前台Web页面添加,一定要在后台的配置文件中添加,希望以后的版本中能改进一下? *
????? * 修改/usr/local/smokeping/etc/config 后,必须重启smokeping 程序,配置才会生效? *??
????? * smokeping 会根据配置文件config 在/usr/local/smokeping/data 之下添加moniter文件夹,其下包含website子文件夹 *
????? * 用vmware workstation的虚拟机测试有一点好处,workstation下的虚拟网卡可以设置出入的丢包率,适合smokeping做丢包测试, 经过测试smokeping检测出的丢包率与vmware worksation虚拟网卡设置的丢包率基本相同,也就是说smokeping 能够反应网络的真实状况 *
???? 添加监控节点示例:注意+是第一层,++是第二层,+++ 是第三层
+ moniter???????????????????????
menu = moniter
++ website
menu = website
title = moniter website
#host = /moniter/website/baidu /moniter/website/sina /moniter/website/taobao /moniter/website/QQ
+++ baidu
menu = baidu
title = baidu.com
alerts = someloss
host = www.baidu.com
+++ sina
menu = sina
title = sina.com.cn
alerts = someloss
host = www.sina.com.cn
+++ taobao
menu = taobao
title = taobao.com
alerts = someloss
host = www.taobao.com
+++ QQ
menu = QQ
title = QQ
alerts = someloss
host = www.qq.com.cn
+++ sohu
menu = sohu
title = sohu
alerts = someloss
host = www.sohu.com
效果图:当前菜单下主机延时,丢包图
效果图:当前菜单下某主机延时,丢包详细图
图例说明
绿块表示不丢包,其他颜色的块表示不同程序的丢包。
图形越平稳,表示网络越稳定,如果图形峰值和低谷很多,则表示网络时延不稳定,忽高忽低。
?
这里apache 如果要你做个URL的文件下载测试?
dd?if=/dev/null?bs=1M?count=1?of=/var/www/html/index.html
这里我也有脚本,需要的留言 我当天看到会发给你连接下载就行。?