本文是介绍如何的使用smokeping来监控idc机房的网络质量情况,从监控图上的延时与丢包能分辨出你机房的网络是否稳定,是否为多线,是否为BGP机房,到各城市的3个运行商网络各是什么情况,如果出现问题,如果有针对的解决。而且如果选择新机房的时候,你可以根据smokeping的监控结果来判断这个机房是否适合。

1、安装其他源

1

rpm -Uvh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

2、安装rrdtool与依赖库

1

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

3、下载与安装smokeping

wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.8.tar.gz

tar zxvf smokeping-2.6.8.tar.gz

cd smokeping-2.6.8

./configure --prefix=/usr/local/smokeping

出现问题是因为需要安装perl的模块,所以运行下面内容即可

./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty

./configure --prefix=/usr/local/smokeping

/usr/bin/gmake install

现在smokeping安装完成

4、配置smokeping

a.创建cache、data、var目录

cd /usr/local/smokeping

mkdir cache data var

b.在创建日志

touch /var/log/smokeping.log

c.授权

chown apache:apache cache data var

chown apache:apache /var/log/smokeping.log

d.修改配置文件

cd /usr/local/smokeping/htdocs/

mv smokeping.fcgi.dist smokeping.fcgi

cd /usr/local/smokeping/etc

mv config.dist config

vim config

cgiurl   = http://some.url/smokeping.cgi

主要是修改这行,把some.url修改为你的ip或者域名

*** Database ***

step     = 300

然后修改step,从300改为60,这是检测的时间。

e.配置完成之后修改密码文件权限

chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist

f.修改apache的配置

vim /etc/httpd/conf/httpd.conf

添加如下

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

DirectoryIndex smokeping.fcgi

</Directory>

f.设置开机启动

echo "/usr/local/smokeping/bin/smokeping --logfile=/var/log/smokeping.log 2>&1 &" >> /etc/rc.local

g.启动http与smokeping

/etc/init.d/httpd start

/usr/local/smokeping/bin/smokeping --logfile=/var/log/smokeping.log 2>&1 &

然后访问你在config里设置的cgiurl= http://some.url/smokeping

注意如果出现500错误就是因为你没有关闭selinux的问题,关闭了就能正常打开。

剩下就该你自己修改你要监控的内容了

注意+是第一层,++是第二层

+ Test

menu= monitor

#parents = owner:/Test/James location:/

title=monitor all

++ localhost

menu = localhost

title =localhost

alerts = someloss

slaves = boomer slave2

host = 192.168.56.102

然后smokeping的web界面如下图

如果各位就这样放到网上的话,是十分的不安全,所以需要加入访问控制。

h.修改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>

把之前修改的httpd.conf里的这一段直接覆盖就行

然后进入cd /usr/local/smokeping/htdocs目录

设置登录账户与密码

htpasswd -c /usr/local/smokeping/htdocs/htpasswd admin

这个是设置登录账户为admin,密码在后面输入

然后重启httpd就可以实现密码验证登录

需要注意,一定要同步好时间,可以使用cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime或者ntpdate 210.72.145.44。

如果需要在网页里展示中文,修改/usr/local/smokeping/etc的config文件

*** Presentation ***

charset = utf-8 //注:在这里添加

然后在menu与titile里修改中文,重启即可

有一个要注意的地方就是,你输入的中文必须在utf-8的字符编码下输入的中文字符,不然会出现乱码。

如果在xshel下,选择file-properities-terminal

如果还是不显示就看看你系统里是否安装了中文字体,或者在安装一个

debian上可以先apt-cache search wqy(文泉译), centos可以yum search wqy试试。

然后yum install后在重启smokeping

如果想监控本机到电信、联通、移动、教育网的网络情况监控,可以使用下面内容

+ Other

menu = 其他网络监控

title = 其他所有网络监控列表

++ dianxin

menu = 电信网络监控

title = 电信网络监控列表

host = /Other/dianxin/dianxin-hlj /Other/dianxin/dianxin-gd /Other/dianxin/dianxin-gs /Other/dianxin/dianxin-sh

+++ dianxin-hlj

menu = 黑龙江电信

title = 黑龙江电信

alerts = someloss

#slaves = boomer slave2

host = 219.150.32.132

+++ dianxin-gd

menu = 广东电信

title = 广东电信

alerts = someloss

#slaves = boomer slave2

host = 113.111.211.22

+++ dianxin-gs

menu = 甘肃电信

title = 甘肃电信

alerts = someloss

#slaves = boomer slave2

host = 202.100.64.68

+++ dianxin-sh

menu = 上海电信

title = 上海电信

alerts = someloss

#slaves = boomer slave2

host = 202.96.209.5

#+++ dianxin-multi

#menu = 多个电信网络监控列表

#title = 多个电信网络监控列表

#alerts = someloss

#slaves = boomer slave2

#host = /Other/dianxin/dianxin-hlj /Other/dianxin/dianxin-gd /Other/dianxin/dianxin-gs /Other/dianxin/dianxin-sh

#

++ liantong

menu = 联通网络监控

title = 联通网络监控列表

host = /Other/liantong/liantong-hlj /Other/liantong/liantong-gd /Other/liantong/liantong-gs /Other/liantong/liantong-sh

+++ liantong-hlj

menu = 黑龙江联通

title = 黑龙江联通

alerts = someloss

#slaves = boomer slave2

host = 202.97.224.68

+++ liantong-gd

menu = 广东联通

title = 广东联通

alerts = someloss

#slaves = boomer slave2

host = 221.4.66.66

+++ liantong-gs

menu = 甘肃联通

title = 甘肃联通

alerts = someloss

#slaves = boomer slave2

host = 221.7.34.10

+++ liantong-sh

menu = 上海联通

title = 上海联通

alerts = someloss

#slaves = boomer slave2

host = 210.22.70.3

#+++ liantong-multi

#menu = 多个联通网络监控列表

#title = 多个联通网络监控列表

#alerts = someloss

#slaves = boomer slave2

#host = /Other/liantong/liantong-hlj /Other/liantong/liantong-gd /Other/liantong/liantong-gs /Other/liantong/liantong-sh

++ yidong

menu = 移动网络监控

title = 移动网络监控列表

host = /Other/yidong/yidong-hlj /Other/yidong/yidong-gd /Other/yidong/yidong-gs /Other/yidong/yidong-sh

+++ yidong-hlj

menu = 黑龙江移动

title = 黑龙江移动

alerts = someloss

#slaves = boomer slave2

host = 211.137.241.34

+++ yidong-gd

menu = 广东移动

title = 广东移动

alerts = someloss

#slaves = boomer slave2

host = 211.137.241.34

+++ yidong-gs

menu = 甘肃移动

title = 甘肃移动

alerts = someloss

#slaves = boomer slave2

host = 218.203.160.194

+++ yidong-sh

menu = 上海移动

title = 上海移动

alerts = someloss

#slaves = boomer slave2

host = 117.131.0.22

#+++ yidong-multi

#menu = 多个移动网络监控列表

#title = 多个移动网络监控列表

#alerts = someloss

#slaves = boomer slave2

#host = /Other/yidong/yidong-hlj /Other/yidong/yidong-gd /Other/yidong/yidong-gs /Other/yidong/yidong-sh

++ jiaoyu

menu = 教育网络监控

title = 教育网络监控列表

host = /Other/jiaoyu/jiaoyu-qh /Other/jiaoyu/jiaoyu-sh /Other/jiaoyu/jiaoyu-wh /Other/jiaoyu/jiaoyu-hn

+++ jiaoyu-qh

menu = 清华大学

title = 清华大学

alerts = someloss

#slaves = boomer slave2

host = 166.111.8.28

+++ jiaoyu-sh

menu = 上海交大

title = 上海交大

alerts = someloss

#slaves = boomer slave2

host = 202.112.26.34

+++ jiaoyu-wh

menu = 武汉科技大学

title = 武汉科技大学

alerts = someloss

#slaves = boomer slave2

host = 202.114.240.6

+++ jiaoyu-hn

menu = 华南农业大学

title = 华南农业大学

alerts = someloss

#slaves = boomer slave2

host = 202.116.160.33

#+++ jiaoyu-multi

#menu = 多个教育网络监控列表

#title = 多个教育网络监控列表

#alerts = someloss

#slaves = boomer slave2

#host = /Other/jiaoyu/jiaoyu-qh /Other/jiaoyu/jiaoyu-sh /Other/jiaoyu/jiaoyu-wh /Other/jiaoyu/jiaoyu-hn

展示效果为

5、关于smokeping的master与slave配置

slave主机会自己去检查监测点的情况(loss and rtt),并将数值提交给master主机(通过smokeping.cgi)。
值得注意的是,slave并不需要config文件,每次slave提交完数据以后,会询问master它自己的配置文件是否有修改,如果有修改的话slave会进行更新。

配置

在master的config里修改

*** Slaves ***

secrets=/usr/local/smokeping/etc/smokeping_secrets.dist #密码文件

+slave1#名称

display_name=slave1

要注意的是"slave1"这个名字需要设置为slave主机的hostname,并且写在"slavesecrets.con"文件里面,如果不想用slave主机的hostname,那么在slave主机启动smokeping服务的时候需要使用"--slave-name"来指定自己的名字。在section

*** Targets ***

中指定那个host需要使用哪个slave帮忙进行检测。下层会继承上层的配置,如果下层不像继承的话,可以配置"slaves ="来避免使用slave。

具体安装与配置不介绍。

master/slave模式中,master和slave的图片都会显示在同一个页面中,如果不希望显示master的图片,可以使用

nomasterpoll=yes

参数。
另外要注意的一点是,master上面启动"smokeping"进程和apache进程的用户必须要一致。因为rrd文件是由"smokeping"进程创建的,而数据的update却是由"smokeping.cgi"进行的,也就是apache用户。如果不一致的话会出现rrd文件无法被更新的情况,这个情况即使在slave主机上面进行debug也是看不出来的。具体的现象是在页面上面看到master的图像出现数据,但是slave的图像一直是空白的,数据显示是"nan"。

如果大家还想细化的监控,比如按照3大运行商(电信、联通、移动)到1、2、3线城市的网络延时与丢包情况,如下图显示

1、本机房到电信运行商的1线城市网络监控情况

2、本机房到联通运行商的1线城市网络监控情况

3、本机房到移动运行商的1线城市网络监控情况

4、本机房到电信运行商的2线城市网络监控情况

5、本机房到联通运行商的2线城市网络监控情况

6、本机房到移动运行商的2线城市网络监控情况

7、本机房到教育网的网络监控情况

如果达到这样的监控效果,你就能很清楚的了解你当前idc机房的网络情况,从图上的延时与丢包能分辨出你机房的网络是否稳定,是否为多线,是否为BGP机房,到各城市的3个运行商网络各是什么情况,如果出现问题,如果有针对的解决。而且如果选择新机房的时候,你可以根据smokeping的监控结果来判断这个机房是否适合。

smokping的部署使用的更多相关文章

  1. [原]CentOS7.2部署node-mapnik

    转载请注明表作者think8848及出处(http://think8848.cnblogs.com) node-mapnik依赖项中要求g++ >= 5, toolchain (>= GL ...

  2. 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus

    最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...

  3. 通过Jexus 部署 dotnetcore版本MusicStore 示例程序

    ASPNET Music Store application 是一个展示最新的.NET 平台(包括.NET Core/Mono等)上使用MVC 和Entity Framework的示例程序,本文将展示 ...

  4. 结合Jexus + Kestrel 部署 asp.net core 生产环境

    ASP.NET Core 是微软的全新的框架.这一框架的目标 ︰ 跨平台 针对云应用优化 解除 System.Web 的依赖. 获得下面三个方面的优势,你可以把它认为是一个C# 版本的NodeJS: ...

  5. 4.Windows Server2012 R2里面部署 MVC 的网站

    网站部署之~Windows Server | 本地部署:http://www.cnblogs.com/dunitian/p/4822808.html#iis 后期会在博客首发更新:http://dnt ...

  6. Win10 IIS本地部署MVC网站时不能运行?

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 部署后出现这个错误: 打开文件目录后发现是可以看见目录的,静态页面也是可以打开的 ...

  7. 再部署一个 instance 和 Local Network - 每天5分钟玩转 OpenStack(131)

    上一节部署了 cirros-vm1 到 first_local_net,今天我们将再部署 cirros-vm2 到同一网络,并创建 second_local_net. 连接第二个 instance 到 ...

  8. 将 instance 部署到 OVS Local Network - 每天5分钟玩转 OpenStack(130)

    上一节创建了 OVS 本地网络 first_local_net,今天我们会部署一个 instance 到该网络并分析网络结构.launch 一个 instance,选择 first_local_net ...

  9. 从零开始编写自己的C#框架(25)——网站部署

    导航 1.关掉访问保护 2.发布网站 3.复制网站到服务器 4.添加新网站 5.设置网站访问权限 6.设置文件夹访问权限 7.控制可更新文件夹执行权限 8.设置“应用程序池”.net版本与模式 9.附 ...

随机推荐

  1. SSM-CRUD入门项目——修改与PUT请求

    修改 分析: 点击编辑,弹出用户修改的模态框,    模态框中显示用户的信息,    点击更新完成修改! 第一步先复制添加员工的模态框进行修改调整,完成修改员工的模态框的创建:(当然,相应的生成员工数 ...

  2. HTML页面参数的传递与获取

    传递的页面: $("#btn").click(function () { window.location.href="diancan.html?a=1"; }) ...

  3. 20155239《Java程序设计》实验二(面向对象程序设计)实验报告

    实验内容 初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验步骤 单元测试 1.三种代码: 伪代码 ...

  4. QTC++监控USB插拔

    #if defined(Q_OS_WIN) #include <qt_windows.h> #include <QtCore/qglobal.h> #include <d ...

  5. python 多线程笔记(5)-- 生产者/消费者模式

    我们已经知道,对公共资源进行互斥访问,可以使用Lock上锁,或者使用RLock去重入锁. 但是这些都只是方便于处理简单的同步现象,我们甚至还不能很合理的去解决使用Lock锁带来的死锁问题. 要解决更复 ...

  6. (转) 前端面试之js相关问题(一)

    原帖地址:http://stephenzhao.github.io/2016/08/19/Front-end-Job-Interview-Questions/ 最近我也是经历过面试别人和去面试的人了, ...

  7. 180725-InfluxDB-v1.6.0安装和简单使用小结

    InfluxDB安装和简单使用小结 InfluxDB是一个时序性数据库,因为工作需求,安装后使用测试下是否支持大数据下的业务场景 说明: 安装最新版本 v1.6.0 集群版本要收费,单机版本免费 内部 ...

  8. Selenium2+python自动化-环境搭建

    一.selenium简介 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测试,并且 Selenium ...

  9. 622.设计循环队列 javascript实现

    设计你的循环队列实现. 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环.它也被称为“环形缓冲器”. 循环队列的一个好处是我们可以利用这个队列 ...

  10. 小数第n位:高精度

    小数第n位 问题描述 我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数. 如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式. 本题的任务是:在上面的约定下,求整数除法小数点后 ...