zoukankan      html  css  js  c++  java
  • Smokeping安装部署

    稳定性检测工具smokeping安装配置和使用方法

    Smokeping介绍

    是对IDC网络质量,稳定性等最好的检测工具,包括常规的 pingdig,echoping,curl等,可以监视www服务器性能,监视dns查询性能,监视ssh性能等。底层也是 rrdtool 做支持,特点是画的图非常漂亮,网络丢包和延迟用颜色和阴影来表示。

    smokeping的优点:

    1)最佳的画图功能,延迟和丢包用颜色和阴影表示很直观。

    2)免费和开源,作者是MRTG和RRDtool作者。

    3)支持主从的分布式模式。

    4)可以自定义报警功能。

    下载页面

    http://oss.oetiker.ch/smokeping/pub/

     

    1.1安装smokeping

    [root@oracle-standby ~]# cat /etc/redhat-release              #查看服务器信息

    CentOS release 6.7 (Final)

    [root@oracle-standby ~]# uname -r

    2.6.32-573.el6.x86_64

    [root@oracle-standby ~]# 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 screen              #通过yum安装所依赖的库以及环境

    [root@oracle-standby ~]# cd /usr/local/src/  

    [root@oracle-standby src]# wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.9.tar.gz

    [root@oracle-standby src]# tar xf smokeping-2.6.9.tar.gz

    [root@oracle-standby src]# cd smokeping-2.6.9

    [root@oracle-standby smokeping-2.6.9]# ./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty

    [root@oracle-standby smokeping-2.6.9]# ./configure --prefix=/usr/local/smokeping  #编译smokeping到/usr/local

    [root@oracle-standby smokeping-2.6.9]# /usr/bin/gmake install

    [root@oracle-standby smokeping-2.6.9]#  cd /usr/local/smokeping/

    [root@oracle-standby smokeping]# mkdir cache data var 

    ##这个data用于存放rrd数据库,由于要存放较长时间,可能会比较大,建议放到一个有足够空间的地方。

    ##cache存放缓存的图片

    [root@oracle-standby smokeping]# touch /var/log/smokeping.log

    [root@oracle-standby smokeping]# chown apache.apache cache/ data/ var/ /var/log/smokeping.log

    [root@oracle-standby smokeping]# cd /usr/local/smokeping/htdocs/     #进入smokeping下htdocs目录

    [root@oracle-standby htdocs]# mv smokeping.fcgi.dist smokeping.fcgi   #修改smokeping文件名

    [root@oracle-standby ~]# mv /usr/local/smokeping/etc/config.dist  /usr/local/smokeping/etc/config

    #修改smokeping下etc目录smokeping

    1.2修改smokeping配置文件

    [root@oracle-standby ~]#  sed -i 's#cgiurl   = http://some.url/smokeping.cgi#cgiurl   = http://10.2.2.249/smokeping.cgi#g' /usr/local/smokeping/etc/config

    [root@oracle-standby ~]# sed -i 's#300#500#g' /usr/local/smokeping/etc/config  #默认检测时间300秒修改为500秒 

    [root@oracle-standby ~]# sed -i 's#20#100#g' /usr/local/smokeping/etc/config  #默认ping20次,修改为500秒ping100次

    解释:

    *** Database ***

    step     = 500

    pings    = 100

    Database RRD数据库配置。step和pings这两个参数要在启动smokeping之前配置好,如果在smokeping启动后再配置这两个参数,需要把原来的rrd文件都删除,然后再启动smokeping才可以。所以这个一定要先配置好。默认是step=300 pings=20 是每300s内执行20次ping的动作。

    [root@oracle-standby ~]# vim /usr/local/smokeping/etc/config    #在presentation添加utf-8中文字符集

    *** Presentation ***

    charset = utf-8

    [root@oracle-standby ~]#  chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist #修改密码权限为root只读

    1.3修改apache配置文件 

    [root@oracle-standby ~]# htpasswd -c /usr/local/smokeping/htdocs/htpasswd peng #设置登录密码认证  通过apache自带验证功能

    New password:

    Re-type new password:

    Adding password for user peng

    修改apache的配置

    # DocumentRoot: The directory out of which you will serve your

    # documents. By default, all requests are taken from this directory, but

    # symbolic links and aliases may be used to point to other locations.

    #

    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"

    <Directory "/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

    </Directory>

    1.4设置smokeping启动脚本

    [root@oracle-standby ~]# cat /etc/init.d/smokeping

    #!/bin/bash

    #

    # chkconfig: 2345 80 05

    # Description: Smokeping init.d script

    # Get function from functions library

    . /etc/init.d/functions

    # Start the service Smokeping

    function start() {

    echo -n "Starting Smokeping: "

          /usr/local/smokeping/bin/smokeping >/dev/null 2>&1

    ### Create the lock file ###

          touch /var/lock/subsys/smokeping

    success $"Smokeping startup"

    echo

    }

    # Restart the service Smokeping

    function stop() {

    echo -n "Stopping Smokeping: "

    kill -9 `ps ax |grep "/usr/local/smokeping/bin/smokeping" |grep -v grep | awk '{ print $1 }'` >/dev/null 2>&1

    ### Now, delete the lock file ###

    rm -f /var/lock/subsys/smokeping

    success $"Smokeping shutdown"

    echo

    }

    #Show status about Smokeping

    function status() {

    NUM="`ps -ef|grep smokeping|grep -v grep|wc -l`"

    if [ "$NUM" == "0" ];then

    echo "Smokeping is not run"

    else

    echo "Smokeping is running"

    fi

    }

    ### main logic ###

    case "$1" in

        start)

            start

            ;;

    stop)

            stop

            ;;

    status)

            status

            ;;

    restart|reload)

            stop

            start

    ;;

    *)

       echo $"Usage: $0  {start|stop|restart|reload|status}"

       exit 1

    esac

       exit 0

    1.5启动服务以及访问smokeping

    [root@linux-node2 ~]# chmod 755 /etc/init.d/smokeping   

    [root@linux-node2 ~]# chkconfig --add smokeping       

    [root@linux-node2 ~]# chkconfig smokeping on

    [root@linux-node2 ~]# chkconfig httpd on   

    [root@linux-node2 ~]# /etc/init.d/httpd restart    

    [root@linux-node2 ~]# /etc/init.d/smokeping restart  

     

    查看进程:

    [root@oracle-standby ~]# ps -ef |grep smoke

    root     44447     1  0 13:24 ?        00:00:00 /usr/local/smokeping/bin/smokeping [FPing]

    1.6打开检测主机的Web页面

    在Web浏览器里输入 http://您的监控主机IP/smokeping,出现如下登录界面:

    1.7添加需要监控的网站和节点

    注意事项:

    1)在/usr/local/smokeping/etc/config中添加

    2)smokeping就这点不好,添加节点不能在前台Web页面添加,一定要在后台的配置文件中添加。

    3)修改/usr/local/smokeping/etc/config 后,必须重启smokeping 程序,配置才会生效  

    4)smokeping 会根据配置文件config在/usr/local/smokeping/data 之下添加moniter文件夹,其下包含website子文件夹

         添加监控节点示例:注意+是第一层,++是第二层,+++ 是第三层

    我们这里的配置如下:

    [root@oracle-standby var]# tail -60 /usr/local/smokeping/etc/config

    +CRM

    menu = 各机构CRM业务

    title = 监控统计

    ++xian

    menu = 西安网络监控

    title = 西安网络监控列表

    host = /CRM/xian/xian-app /CRM/xian/xian-rsync /CRM/xian/xian-rule /CRM/xian/xian-db

    +++ xian-app

    menu = 西安app

    title = 西安app

    alerts = someloss

    host = x.x.x.x

    +++ xian-rsync

    menu = 西安rsync

    title = 西安rsync

    alerts = someloss

    host = x.x.x.x

    +++ xian-rule

    menu = 西安rule

    title = 西安rule

    alerts = someloss

    host = x.x.x.x

    +++ xian-db

    menu = 西安db

    title = 西安db

    alerts = someloss

    host = x.x.x.x

    ++zhengzhou

    menu = 郑州网络监控

    title = 郑州网络监控列表

    host = /CRM/zhengzhou/zhengzhou-app

    +++ zhengzhou-app

    menu = 郑州app

    title = 郑州app

    alerts = someloss

    host = x.x.x.x

    重启smokeping服务,并在浏览器上输入:http://10.2.2.249/smokeping

    图表参数说明

    (1) RTT(Round-Trip Time):简单说它是一个数据包在网络上两点中间往返一次的时间。是影响TCP性能和表征网络运行状况的重要参数。在网络中实时、准确地测量大量TCP设备和系统的RTT参数是网络管理的重要环节之一。Smokeping就是这样的自动测试系统,它向目标设备和系统发送各种类型的测试数据包,测量、记录和展示RTT。

    (2) Median RTT:它是中间数并不是平均值。Smokeping有多种类型的探针,探针在默认的设置下,每300秒向目标设备发送20个探测数据包。假如这20个数据包都返回的话,它就记录下了20个RTT,那么Median RTT就是第十个包的RTT;如果有5个包丢失的话,那么Median RTT就是第八个返回的包的RTT值。

    (3) Avg RTT:它是每一个测试回合中所有RTT的算术评价值。

    (4) Avg pkt loss:丢包率。

    (5) Probe:100 ICMP Echo Pings(56 Bytes)every 500

    每一个绿色的短横线都是一个测试回合500秒内用ping测试100次。绿色画出的是中间数的位置,一个回合中的其它值都在它附近被以灰度的形式被刻画;

    查看网络状况

    Smokeping可以方便地查看所监控的网络状况:

    可以很具体在图上看出网络的延迟及丢包等状况;

    具有Last 3 Hours,Last 30 Hours,Last 10 Days,Last 400 Days图像,还可以通过输入具体的时段来查看图像,如下图:

    Last 3 Hours 最近的3小时 

    Median Ping RTT (506.2 ms avg)中间数的平均值是10.2毫秒。如果是绿色的短横线,说明一个周期内所有的包都返回都有RTT的时间记录下来;如果是蓝色的短横线则说明有2个包丢失。 

    Packet Loss:丢包率。从上图中我们看出全都是绿线,所以丢包率当然是0。

    Probe:10 ICMP Echo Pings(56 Bytes)every 60s 

      这张图是2012-12-13 09:47:27生成的。每一个绿色的短横线都是一个测试回合60秒内用echoping测试icmp协议10次。

    每个有颜色的点描述的是median rrt(中间数)时间,灰色的范围,是描述每个包返回的时间,灰色范围越小,表示每个包返回的时间较统一,说明网络越平稳。颜色越深的地方,表示包返回的时间集中在那一块。RTT曲线的起伏还显示了网络的负载情况。 

    所有单位都是:ms

    在“Charts”下可以查看 “Top Packet Loss”,“Top Max Roundtrip Time”,“Top Median Roundtrip Time”,“Top Standard Deviation情况,这样可以相当方便地判断哪里的网络有问题,从而可以快速地作出处理。如下图所示:

     

    traceroute功能 

    在smokeping的2.4版本开始加入了traceroute功能,但2.5开始,又将其移除了。

    traceroute的使用方法如下:

    在左边栏目中选择需要进行traceroute的主机,点击网段右侧的“*”进行测试。

    测试结果如图所示:

    可以看到从当前位置到目标位置的网络追踪的所有情况。

     

    参考文章:

    http://mayulin.blog.51cto.com/blog/1628315/514397      

    http://wenku.baidu.com/link?url=_-PZ_Ka-Me-q-icgrEXFRj8CLqCwHTpv_o3DE50FUjGhGs05DTve1TrFJmkpz1Gd5ZbMQgit3_QkU84tU-IAJYqkrklHPv5Sp0NTfa3wXVq

    http://www.tuicool.com/articles/6vqArm

  • 相关阅读:
    BZOJ 3505: [Cqoi2014]数三角形 数学
    BZOJ 3931: [CQOI2015]网络吞吐量 最大流
    BZOJ 4236: JOIOJI MAP
    BZOJ 4247 挂饰 背包DP
    hihocoder #1224 : 赛车 dfs
    hihocoder #1223 : 不等式 水题
    BZOJ 3224: Tyvj 1728 普通平衡树 treap
    uoj #31. 【UR #2】猪猪侠再战括号序列 贪心
    BZOJ 1005: [HNOI2008]明明的烦恼 Purfer序列 大数
    心跳回忆4 攻略
  • 原文地址:https://www.cnblogs.com/pengai/p/8350355.html
Copyright © 2011-2022 走看看