RHEL-5.3 ===================================================================================
【实际需求】
做为网站公司一般都会要求我们 IT 部提供全国各地>
一般 ISP 或者代理公司会给出测试服务器供我们测试该> 比如 windows 服务器中有雷傲测试工具等等、就是通过在高峰时间段 ping 各地区的信息港或者骨干网络的 IP 地址;最后分析统计该时间段内的 ping 值数据的平均值和丢包率等;
===================================================================================SmokePing
【Smokeping 简介】
是 rrdtool 的作者 Tobi Oetiker 的作品,所以它在图形显示方面有很大优势,也是一个很有特点的 opensource 工具:
多种探测方式,包括 fping、echoping、dig、curl 等;
易用可扩展的插件;
master/slave 的工作方式,可以在多个节点收集同一个监测点的数据;
很有特色的 alert 设置,不只是简单的设置一个阀值。
===================================================================================
【系统配置 RHEL-5.3】
关闭 防火墙
# service iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
关闭 selinux
# system-config-selinux
或
# setenforce 0
或
# vi /etc/sysconfig/selinux
将 SELINUX=enforcing
改成 SELINUX=disabled
重启后生效
===================================================================================
【安装相关软件】
smokeping 是一个用 perl 写的程序,所以不需要安装。但是他需要使用一些工具以及 perl 的 module,还有 rrdtool、fping、echoping 等,这些都需要预先安装好。smokeping 启动的时候,也会自己去检查需要用到的程序是否能找到。
我已经配置好了 yum :
# yum install gcc
# yum install freetype-devel
# yum install zlib-devel
# yum install libpng-devel
# yum install libart_lgpl-devel
# yum install httpd-devel
# yum install apr-util-devel
# yum install apr-devel
# yum install perl*
# yum install gcc freetype-devel zlib-devel libpng-devel libart_lgpl-devel httpd-devel apr-util-devel apr-devel freetype libart_lgpl libpng zlib perl*
除了以上的 rpm 包,还需手动安装以下的包。
【rrdtool】【cgilib】【fping-2.4b2_to】【echoping】【CGI-SpeedyCGI-2.22】【smokeping】
===================================================================================
【rrdtool】
rrdtool 依赖以下程序
# yum install freetype
# yum install libart_lgpl
# yum install libpng
# yum install zlib
# yum install freetype libart_lgpl libpng zlib
# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3.6.tar.gz
# tar zxvf rrdtool-1.3.6.tar.gz
# cd rrdtool-1.3.6
# ./configure --disable-tcl
----------------------------------------------------------------
Config is DONE!
With MMAP IO: yes
Build rrd_getopt: no
Static programs: no
Perl Modules: perl_piped perl_shared
Perl Binary: /usr/bin/perl
Perl Version: 5.8.8
Perl Options: PREFIX=$(DESTDIR)/usr/local/rrdtool-1.3.6 LIB=$(DESTDIR)/usr/local/rrdtool-1.3.6/lib/perl/5.8.8
Ruby Modules:
Ruby Binary: no
Ruby Options: sitedir=$(DESTDIR)/usr/local/rrdtool-1.3.6/lib/ruby
Build Tcl Bindings: no
Build Python Bindings: yes
Build rrdcgi: yes
Build librrd MT: yes
Link with libintl: yes
Libraries: -lxml2 -lcairo -lcairo -lcairo -lm -lcairo -lpng12 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
Type 'make' to compile the software and use 'make install' to
install everything to: /usr/local/rrdtool-1.3.6.
... that wishlist is NO JOKE. If you find RRDtool useful
make me happy. Go to http://tobi.oetiker.ch/wish and
place an order.
-- Tobi Oetiker
----------------------------------------------------------------
# make
#make install
#whereis rrdtool
rrdtool: /usr/local/rrdtool
完成后执行cd ..退回安装包的目录
------------------------------------------------------------------------------------------------------------------------------------
【cgilib】
# wget http://down1.chinaunix.net/distfiles/cgilib-0.5.tar.gz
# tar zxvf cgilib-0.5.tar.gz
#cd cgilib-0.5
#make
#cp libcgi.a /usr/local/lib
#cp cgi.h /usr/include
------------------------------------------------------------------------------------------------------------------------------------
【fping-2.4b2_to】
# wget http://fping.sourceforge.net/download/fping.tar.gz
# tar zxvf fping.tar.gz
# cd fping-2.4b2_to
# ./configure
# make
# make check
# make install
#whereis fping
fping: /usr/local/sbin/fping
------------------------------------------------------------------------------------------------------------------------------------
【echoping】
# wget http://jaist.dl.sourceforge.net/project/echoping/echoping/6.0.0/echoping-6.0.0.tar.gz
#tar zxvf echoping-6.0.0.tar.gz
# cd echoping-6.0.0
# ./configure
# make
# make test
遇到测试不成功等信息就 ctrl+c 回到命令行;
# make install
# whereis echoping
echoping: /usr/local/bin/echoping /usr/local/lib/echoping
------------------------------------------------------------------------------------------------------------------------------------
【CGI-SpeedyCGI-2.22】
# wget http://daemoninc.com/SpeedyCGI/CGI-SpeedyCGI-2.22.tar.gz
# tar zxvf CGI-SpeedyCGI-2.22.tar.gz
# cd CGI-SpeedyCGI-2.22
# perl Makefile.PL
Optional mod_speedycgi support.
Mod_speedycgi increases performance under Apache by avoiding the fork/exec
overhead associated with each request under normal SpeedyCGI. However, it
requires a working copy of "apxs" in your path, Apache with mod_so
support, and additional Apache configuration.
Compile mod_speedycgi (default no)? n
遇到问题选择默认选项(no )
# ls /etc/httpd/modules/
libphp5.so mod_cgid.so mod_include.so mod_proxy.so
……
mod_cern_meta.so mod_imap.so mod_proxy_http.so
这个目录下没有 mod_speedycgi.so,现在需要去下载安装 mod_speedycgi.so
搜到了一个源
# wget ftp://195.220.108.108/linux/epel/5/i386/mod_speedycgi-2.22-4.el5.i386.rpm
# rpm -ivh mod_speedycgi-2.22-4.el5.i386.rpm
warning: mod_speedycgi-2.22-4.el5.i386.rpm: Header V3 DSA signature: NOKEY, key> error: Failed dependencies:
perl-CGI-SpeedyCGI = 2.22-4.el5 is needed by mod_speedycgi-2.22-4.el5.i386
# wget ftp://fr.rpmfind.net/linux/EPEL/5Server/i386/perl-CGI-SpeedyCGI-2.22-4.el5.i386.rpm
#rpm -ivh --force perl-CGI-SpeedyCGI-2.22-4.el5.i386.rpm
# rpm -ivh mod_speedycgi-2.22-4.el5.i386.rpm
# perl Makefile.PL
# make
# make test
# make install
完成后执行 cd ..退回安装包的目录
===================================================================================
三、配置【smokeping】
① 下载、解压文件
# wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.3.6.tar.gz
# tar zxvf smokeping-2.3.6.tar.gz
# mv smokeping-2.3.6 / smokeping
# cd / smokeping /smokeping-2.3.6
------------------------------------------------------------------------------------------------------------------------------------
② 生成文件
bin/ 下的 smokeping.dist
# cp smokeping.dist smokeping
etc/ 下的 basepage.html.dist,config.dist,smokemail.dist
# cp basepage.html.dist basepage.html
# cp config.dist config
# cp smokemail.dist smokemail
# chmod 600 smokeping_secrets.dist
htdocs/smokeping.cgi.dist
# cp smokeping.cgi.dist smokeping.cgi
/etc/ 下的 config-echoping.dist 可以先不去掉.dist;
------------------------------------------------------------------------------------------------------------------------------------
③ 按下面的步骤改参数:
配置 bin/smokeping
# vi /smokeping/smokeping-2.3.6/bin /smokeping
主程序,运行在后台。
在这个文件里面我们需要修改前面两个 lib 和后面 config 文件的 path。
两个 lib 分别是 smokeping 的 lib 和 rrdtool 的 lib 。
我的 smokeping 安装在 /usr/local/ 目录中,所以我的设置是:
将以下几行替换为已经安装的相关软件的路径(将橙黄色改为浅黄色):
#!/usr/sepp/bin/perl-5.8.4 -w
#!/usr/bin/perl -w
use lib qw(/usr/pack/rrdtool-1.2.23-mo/lib/perl);
use lib qw(/usr/local/rrdtool-1.3.6/lib/perl);
use lib qw(lib);
use lib qw(/smokeping/smokeping-2.3.6/lib);
use Smokeping 2.003006;
Smokeping::main("etc/config.dist");
Smokeping::main("/smokeping/smokeping-2.3.6/etc/config");
配置 htdocs/smokeping.cgi
# vi / smokeping /smokeping-2.3.6/htdocs/smokeping.cgi
这个文件显示页面、图像和作为 slave 传输数据的接口,设置方法与"bin/smokeping"类似。
但是第一行的 speedy 的路径可能需要修改,否则浏览器中只会看到一个白色的页面。
将以下几行替换为已经安装的相关软件的路径(将橙黄色改为浅黄色):
#!/usr/sepp/bin/speedy -w
# -*-perl-*-
#!/usr/bin/speedy -w
# -*-perl-*-
# use lib qw(/usr/pack/rrdtool-1.0.33-to/lib/perl);
use lib qw(/usr/local/rrdtool-1.3.6/lib/perl/);
# use lib qw(/home/oetiker/data/projects/AADJ-smokeping/dist/lib);
use lib qw(/smokeping/smokeping-2.3.6/lib);
use Smokeping 2.003006;
Smokeping::cgi("/home/oetiker/data/projects/AADJ-smokeping/dist/etc/config");
Smokeping::cgi("/smokeping/smokeping-2.3.6/etc/config");
配置 htdocs/cropper/*
用来作页面图像放大缩小的工具。
配置 etc/basepage.html
显示页面的主框架。里面之需要配置"htdocs/cropper/"的位置即可。
配置 etc/config
# vi /smokeping/smokeping-2.3.6/etc/config
(config 默认是只读的,需要修改属性)
将以下几行替换为已经安装的相关软件的路径(将橙黄色改为浅黄色):
*** General ***
owner = Peter Random
owner = qu6zhi.test (输入您的名字,显示在网页上)
contact = some@address.nowhere
contact = user@domain (输入您的邮件,显示在网页上)
imgcache = /home/oetiker/public_html/smokeping-ms/cache
imgcache = /smokeping/smokeping-2.3.6/htdocs/cache
imgurl = cache
imgurl = cache
datadir = /tmp/smokeping-ms/data
datadir = /smokeping/smokeping-2.3.6/var
piddir = /tmp/smokeping-ms/var
piddir = /smokeping/smokeping-2.3.6/var
cgiurl = http://some.url/smokeping.cgi
cgiurl = http://IP/htdocs/smokeping.cgi
smokemail = /home/oetiker/checkouts/smokeping/trunk/software/etc/smokemail.dist
smokemail = /smokeping/smokeping-2.3.6/etc/smokemail
tmail = /home/oetiker/checkouts/smokeping/trunk/software/etc/tmail.dist
tmail = /smokeping/smokeping-2.3.6/etc/tmail.dist
*** Presentation ***
template = /home/oetiker/checkouts/smokeping/trunk/software/etc/basepage.html.dist
template = /smokeping/smokeping-2.3.6/etc/basepage.html
*** Database ***
step = 30 // web 页面的刷新时间
pings = 1000
*** Alerts ***
to = alertee@address.somewhere
to = user@domain (要收到报警邮件的 e-mail address)
from = smokealert@company.xy
from = smokealert@localhost (本机要发送的账号)
*** Targets ***
编辑要做监控的主机
编辑方式采阶层式, 用 + (加号) 做阶层功能
probe = FPing
normal 是100bit
default 是 1024bit
+ Test
menu = Top
title = Network Latency Grapher(描述)
++ stddev(++ 第二层分类)
sorter = StdDev(entries=>4)
title = Top Standard Deviation
menu = Std Deviation(menu = 第二层)
format = Standard Deviation %f
title = 第二层的描述
+++ Switch001
menu = 第三层里的配置 (可以继续分层)
title = 第三层里的设备的名称
host = 192.168.1.254 (IP 或 domain name 都可以)
+++ Switch002
menu = 第三层里的设备 (可以继续分层)
title = 第三层里的设备的名称
host = 192.168.2.254 (IP 或 domain name 都可以)
menu = Multihost
title = James and James as seen from Boomer
host = /World/第二层分类/Switch001 /World/第二层分类/Switch002 (将多个图合并到一个图中)
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to this SmokePing website.
+ mysite1
menu = Site 1
title = Hosts in Site 1
++ myhost1
host = myhost1.mysite1.example
++ myhost2
host = myhost2.mysite1.example
+ mysite2
menu = Site 2
title = Hosts in Site 2
++ myhost3
host = myhost3.mysite2.example
++ myhost4
host = myhost4.mysite2.example
注意:设备名字当中不能出现“. ”。
*** Probes ***
+ FPing
binary = /usr/sbin/fping
binary = /smokeping/fping-2.4b2_to/fping
*** Slaves ***
secrets=/smokeping/smokeping-2.3.6/etc/smokeping_secrets.dist
#+boomer
#display_name=boomer
#color=0000ff
#+slave2
显示中文
*** Presentation ***
中,加入:
charset = gb2312
不过 rrdtool 图像中还是显示不了中文。
最后:
# mkdir /smokeping/smokeping-2.3.6/htdocs/cache
# mkdir /smokeping/smokeping-2.3.6/var
===================================================================================
# vi /smokeping/smokeping-2.3.6/etc/config
确认下图的配置
imgcache = /home/oetiker/public_html/smokeping-ms/cache
imgcache = /smokeping/smokeping-2.3.6/htdocs/cache
imgurl = cache
imgurl = cache
datadir = /tmp/smokeping-ms/data
datadir = /smokeping/smokeping-2.3.6/var
piddir = /tmp/smokeping-ms/var
piddir = /smokeping/smokeping-2.3.6/var
查看缓存 /smokeping/smokeping-2.3.6/htdocs/cache/HP-IDC/ 没有发现 png 文件,这样不正常。
给 smokeping 目录 apache 完全权限,不然 rrdtool 会画不出图:
#chown -R apache:apache /smokeping/smokeping-2.3.6/
imgurl (mandatory setting)
Either an absolute URL to the imgcache directory or one># vi /smokeping/smokeping-2.3.6/etc/config …… #imgurl = /smokeping/smokeping-2.3.6/htdocs/cache imgurl = cache
……
===================================================================================
四、web 页面认证的配置
# wget http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/authors/id/H/HO/HORROCKS/CGI-SpeedyCGI-1.8.2.tar.gz
① 把运营设备 /var/www/.htaccess 拷贝到新设备的 /var/www 目录下;
② 把运营设备 /smokeping/smokeping-2.3.6/etc/htpasswd.users 拷贝到新设备的 /smokeping/smokeping-2.3.6/etc 目录下;如果考不过来,就在运营设备上 vi htpasswd.users ,同时在新设备上 vi /smokeping/smokeping-2.3.6/etc/htpasswd.users ,然后把运营设备的那个文件里面的内容拷贝到新设备的那个文件里,(noc:bC6fBME.DZLHE)保存推出vi ;
③ 接下来配置 smokeping 的储存图形文件的目录,不然会画不出图:
# mkdir /smokeping/smokeping-2.3.6/.simg
# chown -R apache:apache /smokeping/smokeping-2.3.6/
④ 接下来编辑 apache 的配置文件,让apache能执行 smokeping 的 html 文件:
# vi /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
DocumentRoot /smokeping/smokeping-2.3.6/htdocs
ServerName dummy-host.example.com
ScriptAlias /index.html /smokeping/smokeping-2.3.6/htdocs/smokeping.cgi
把下面这段加到下面几行配置下面
Options FollowSymLinks
AllowOverride None
要加的配置是:
Options FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
Options FollowSymLinks
AllowOverride AuthConfig
Order allow,deny
Allow from all
⑤ 然后,为了不让 apache 找 mysql 去认证,需要:
# yum install mod_auth_mysql
===================================================================================
六、运行环境
删除进程:
# cd /smokeping/smokeping-2.3.6/etc
# killall smokeping (多执行)
# ps -efH |grep smokeping
启动进程:
# /smokeping/smokeping-2.3.6/bin/smokeping start
# service httpd restart
配置开机自动运行
# vi /etc/rc.d/rc.local
/smokeping/smokeping-2.3.6/bin/smokeping start
打开浏览器, http://x.x.x.x/htdocs/smokeping.cgi
===================================================================================
七、访问权限
① 修改 httpd.conf # vi /etc/httpd/conf/httpd.conf
306
307
308 #
309 # Possible values for the Options directive are "None", "All",
310 # or any combination of:
311 # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
312 #
313 # Note that "MultiViews" must be named *explicitly* --- "Options All"
314 # doesn't give it to you.
315 #
316 # The Options directive is both complicated and important. Please see
317 # http://httpd.apache.org/docs/2.2/mod/core.html#options
318 # for more information.
319 #
320 Options Indexes FollowSymLinks
321
322 #
323 # AllowOverride controls what directives may be placed in .htaccess files.
324 # It can be "All", "None", or any combination of the keywords:
325 # Options FileInfo AuthConfig Limit
326 #
327 AllowOverride AuthConfig
328
329 #
330 # Controls who can get stuff from this server.
331 #
332 Order allow,deny
333 Allow from all
334
335
意思是在 /smokeping/smokeping-2.3.6/htdocs 下不同目录的访问权限由该目录下的 .htaccess 文件来控制,而且不同目录的权限策略可互相覆盖。
② 编辑 .htaccess 文件
# vi /smokeping/smokeping-2.3.6/htdocs/ .htaccess.smoke #访问权限控制文件
AuthUserFile /smokeping/smokeping-2.3.6/htdocs/htpasswd.smoke.user # 用户密码信息存放文件
AuthType Basic #认证类型为基本型
AuthName "smokeping" #弹出对话框的说明
require valid-user #认证方式
保存退出。
③ 建立用户
# /usr/bin/htpasswd –c /smokeping/smokeping-2.3.6/htdocs/htpasswd.smoke.user admin # 建立用户 admin
New password: # 输入用户密码
Re-type new password: # 再次输入密码
Adding password for user admin # 添加用户成功信息
可以建立多个用户
④ # chgrp apache htpasswd.smoke.user
# chmod 640 htpasswd.smoke.user
⑤ 重启 apache,再次访问http://xxx.xxx.xxx.xxx,这时应该出现一个身份认证窗口,你需要输入用户名和密码才能访问这个页面。
如果你也遇到 Apache 还不支持 .htaccess 的情况,使用我上面的这个情况不行的话,那就在 httpd.conf 文件里搜索 LoadModule rewrite_module modules/mod_rewrite.so ,如果前面有 # 符号,就去掉。保存,然后重启 Apache 。
===================================================================================
285 vi /etc/bashrc
286 w
320 netstat -anptu
321 ps -A | grep smoke
===================================================================================
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com