From : http://ai.net.nz/horde/wicked/display.php?page=SmokePing

Install needed packages


rrdtool

`yum install rrdtool
<br />**perl-CGI-SpeedyCGI**<br />

`yum install perl-CGI-SpeedyCGI



fping

`yum install fping
<br />** Or do them all together:**<br />

`yum install rrdtool perl-CGI-SpeedyCGI fping



Smokeping

`wget http://people.ee.ethz.ch/~oetiker/webtools/smokeping/pub/smokeping-2.0.9.tar.gztar xvzf smokeping-2.0.9.tar.gzmv smokeping-2.0.9 /usr/local/smokepingchown -R root:root /usr/local/smokeping<br /><br />cd /usr/local/smokeping/binfor foo in *.dist; do cp $foo `basename $foo .dist`; done<br /><br />cd  /usr/local/smokeping/etc/for foo in *.dist; do cp $foo `basename $foo .dist`; done<br /><br />cd /usr/local/smokeping/htdocsfor foo in *.dist; do cp $foo `basename $foo .dist`; done
<br />**pico /usr/local/smokeping/bin/smokeping**<br /><table class="table" ><br /><tr ><br />
<td class="table-cell" >_**Default**_
</td><br />
<td class="table-cell" >_**New**_
</td><br /></tr><br /><tr ><br />
<td class="table-cell" > #!/usr/sepp/bin/perl-5.8.4 -w
</td><br />
<td class="table-cell" > #!/usr/bin/perl -w
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >_ _
</td><br /></tr><br /><tr ><br />
<td class="table-cell" >use lib qw(/usr/pack/rrdtool-1.0.49-to/lib/perl);
</td><br />
<td class="table-cell" >use lib qw(/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/auto/RRDs);
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >** or if a i386 system use**
</td><br /></tr><br /><tr ><br />
<td class="table-cell" >use lib qw(/usr/pack/rrdtool-1.0.49-to/lib/perl);
</td><br />
<td class="table-cell" >use lib qw(/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/auto/RRDs);
</td><br /></tr><br /><tr ><br />
<td class="table-cell" >use lib qw(lib);
</td><br />
<td class="table-cell" >use lib qw(/usr/local/smokeping/lib);
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >_ _
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >use Smokeping 2.000008;
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >_ _
</td><br /></tr><br /><tr ><br />
<td class="table-cell" >Smokeping::main("etc/config.dist");
</td><br />
<td class="table-cell" >Smokeping::main("/usr/local/smokeping/etc/config");
</td><br /></tr><br /></table><br />**pico /usr/local/smokeping/htdocs/smokeping.cgi**<br /><table class="table" ><br /><tr ><br />
<td class="table-cell" >_**Default**_
</td><br />
<td class="table-cell" >_**New**_
</td><br /></tr><br /><tr ><br />
<td class="table-cell" >#!/usr/sepp/bin/speedy -w
</td><br />
<td class="table-cell" >#!/usr/bin/speedy -w
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >_ _
</td><br /></tr><br /><tr ><br />
<td class="table-cell" >use lib qw(/usr/pack/rrdtool-1.0.33-to/lib/perl);
</td><br />
<td class="table-cell" >use lib qw(/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/auto/RRDs);
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >** or if a i386 system use**
</td><br /></tr><br /><tr ><br />
<td class="table-cell" >use lib qw(/usr/pack/rrdtool-1.0.49-to/lib/perl);
</td><br />
<td class="table-cell" >use lib qw(/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/auto/RRDs);
</td><br /></tr><br /><tr ><br />
<td class="table-cell" >use lib qw(/home/oetiker/data/projects/AADJ-smokeping/dist/lib);
</td><br />
<td class="table-cell" >use lib qw(/usr/local/smokeping/lib);
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >use CGI::Carp qw(fatalsToBrowser);
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >_ _
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >use Smokeping 2.000008;
</td><br /></tr><br /><tr ><br />
<td colspan="2" class="table-cell" >_ _
</td><br /></tr><br /><tr ><br />
<td class="table-cell" >Smokeping::cgi("/home/oetiker/data/projects/AADJ-smokeping/dist/etc/config");
</td><br />
<td class="table-cell" >Smokeping::cgi("/usr/local/smokeping/etc/config");
</td><br /></tr><br /></table><br />

`cp /usr/local/smokeping/htdocs/smokeping.cgi /var/www/cgi-bin

pico /usr/local/smokeping/etc/config



etc/config
** General **
<table class="table" >
<tr >

_**Default**_


_**New**_


</tr>
<tr >

owner = Joe Random


owner = Tony Someone


</tr>
<tr >

contact = joe@some.place.xyz


contact = tony@somehhere


</tr>
<tr >

mailhost = smtp.mailhost.abc


mailhost = smtp.somewhere


</tr>
<tr >

sendmail = /usr/lib/sendmail


</tr>
<tr >

imgcache = /home/oetiker/public_html/.simg


imgcache = /var/www/html/smokeping/img


</tr>
<tr >

imgurl = ../.simg


imgurl = http://mail.somewhere.net/smokeping/img


</tr>
<tr >

datadir = /home/oetiker/data/projects/AADJ-smokeping/dist/var


datadir = /usr/local/smokeping/var


</tr>
<tr >

piddir = /home/oetiker/data/projects/AADJ-smokeping/dist/var


piddir = /usr/local/smokeping/var


</tr>
<tr >

cgiurl = http://people.ee.ethz.ch/~oetiker/smokeping/smokeping.cgi


cgiurl = http://mail.somewhere.net/cgi-bin/smokeping.cgi


</tr>
<tr >

smokemail = /home/oetiker/data/projects/AADJ-smokeping/dist/etc/smokemail.dist


smokemail = /usr/local/smokeping/etc/smokemail


</tr>
<tr >

tmail = /home/oetiker/data/projects/AADJ-smokeping/dist/etc/tmail.dist


tmail = /usr/local/smokeping/etc/tmail


</tr>
<tr >

_ _


</tr>
<tr >

syslogfacility = local0


</tr>
</table>
** Alerts **
<table class="table" >
<tr >

to =


to = someone@your.place


</tr>
<tr >

from = smokealert@


from = smokealert@your.smoke.server


</tr>
</table>
** Presentation **
<table class="table" >
<tr >

template = /home/oetiker/data/projects/AADJ-smokeping/dist/etc/basepage.html.dist


template = /usr/local/smokeping/etc/basepage.html


</tr>
</table>
** Probes **
<table class="table" >
<tr >

binary = /usr/sepp/bin/fping


binary = /usr/sbin/fping


</tr>
</table>
For some strange reason I had to make this change to /usr/sbin/fping
chown apache /usr/sbin/fping

** Targets **
<table class="table" >
<tr >

+ World


</tr>
<tr >

menu = World Connectivity


</tr>
<tr >

title= World Connectivity


</tr>
<tr >

_ _


</tr>
<tr >

++ New Zealand


</tr>
<tr >

menu = New Zealand Servers


</tr>
<tr >

title = New Zealand Server


</tr>
<tr >

_ _


</tr>
<tr >

+++ a Server


</tr>
<tr >

menu = My Server


</tr>
<tr >

title = My Server


</tr>
<tr >

host = something.newskies.net


</tr>
</table>
_ _

`mkdir -p /var/www/html/smokeping/imgchown -R apache:apache /var/www/html/smokeping/img<br /><br />mkdir /usr/local/smokeping/var<br /><br />/usr/local/smokeping/bin/smokeping &<br /><br />#ps aux | grep smokeroot      8384  0.0  2.5  14976  3272 ?        Ss   May24   0:01 /usr/local/smokeping/bin/smokeping [FPing]apache    8435  0.0  1.7  11100  2168 ?        Ss   May24   0:02 /usr/bin/speedy_backend -w /var/www/cgi-bin/smokeping.cgiapache    8436  0.3  3.9  12648  5036 ?        S    May24   2:04 /usr/bin/speedy_backend -w /var/www/cgi-bin/smokeping.cgi
<br />

`vi /etc/rc.d/rc.local/usr/local/smokeping/bin/smokeping &






_RTT(Round-Trip Time) _


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



Median RTT _****_中间数


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



Avg RTT _****_评价值


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



Avg pkt loss


它是丢包率。



上图中测试的三个服务器,是用默认的FPing探针探测该服务器是否在线。Smokeping就装在OpenNMS上,可以看出它的RTT最小;奇怪的是它的丢包率却是最大。其它的,一个是美国的一个Web服务器,另一个是美国的Exchange邮件服务器。




Last 3 Hours 最近的3小时


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


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


Probe:__10 HTTP pings using echoping(1) every 300 seconds


这张图是2007-1-11 12:00:05生成的。每一个绿色的短横线都是一个测试回合300秒内用echoping测试HTTP协议10次。绿色画出的是中间数的位置,一个回合中的其它值都在它附近被以灰度的形式被刻画;灰度的范围越小越好,灰色的范围像是烟雾一样笼罩在中间数附近。在中间数附近的烟越小越好,说明网络很平稳。RTT曲线的起伏还显示了网络的负载情况。


点击这里看一个网上的Demo


update : 2008-1-18


现在OpenNMS把smokeping集成了,你可以在OpenNMS中配置使用这个功能。

全文在=》China OpenNMS
——————————————–
我们已经在一个中等规模的企业实施了Nagios,用来监控一堆Cisco设备:交换机、路由器、防火墙,还有各种类型的服务器
(Windows,Linux和Unix)。对我们来说Nagios工作的非常好。我们现在看OpenNMS,是由于她有好看的用户界面和集成的服务资源
图。我喜欢Nagios是由于它的模块化。我能很容易的写一个插件来完成任何相关的事情。
我看到OpenNMS有NRPE和NSCLIENT的能力,但是有一些邮件和资源图不能彻底的采集到。有人正打算用OpenNMS作为Nagios或者其他
软件的替代品?我的答案是非常确定的,可是我也非常想听到一些关于OpenNMS的成功或者不很成功的故事。我正在测试环境中使用
的是OpenNMS1.3.2。

Thanks!
Jon Christensen
——————————————–
我们也有一个和你类似的环境(路由器、交换机、各种服务器),目前有大约250个节点。
使用一个CentOS4的服务器,我们已经在上面安装了OpenNMS1.2.9,Syslog-NG,Swatch, Logtool(http://xjack.org/logtool/),
在Windows上用Informant MIB,在几乎所有Linux/Unix上的是NET-SNMP,和它们一起的还有很多在客户端的自定义脚本;它们中的
大多数都使用send-event.pl或者和它无关。
应为所有这些,我们已经能完全替代了HP OpenView,虽然这是我的一面之词:这个架构是如此的模块化,以致于我们能做的比我们
使用OpenView的还要多,因种种理由。
Tim Selivanow
NOC Technician
EasyStreet Online Services, Inc.
______________
我的个人观点:
从Nagios转到OpenNMS上,其实不太容易。由于一下因素:
1)Nagios非常模块化,架构让人决定非常稳定可靠;它没有用到Java。
2)它的文档非常好,包括它官方的使用手册和用户上传的文档;从文档可以看出这个欧洲Base的项目非常踏实,风格严谨。开发ONMS的那帮老米显得比较自作聪明一点。
3)Nagios的论坛很好,有很多人可以互相帮助。

Cisco是网络设备的老大,它的设备以稳定、成熟和高性能著称。很多用户都以自己的网络设备是99%的Cisco设备而自豪。

对于任何一个网络设备如果没有配置SNMP代理,就不能被任何管理工具管理。下面的这个连接就是关于如何配置Cisco的SNMP服务:http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/ffun_c/fcfprt3/fcf014.htm

可网管网络设备都内置有SNMP代理,很多网管不喜欢配置、enable SNMP服务的理由如下:不希望SNMP服务占用CPU、内存等资源;不信任SNMP服务的安全性;不认确认SNMP管理协议的价值。我个人认为:通过SNMP协议对网络设备管理的价值将远远高于它对设备造成的消耗和带来的风险。如果你同时面对和管理30台以上的网络设备,试想把它们的运行状况做一遍检查,您需要花的时间是多长。

网络管理系统和网络设备的互动如下:


  1. 网管系统主动定时读取MIB的值,存储和分析得到的数值,产生报表和报警事件。
  2. 网管系统被动作为网络设备发送Trap的目的地,网管系统需要能翻译各种网络设备的Trap信息的意义。