稳定性检测工具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

Smokeping安装部署的更多相关文章

  1. smokeping安装部署最佳实践

    1.1安装smokeping [root@linux-node2 ~]# cat /etc/redhat-release              #查看服务器信息 CentOS release 6. ...

  2. SmokePing安装手册

    SmokePing安装部署 SmokePing简介 Smokeping是一款用于网络性能监测的开源监控软件,主要用于对IDC的网络状况,网络质量,稳定性等做检测,通过rrdtool制图方式,图形化地展 ...

  3. ubuntu下smokeping安装配置

    0.参考文件 http://wenku.baidu.com/view/950fbb0a79563c1ec5da71b1 http://aaaxiang000.blog.163.com/blog/sta ...

  4. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  5. KVM安装部署

    KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...

  6. Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考

    操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...

  7. 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

    少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...

  8. C# winform安装部署(转载)

    c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...

  9. Ubuntu14.04 Django Mysql安装部署全过程

    Ubuntu14.04 Django Mysql安装部署全过程   一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...

随机推荐

  1. css3+html5特效-向上滑动

    css+html5特效-向上滑动 效果描述:切换的下拉和上拉状态 鼠标悬浮:下拉鼠标离开:上拉 /*外容器设置*/ .box1{position:relative;top:100px;left:100 ...

  2. java_24.1文件流的应用--复制文件

    注意:先开的流要最后关 用字节流传输 public class Demo { public static void main(String[] args){ FileInputStream fis = ...

  3. hystrix参数详解

    hystrix.command.default和hystrix.threadpool.default中的default为默认CommandKey Execution相关的属性的配置: hystrix. ...

  4. spring boot1.0 集成quartz 动态配置定时任务

    转载自 https://www.imooc.com/article/36278 一.Quartz简介了解 Quartz Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应 ...

  5. Newtonsoft.Json 你必须知道的一些用法

    最近在做接口开发,对方团队开发了一个Web API 的接口,传输数据的格式是 JSON.当时看到这个东西,感觉很简单,也没想什么,没用多久就完成了我的功能,我完成的功能很简单,就是获取数据,然后把数据 ...

  6. angular4模块中标签添加背景图

    一.现象 一个全屏的“走马灯”每项需要添加背景图,在循环标签里需要动态添加行内样式 二.解决 1.首先有一个图片数组,如: export class AppComponent { array = [& ...

  7. JS的深浅拷贝

    项目中根据各种需求或多或少会需要用到拷贝,通过查询整理之后今天简单的记录一下. 我们可以利用 slice.concat 返回一个新数组的特性可以实现数组的拷贝. var arr = ['a', 1, ...

  8. dubbo服务达成jar包

    <build> <finalName>dubbo-provider</finalName> <!-- jar包名,一般设置为提供者服务名 --> < ...

  9. python3 第二十六章 - 内置函数之Number相关

    数学函数 函数 返回值 ( 描述 ) 实例 abs(x) 返回数字的绝对值,如abs(-10) 返回 10 print(abs(-10)) =======输出:====== 10 ceil(x) 返回 ...

  10. Python从入门到精通之Forth!

    Python基本数据类型之列表 补充:range()方法 python2: range   立即创建 xrange  for循环的时候才一个一个创建 Python3: range     for循环的 ...