使用smokeping监测网络

一、介绍

smokepingrrdtool的作者Tobi Oetiker的作品,所以它在图形显示方面有很大优势,也是一个很 有特点的opensource工具:

多种探测方式,包括fping、echoping、dig、curl等;
易用可扩展的插件;
master/slave 的 工作方式,可以在多个节点收集同一个监测点的数据;
很有特色的alert设置,不只是简单的设置一个阀值;

smokeping

smokeping当前的版本是2.4.2, 本文也是基于这个版本。

二、安装

下载页面:http://oss.oetiker.ch/smokeping/pub/

1、准备工作:

smokeping是一个用perl写的程序,所以不需要安装。但是他需要使用一些工具以及perl的module,比如rrdtool、 fping、echoping等,这些都需要预先安装好。

如果是用debian的话,直接用apt来安装就可以了:

aptitude install rrdtool apache2 fping echoping libapache2-mod-speedycgi libwww-perl libsocket6-perl libnet-telnet-perl libnet-dns-perl libnet-ldap-perl libio-socket-ssl-perl libauthen-radius-perl libcgi-perl librrds-perl librrdp-perl

如果是其他linux的发行版,可以使用CPAN来安装perl的 module。

smokeping启动的时候,也会自己去检查需要用到的程序是否能找到。

2、设置:
在smokeping的子目录中会发现很多“*.dist”命名的文件,这些文件使用的时候请将其改名为“*“并进行配置。

bin/smokeping
主程序,运行在后台。
在这个文件里面我们需要修改前面两个lib和后面config文件的path。
两个lib分别是smokeping的lib和rrdtool的lib。

我的smokeping安装在/usr/local/目录中,所以我的设置是:

use lib qw(/usr/lib/perl5/);
use lib qw(/usr/local/smokeping/lib);

Smokeping::main("/usr/local/smokeping/etc/config");

htdocs/smokeping.cgi
显示页面、图像和作为slave传输数据的接口,设置方法与"bin/smokeping"类似。
但是第一行的speedy的路径可能需要修改,否则浏览器中只会看到一个白色的页面。

htdocs/cropper/*
用来作页面图像放大缩小的工具。

etc/config
主配置文件,非常重要。
它使用的是perl的Config::Grammar模 块。
更详细的配置请点击这里

在section:

*** General ***

里面我主要配置几个path:

imgcache = /home/temp/smokeping/cache
imgurl   = https://smokeping/smokepingcache
datadir  = /home/temp/smokeping/data
piddir  = /home/temp/smokeping/var
cgiurl   = https://smokeping/smokeping/smokeping.cgi (我使用了ssl)

要在页面中显示中文的话,在section:

*** Presentation ***

中,加入:

charset = gb2312

不过rrdtool图像中还是显示不了中文。

etc/basepage.html
显示页面的主框架。里面之需要配置"htdocs/cropper/"的位置即可。

3、配置apache:


  AllowOverride None
  AddHandler cgi-script. cgi
  Options ExecCGI


Alias /smokeping/ "/usr/local/smokeping/htdocs/"
Alias /smokepingcache/ "/home/temp/smokeping/cache/"

三、普通使用
1、开始使用
smokeping的配置文件"etc/config"使用Config::Grammar形式的config文件,以"+"作为层的开始符号。
比如:

+layer1
menu = layer1
title = layer1

++site1
menu = layer2
title = layer2

+++myhost1
menu = layer3
title = layer3
host = myhost.com

+++myhost2
menu = layer4
title = layer4
host = yourhost.com
...

其中myhost1、myhost2属于site1,而site1则属于layer1。 另外子层的"menu"、"title"并不是必需的。

配置好以后,可以启动smokeping了:

./bin/smokeping

如果有错误的话可以debug一下:

./bin/smokeping --debug

2、multi-graph功能

也就是在一张图里面画上多个监测点的数值,很简单:

+++ Multi
menu = Multi
title = My Multi
host = /layer1/site1/myhost1 /layer1/site1/myhost2

其它都一样,不同的是在"host"中指定要放在一起的host(要之前有设置的host)的路径就可以了。

四、smoketrace
作者在2.4版本中加入的新功能,个人觉得用处不太大。
这里 有 详细的安装方法,如果你也是将"htdocs"目录作为cgi的目录的话,什么都不用改,只需要将"htdocs/tr.cgi.dist"文件改名 为"tr.cgi",并配置里面的lib路径即可。

最后在section:

*** Targets ***

中加入:

即可看到页面左边的的每一个host的后面都多了个"*"号,点这个"*"号就会弹出trace的页面。
这个trace比较像"MTR"的trace结果,为什么说它没有什么用呢?因为它返回结果比较慢,而且只能使用"master"的机器来进行 trace。

五、master/slave模式
下面说说master、slave模式,详细请 看这里

[slave 1]     [slave 2]      [slave 3]
        |             |              |
        +-------+     |     +--------+
                |     |     |
                v     v     v
              +---------------+
              |    master     |
              +---------------+

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

配置方法我就简单说说好了:
设置slave信息:

*** Slaves ***
 secrets=/usr/local/smokeping/etc/slavesecrets.conf

 +slave1
 display_name=bjcnc
 location=China
 color=ff0000

要注意的是"slave1"这个名字需要设置为slave主机的hostname,并且写在"slavesecrets.con"文件里面,如:

slave1:12345

如果不想用slave主机的hostname,那么在slave主机启动smokeping服务的时候需要使用"--slave-name"来指定 自己的名字。

*** Targets ***
 slaves = slave1 slave2
 ...
 +dest1
 slaves =
 ...
 +dest2
 slaves = slave1
 ...
 +dest3
 ...

在section

*** Targets ***

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

设置好以后,master的服务器重启一下:

./bin/smokeping --restart

启动slave:

./bin/smokeping --master-url=http://smokeping/smokeping.cgi \
 --cache-dir=/var/tmp/smokeping/ \
 --shared-secret=/usr/local/smokeping/secret.txt \
 --slave-name=slave1

其中secret.txt记载着在master的slavesecrets.conf文件里面对应的slave的密码(只有密码,没有slave名 称)。
slavesecrets.conf和secret.txt文件的文件权限都要是"600"的。

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

nomasterpoll=yes

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

六、alert设定
smokeping的alert设置有点复杂,但是却很好用,考虑得很周全。
它默认可以使用邮件进行alert,也可以直接调用外部程序进行IM的报警,也就是说你只需要写一个简单的脚本,就可以实现smokeping的MSN 、 gtalk 、飞信等IM、短信报警了。

例子:

*** Alerts ***
to = |/usr/local/smokeping/bin/alert.sh
from = joe@somehost

"to" 选项,默认是要填入一个email地址的,但是只要在"="后面加上"|",后面再跟你自定义的脚本的路径,就可以调用自己的脚本进行alert了。
脚本会读入5或者6个参数:name-of-alert, target, loss-pattern, rtt-pattern, hostname,[raise]。
自己选择使用哪些参数alert即可。

+someloss
type = loss
# in percent
pattern = >0%,*12*,>0%,*12*,>0%
comment = loss 3 times  in a row

+rttbad
type = rtt
# in milliseconds
pattern = ==S,>50,>50
comment = route

 +rttdetect
 type = rtt
 # in milliseconds
 pattern = <10,<10,<10,<10,<10,<100,>100,>100,>100
 comment = routing messed up again ?

alert的类型我们主要使用"loss"和"rtt"两种(当然还有更多更复杂的类型)。上面的两个alert设置的意思是:
someloss:
如果在12次检查中出现了3次丢包的情况(不论丢多少个包),就进行alert;

rttbad:
如果连续出现两次50毫秒以上的延时,就进行alert;

rrtdetect:
之前5次检查延时都少于10毫秒,前6次检查延时都少于100毫秒,第7次开始连续3次检查延时都大于100毫秒的话,就进行alert。

从上面可以看出,smokeping的alert做得很全面和仔细,并非像其他工具一样,就使用一个阀值来进行预警的。

最后在你希望进行alert的target里面加上:

alerts = rttbad,someloss

即可。
和"slaves"一样,也是向上继承的,避免继承的方法也是"alerts =",做一个空的alerts。

参考:
SmokePing Documentation http://oss.oetiker.ch/smokeping/doc/index.en.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21070542/viewspace-667832/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21070542/viewspace-667832/

在当今数字化教育蓬勃发展的背景下,校园网络作为教学与科研的关键基础设施,其重要性日益凸显。本文旨在探讨小型校园网络的规划与设计,以满足网络实验教学的需求,为相关专业师生提供一个高效、稳定且功能完备的网络实验环境,助力教学活动顺利开展,提升学生的实践能力和创新思维。 网络实验教学要求校园网络具备高度的灵活性与可扩展性。学生需在实验过程中模拟各种网络拓扑结构、配置不同网络设备参数,这就要求网络能够快速调整资源分配,适应多样化的实验场景。同时,为保证实验数据的准确性和实验过程的稳定性,网络的高可靠性与低延迟特性不可或缺。此外,考虑到校园内多用户同时接入的场景,网络还需具备良好的并发处理能力,确保每位用户都能流畅地进行实验操作。 采用层次化结构构建小型校园网络,分为核心层、汇聚层与接入层。核心层选用高性能交换机,负责高速数据转发与关键路由决策,保障网络主干的稳定运行;汇聚层连接不同教学区域,实现数据的汇聚与初步处理,通过划分虚拟局域网(VLAN)对不同专业或班级的实验流量进行隔离,避免相互干扰;接入层则直接连接学生终端设备,提供充足的接入端口,满足大量用户同时接入的需求,并通过端口安全策略限制非法设备接入,保障网络安全。 在设备选型上,核心层交换机需具备高吞吐量、低延迟以及丰富的路由协议支持能力,以满足复杂网络流量的转发需求;汇聚层交换机则注重VLAN划分与管理功能,以及对链路聚合的支持,提升网络的可靠性和带宽利用率;接入层交换机则需具备高密度端口、灵活的端口配置以及完善的用户认证功能。配置方面,通过静态路由与动态路由协议相结合的方式,确保网络路径的最优选择;在汇聚层与接入层设备上启用VLAN Trunk技术,实现不同VLAN间的数据交换;同时,利用网络管理软件对设备进行集中监控与管理,实时掌握网络运行状态,及时发现并解决潜在问题。 网络安全是校园网络规划的关键环节。在接入层设置严
管理后台HTML页面是Web开发中一种常见的实践,主要用于构建企业或组织内部的管理界面,具备数据监控、用户管理、内容编辑等功能。本文将探讨一套美观易用的二级菜单目录设计,帮助开发者创建高效且直观的后台管理系统。 HTML5:作为超文本标记语言的最新版本,HTML5增强了网页的互动性和可访问性,提供了更多语义元素,如<header>、<nav>、<section>、<article>等,有助于清晰地定义网页结构。在管理后台中,HTML5可用于构建页面布局,划分功能区域,并集成多媒体内容,如图像、音频和视频。 界面设计:良好的管理后台界面应具备清晰的导航、一致的布局和易于理解的图标。二级菜单目录设计能够有效组织信息,主菜单涵盖大类功能,次级菜单则提供更具体的操作选项,通过展开和折叠实现层次感,降低用户认知负担。 CSS:CSS是用于控制网页外观和布局的语言,可对HTML元素进行样式设置,包括颜色、字体、布局等。在管理后台中,CSS能够实现响应式设计,使页面在不同设备上具有良好的显示效果。借助CSS预处理器(如Sass或Less),可以编写更高效、模块化的样式代码,便于维护。 文件结构: guanli.html:可能是管理页面的主入口,包含后台的主要功能和布局。 xitong.html:可能是系统设置或配置页面,用于管理员调整系统参数。 denglu.html:登录页面,通常包含用户名和密码输入框、登录按钮,以及注册或忘记密码的链接。 image文件夹:存放页面使用的图片资源,如图标、背景图等。 css文件夹:包含后台系统的样式文件,如全局样式表style.css或按模块划分的样式文件。 响应式设计:在移动设备普及的背景下,管理后台需要支持多种屏幕尺寸。通过媒体查询(Media Queries)和流式布局(Fluid Grids),可以确保后台在桌面、平板和手机上都能良好展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值