设为首页 收藏本站
查看: 1916|回复: 0

[经验分享] 配置 SmokePing-blog.itsir.org-运维网 博客

[复制链接]
发表于 2019-1-17 11:47:39 | 显示全部楼层 |阅读模式
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
  ===================================================================================
DSC0000.jpg

  # 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
DSC0001.jpg

  查看缓存 /smokeping/smokeping-2.3.6/htdocs/cache/HP-IDC/ 没有发现 png 文件,这样不正常。
DSC0002.jpg

  给 smokeping 目录 apache 完全权限,不然 rrdtool 会画不出图:
  #chown -R apache:apache /smokeping/smokeping-2.3.6/
DSC0003.jpg

  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
  ……
DSC0004.jpg

  ===================================================================================
  四、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
DSC0005.jpg

  ===================================================================================
  七、访问权限
修改 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

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-664367-1-1.html 上篇帖子: smokeping的搭建 下篇帖子: LINUX5配置smokeping
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表