最近工作中需要监测某个分公司到IDC机房的网络情况,到网络上找了不少软件,发现一款叫smokeping的开源软件还不错,它是rrdtool的作者制作的,在图形显示方面很漂亮,可以用来很好的检测网络状态和稳定性。

下面介绍一下软件的安装配置方法:

一.安装软件 
1.使用yum 命令安装所需的工具 
yum install gcc freetype-devel zlib-devel libpng-devel libart_lgpl-devel httpd-devel apr-util-devel apr-devel cairo cairo-devel pango pango-devel libxml2 libxml2-devel perl-XML-Simple.noarch perl-Crypt-SSLeay perl-Digest-HMAC

2. 安装rrdtool 
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3.6.tar.gz 
tar zxvf rrdtool-1.3.6.tar.gz 
cd rrdtool-1.3.6 
./configure --disable-tcl 
make 
make install

3. 安装cgilib 
wget http://down1.chinaunix.net/distfiles/cgilib-0.5.tar.gz 
tar zxvf cgilib-0.5.tar.gz 
cd cgilib-0.5 
make 
cp libcgi.a /usr/local/lib 
cp cgi.h /usr/include

4. 安装fping 
wget http://fping.sourceforge.net/download/fping.tar.gz 
tar zxvf fping.tar.gz 
cd fping-2.4b2_to 
./configure 
make 
make check 
make install

5.安装 echoping 
wget http://jaist.dl.sourceforge.net/project/echoping/echoping/6.0.0/echoping-6.0.0.tar.gz 
tar zxvf echoping-6.0.0.tar.gz 
cd echoping-6.0.0 
./configure 
make 
make test 
make install

6.安装 CGI-SpeedyCGI 
wget ftp://195.220.108.108/linux/epel/5/x86_64/mod_speedycgi-2.22-4.el5.x86_64.rpm 
wget ftp://ftp.muug.mb.ca/mirror/fedora/epel/5/x86_64/perl-CGI-SpeedyCGI-2.22-4.el5.x86_64.rpm 
rpm -ivh --force perl-CGI-SpeedyCGI-2.22-4.el5.x86_64.rpm 
rpm -ivh mod_speedycgi-2.22-4.el5.x86_64.rpm 
wget http://mirrors.163.com/cpan/authors/id/H/HO/HORROCKS/CGI-SpeedyCGI-2.22.tar.gz 
tar zxvf CGI-SpeedyCGI-2.22.tar.gz 
cd CGI-SpeedyCGI-2.22 
perl Makefile.PL 
遇到问题选择默认选项(no) 
make 
make test 
make install

7.安装smokeping 
wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.3.6.tar.gz 
tar zxvf smokeping-2.3.6.tar.gz 
mv smokeping-2.3.6 /usr/local/smokeping 
cd /usr/local/smokeping

二.配置smokeping 
1. 修改文件名 
修改/usr/local/smokeping/bin下的smokeping.dist 
cp smokeping.dist smokeping 
修改etc/ 下的 basepage.html.dist,config.dist,smokemail.dist 
cp basepage.html.dist basepage.html 
cp config.dist config 
cp smokemail.dist smokemail 
chmod 600 smokeping_secrets.dist 
修改htdoc/下的smokeping.cgi.dist 
cp smokeping.cgi.dist smokeping.cgi

2. 修改配置文件

配置 bin/smokeping 
vi /usr/local/smokeping/bin/smokeping 
在这个文件里面我们需要修改前面两个 lib 和后面 config 文件的 path。 
两个 lib 分别是 smokeping 的 lib 和 rrdtool 的 lib (红色为修改后的内容) 
#!/usr/sepp/bin/perl-5.8.4 -w 
#!/usr/bin/perl -w 
use lib qw(/usr/pack/rrdtool-1.2.23-mo/lib/perl); 
use lib qw(/usr/local/rrdtool-1.3.6/lib/perl); 
use lib qw(lib); 
use lib qw(/usr/local/smokeping/lib); 
use Smokeping 2.003006; 
Smokeping::main("etc/config.dist"); 
Smokeping::main("/usr/local/smokeping/etc/config"); 
配置 htdocs/smokeping.cgi,方法与上面相同 
vi /usr/local/smokeping/htdocs/smokeping.cgi 
************************ 
#!/usr/sepp/bin/speedy -w

#-*-perl-*- 
#!/usr/bin/speedy -w 
# -*-perl-*- 
# use lib qw(/usr/pack/rrdtool-1.0.33-to/lib/perl); 
use lib qw(/usr/local/rrdtool-1.3.6/lib/perl/); 
# use lib qw(/home/oetiker/data/projects/AADJ-smokeping/dist/lib); 
use lib qw(usr/local/smokeping//lib); 
use Smokeping 2.003006; 
Smokeping::cgi("/home/oetiker/data/projects/AADJ-smokeping/dist/etc/config"); 
Smokeping::cgi("/usr/local/smokeping/etc/config"); 
配置 etc/config 
vi usr/local/smokeping/etc/config   将以下几行替换为已经安装的相关软件的路径 
*** General *** 
imgcache = /home/oetiker/public_html/smokeping-ms/cache 
imgcache = /usr/local/smokeping/htdocs/cache 
imgurl = cache 
imgurl = cache 
datadir = /tmp/smokeping-ms/data 
datadir = /usr/local/smokeping/var 
piddir = /tmp/smokeping-ms/var 
piddir = /usr/local/smokeping/var 
cgiurl = http://some.url/smokeping.cgi 
cgiurl = http://本机IP/htdocs/smokeping.cgi ; 
smokemail = /home/oetiker/checkouts/smokeping/trunk/software/etc/smokemail.dist 
smokemail = /usr/local/smokeping/etc/smokemail 
tmail = /home/oetiker/checkouts/smokeping/trunk/software/etc/tmail.dist 
tmail = /usr/local/smokeping/etc/tmail.dist 
*** Presentation *** 
template= /home/oetiker/checkouts/smokeping/trunk/software/etc/basepage.html.dist 
template = /usr/local/smokeping-2.3.6/etc/basepage.html 
*** Probes *** 
+ FPing 
binary = /usr/sbin/fping 
binary = /usr/local/sbin/fping 
#** Database *** 
step = 60 
pings = 10

修改ping的频率,默认为300秒ping20 次,我们可以根据需要调整,这里修改为60秒 ping 10次。 
*** Targets *** 
#================================= 
#这里用于配置监控目标,以+号分层,+为首页,++为子层,我们以百度和搜狐为例。 
+TEST              
menu= TEST 
title = TEST 
++ baidu         
menu = baidu 
title = baidu 
host = 115.239.210.27 
++ sohu 
menu = sohu 
title = sohu 
host = 121.14.0.97 
#================================= 
3. 添加目录

建立下面三个目录用于保存smokeping的数据等

mkdir /usr/local/smokeping/data

mkdir /usr/local/smokeping/var

mkdir /usr/local/smokeping/htdocs/cache

chown –R apache:apache /usr/local/smokeping

4. 修改apache配置文件

vi /etc/httpd/conf/httpd.conf 
添加下面内容: 
Alias /smokeping/ "/usr/local/smokeping/htdocs/" 
Alias /cache/ "/usr/local/smokeping/cache/" 
<Directory "/usr/local/smokeping/htdocs"> 
Options FollowSymLinks ExecCGI 
AllowOverride None 
AddHandler cgi-script cgi 
Order allow,deny 
Allow from all 
</Directory>

三.启动 
1.重启apache 
service httpd restart

2.重启smokeping 
/usr/local/smokeping/bin/smokeping restart

完成。

效果图:

http://www.cnblogs.com/ahwwmb/archive/2013/03/12/2955678.html

一款监控网络状态的好工具- Smokeping的更多相关文章

  1. 用c#监控网络状态

    1.查询当前网络状态: using Microsoft.VisualBasic.Devices; //判断当前网络连接状态 Network nw=new Network(); if(nw.IsAvai ...

  2. Android中判断网络连接是否可用及监控网络状态

    Android中判断网络连接是否可用及监控网络状态 作者: 字体:[增加 减小] 类型:转载 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android ...

  3. C# 利用性能计数器监控网络状态

    本例是利用C#中的性能计数器(PerformanceCounter)监控网络的状态.并能够直观的展现出来 涉及到的知识点: PerformanceCounter,表示 Windows NT 性能计数器 ...

  4. iOS实时监控网络状态的改变

    在网络应用中,有的时候需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体 ...

  5. iOS--实时监控网络状态的改变

    在网络应用中,有的时候需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体 ...

  6. Android 监控网络状态

    public static boolean isNetworkAvailable(Context context) { ConnectivityManager connectivity = (Conn ...

  7. .Neter玩转Linux系列之五:crontab使用详解和Linux的进程管理以及网络状态监控

    一.crontab使用详解 概述:任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类: (1)系统工作:有些重要的工作必须周而 复始地执行. (2)个别用户工作:个别用户可能希望执 行 ...

  8. Android网络状态监控

    Android 监控网络状态 在Android网络应用程序开发中,经常要判断网络连接是否可用,因此经常有必要监听网络状态的变化.android的网络状态监听可以用BroadcastReceiver来接 ...

  9. iOS 检测网络状态 自动判断 认为提示网络改变

    检测网络状态 在网络应用中,需要对用户设备的网络状态进行实时监控,目的是让用户了解自己的网络状态,防止一些误会(比如怪应用无能)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验WIFI\3G ...

随机推荐

  1. CLR thread pool

    Thread Pooling https://msdn.microsoft.com/en-us/library/windows/desktop/ms686756(v=vs.85).aspx Threa ...

  2. Nginx+Tomcat实现反向代理及动静分离

    Nginx+Tomcat实现反向代理及动静分离 时间 2014-07-07 15:18:35  51CTO推荐博文 原文  http://yijiu.blog.51cto.com/433846/143 ...

  3. PHP使用Mysql事务

    <?php //数据库连接 $conn = mysql_connect('localhost', 'root', ''); mysql_select_db('test', $conn); mys ...

  4. ABBYY导出结果为PDF注意事项

    使用ABBYY FineReader Pro for Mac OCR文字识别软件识别文档时,可以将已识别的文本保存到文件中,还可以通过电子邮件发送已识别的文本,只要输出格式受FineReader支持. ...

  5. 查看jquery绑定的事件函数

    作为技术狂热分子的职业本能,看到一个技术产品的功能,总会忍不住想知道它是怎么被实现的.比如我每每看到别人网站一个很炫的界面或者很酷的功能,就忍不住打开了浏览器的控制台... 好,不扯远,说说当你想看到 ...

  6. 【转】CSS中怎么让DIV居中

    来源:http://www.cnblogs.com/DebugLZQ/archive/2011/08/09/2132381.html     CSS 如何使DIV层水平居中 今天用CSS碰到个很棘手的 ...

  7. 【转载】写runat="server"有什么用

    aspx运行时会被编译,其中没有runat="server"属性的html标签会被直接写入response,有runat="server"属性的html标签会转 ...

  8. windows下android开发环境搭建

    JDK的安装和Java环境变量的设置 1 JDK下载地址 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.h ...

  9. shopex 网店系统安装教程

    centos上配置shopex环境(LNMP)  安装包地址: http://download.csdn.net/detail/nanmu1258/9109297 软件默认下载至在/opt/local ...

  10. MySQL 利用SQL线程对Binlog操作(转)

    背景: 对于MySQL的binlog的查看都是用其自带的工具mysqlbinlog进行操作的,其实还有另一个方法来操作binlog,就是Replication中的SQL线程去操作binlog,其实bi ...