`
hongliangpan
  • 浏览: 319737 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JRobin简介 安全监控, 网络技术

阅读更多

JRobin简介

安全监控 , 网络技术 08月 22nd. 2008, 12:47am

做过网络管理的人,对于MRTG应该不算陌生。MRTG可以不断收集来自SNMP的数据,保存这些数据,并且按照日、周、月、年的方式生成4幅图像及相关说明,很直观的显示出要检测数据的趋势信息。

MRTG是比较早的技术了,后来又出现了RRD技术,是在MRTG技术的基础上发展起来的,更加灵活、更加方便。其应用也不在局限在主要监测网络数 据上了。你可以通过RRD提供的强大功能收集各种各样的信息,并且生成更加复杂的图像。你也可以在自己的应用程序中使用它,因为它提供了丰富接口,方便应 用程序调用。

JRobin是RRD的java版本,其原理是一致的。假如你打算监测计算机的CPU使用率,除了查看当前时刻的数据外,你可能也关心计算机在过去的一天、一周,甚至一个月、一年的CPU使用率,也就是以前一段时间的数据。对于这个要求,需要考虑以下一些问题:

1、数据的采集

获取数据是监测的第一步,根据监测对象的不同,采集数据的方法也不一样,可以通过SNMP获取数据、可以通过外部程序获取数据、可以通过脚本得到数 据、也可以采用Java编写代码来取得数据。这些提供数据的方式,或者说是程序,可以看成是JRobin的数据源。我们不是时时刻刻的采集数据,出于性能 和成本的考虑,通常在每次采集数据之间都会有一个间隔,也就是说在采集一次数据后,等待几秒或几分钟,然后再次采集数据,将这些多次采集的离散数据用图像 方式展示出来,就成了好看直观的曲线。MRTG的采集间隔是300秒,RRD较为灵活,可以以秒为单位自由设置。

2、数据的保存

在每次采集数据后,我们可以将这些数据和采集数据的时刻保存下来,这样方便以后绘制图像。假如每300秒采集一次数据,那么一天需要采集288次数 据。如果打算保存一年的数据,那么数据的个数就是 365 * 288。这样的数据不算多,但是没有大多必要,因为我们对数据关心的程度与采集数据的时间远近成比例,越近的数据越关心。另外,当把这些数据显示在固定大 小的图像上时,并不是数据越多就越清晰。

JRobin采用了所谓的RRD的存储方式。比如,我们打算用四个图像显示一日、一周、一月和一年内的数据,那么我们可以这么保存数据:

(1)保存最近的288个数据,也就是最近一天的数据;

(2)每7个数据保存一个,保存288个,也就是最近一周时间内的的一些数据;

(3)每30个数据保存一个,保存288个,也就是最近一月时间内的的一些数据;

(4)每365个数据保存一个,保存288个,也就是最近一年时间内的的一些数据。

实际处理时,可能并不是简单隔几个保存一个,而是应用一些简单或复杂的算法。比如或许会对多个数据作一个平均,然后保存为一个。

以这种方式保存数据在JRobin中称之为归档(Archive)。数据源于归档的关系可以用下图来简要说明:

3、数据格式

为了达到以上目的,JRobin采用自己的格式来保存数据,这种格式是平台无关的,与RRD的格式不兼容。

JRobin还提供强大的绘制图像的功能,利用其提供的接口,可以很方便的根据数据生成各种样式图像。

举例:

1、定义保存的数据格式,创建数据文件
long end = Util.getTime(), start = end - 7 * 86400;             //截至时间为当前时间,起始时间为一周前
String rrdFile = “demo.rrd”;
// 创建数据文件定义,保存日数据与周数据
RrdDef rrdDef = new RrdDef(rrdFile, start - 1, 300);                           //数据间隔为300秒
rrdDef.addDatasource(”value1″, “GAUGE”, 600, Double.NaN, Double.NaN);   //定义数据源,可以定义多个

//以下定义归档数据,即如何保存数据
rrdDef.addArchive(”AVERAGE”, 0.5, 1, 288);             //输入给数据源的数据每一个都保存下来,保存288笔数据,即保存最近一天的数据
rrdDef.addArchive(”AVERAGE”, 0.5, 7, 288);             //每7笔数据,取平均值,然后保存,保存288笔数据,即保存最近一周的数据
RrdDb rrdDb = new RrdDb(rrdDef);                             //根据数据定义创建数据文件

对于月和年的数据,可以用相同的方式处理。

2、更新数据

采用三角函数生成数据。

for (long t = start; t < end; t += 300) {
Sample sample = rrdDb.createSample(t);
sample.setValue(”value1″, Math.sin(2 * Math.PI * (t / 86400.0)) * 50 + 50);
sample.update();
}

3、生成图形

String pngFile = “”;
RrdGraphDef gDef = null;

//生成最近一天的图形
pngFile = “demoday.png”;
gDef = new RrdGraphDef();
gDef.setFilename(pngFile);
gDef.setWidth(450);
gDef.setHeight(250);
gDef.setImageFormat(”png”);
gDef.setTimeSpan(end - 86400, end);
gDef.setTitle(”JRobin Demo”);

gDef.datasource(”demo”, rrdFile, “value1″, “AVERAGE”);
gDef.line(”demo”, Color.GREEN, “real”);
gDef.gprint(”demo”, “MIN”, “%5.1lf Min”);
gDef.gprint(”demo”, “AVERAGE”, “%5.1lf Avg”);
gDef.gprint(”demo”, “MAX”, “%5.1lf Max”);

gDef.setSmallFont(new Font(”Monospaced”, Font.PLAIN, 11));
gDef.setLargeFont(new Font(”SansSerif”, Font.BOLD, 14));
new RrdGraph(gDef);

//生成最近一周的图形
pngFile = “demoweek.png”;
gDef = new RrdGraphDef();
gDef.setFilename(pngFile);
gDef.setWidth(450);
gDef.setHeight(250);
gDef.setImageFormat(”png”);
gDef.setTimeSpan(end - 7 * 86400, end);
gDef.setTitle(”JRobin Demo”);

gDef.datasource(”demo”, rrdFile, “value1″, “AVERAGE”);
gDef.line(”demo”, Color.GREEN, “real”);
gDef.gprint(”demo”, “MIN”, “%5.1lf Min”);
gDef.gprint(”demo”, “AVERAGE”, “%5.1lf Avg”);
gDef.gprint(”demo”, “MAX”, “%5.1lf Max”);

//如果需要显示中文,以下两条语句比较重要
gDef.setSmallFont(new Font(”Monospaced”, Font.PLAIN, 11));
gDef.setLargeFont(new Font(”SansSerif”, Font.BOLD, 14));
new RrdGraph(gDef);

4、生成的图形如下所示:

(1)按日生成的图形

(2)按周生成的图形

分享到:
评论

相关推荐

    RRD与JRobin

    "JRobin简介.html"和"基于JRobin的CPU使用率监控.html"、"基于JRobin的网络监控管理.html"深入介绍了JRobin的使用方法,包括如何监控CPU使用率和网络状态。JRobin的文件结构和工作原理在"JRobin简介_files"中有所...

    jrobin流量监控代码

    数据源是监控的特定度量,如网络带宽、CPU利用率等,而时序间隔则决定了数据更新的频率。通过调用Jrobin提供的API,我们可以指定数据源的类型(如GAUGE、COUNTER等)和初始值。 2. **更新数据** 更新RRD文件涉及到...

    jrobin-1.5.14.jar和源代码

    - **自定义监控**:任何需要记录和分析性能指标的应用都可以考虑使用JRobin,如数据库性能监控、网络服务响应时间追踪等。 5. **源代码学习路径** 开发者可以首先从主类和关键接口入手,理解数据的存储和读取流程...

    JRobin 流量报表

    Mrtg(Multi Router Traffic Grapher)是网络流量监控的先驱工具,而 JRobin 可以视为 Mrtg 在 Java 平台上的一个替代品。它们都支持 RRDTool(Round Robin Database Tool)的数据格式,使得从 Mrtg 迁移到 JRobin ...

    jrobin-1.5.9-API文档-中文版.zip

    赠送jar包:jrobin-1.5.9.jar; 赠送原API文档:jrobin-1.5.9-javadoc.jar; 赠送源代码:jrobin-1.5.9-sources.jar; 赠送Maven依赖信息文件:jrobin-1.5.9.pom; 包含翻译后的API文档:jrobin-1.5.9-javadoc-API...

    jrobin-1.5.9-API文档-中英对照版.zip

    赠送jar包:jrobin-1.5.9.jar; 赠送原API文档:jrobin-1.5.9-javadoc.jar; 赠送源代码:jrobin-1.5.9-sources.jar; 赠送Maven依赖信息文件:jrobin-1.5.9.pom;...双语对照,边学技术、边学英语。

    jrobin学习例子程序

    学习用jrobin绘图的绝佳例子程序 学习用jrobin绘图的绝佳例子程序

    javaMelody+jrobin jar文件 .rar

    4. **空间效率**:JRobin通过压缩技术减少了存储空间的需求,同时保持了数据的可读性。 5. **多维度查询**:JRobin支持多种时间粒度的查询,方便用户根据需求获取不同时间段的数据。 结合JavaMelody和JRobin,...

    基于Web的网络管理系统.pptx

    4. **JRobin与RRDTool**:JRobin是RRDTool的一个Java实现,用于存储和分析网络性能数据,支持高效、空间优化的数据记录。 【系统设计与实现】 1. **拓扑信息搜索模块**:负责收集网络设备信息,构建和更新网络拓扑...

    JavaMelody javamelody-core-1.52.0.jar jrobin-1.5.9.jar

    总之,`javamelody-core-1.52.0.jar`和`jrobin-1.5.9.jar`是JavaMelody监控解决方案的重要组成部分,它们共同为Java Web应用提供了详尽的性能监控和数据分析能力。通过集成这两个JAR,开发者可以轻松地对应用进行...

    JRobin-开源

    JRobin是RRDTool的100%纯Java替代品,具有几乎完全相同的规格。 如果向RRDTool和JRobin提供相同的数据,则将获得完全相同的结果和图形。 支持所有标准RRDTool操作。

    javamelody.jar和 jrobin.jar

    监控器需要的jar,需在web.xml中配置 &lt;filter-name&gt;monitoring &lt;filter-class&gt;net.bull.javamelody.MonitoringFilter&lt;/filter-class&gt; &lt;filter-name&gt;monitoring &lt;url-pattern&gt;/* &lt;listener-class&gt;...

    jrobin-1.5.9.jar中文-英文对照文档.zip

    ·边学技术、边学英语。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太...

    RRD环形数据库操作.rar

    RRD(Round Robin Database)是一种特殊类型的数据库,主要用于存储时间序列数据,如系统监控、网络流量统计、服务器性能指标等。RRD的核心理念是通过有限的磁盘空间,以固定的时间间隔存储数据点,实现对历史数据的...

    监控JAVA应用的好工具javamelody

    8. **系统资源**:监控服务器的CPU使用率、磁盘空间和网络状态。 jrobin-1.5.9.1.jar则是用于存储和读取监控数据的库,它是基于Rrdtool(Round Robin Database Tool)的一个Java实现。Rrdtool是一种高效的数据存储...

    jave melody监控工具简介

    - 将`javamelody.jar`和`jrobin-x.jar`两个文件从提供的`javamelody.zip`压缩包根目录下复制到待监控Web应用的`WEB-INF/lib`目录中。 - 如果使用Maven构建工具,可以通过添加`javamelody-core`依赖项简化安装流程...

    JavaMelody JAVA Web项目服务器性能监控工具

    另外,它还能够监控系统级别的指标,如CPU使用率、磁盘空间和网络I/O,这些信息对于系统运维人员来说非常宝贵。 集成JavaMelody到你的JAVA Web项目中十分简便。通常只需要在web.xml配置文件中添加相关的监听器和...

    javamelody性能监控jar和war

    7. **安全设置**: 考虑到监控信息的敏感性,JavaMelody允许配置访问权限,只让指定的用户或角色查看监控数据。 8. **国际化支持**: JavaMelody支持多语言界面,包括中文,方便不同地区的用户使用。 9. **可扩展性*...

    开源 tomcat 性能查看工具

    "jrobin-1.5.9.1.jar"是Java Robin(JRobin)的组件,它是JavaMelody的一个依赖库,用于存储和检索监控数据。JRobin是一个纯Java实现的RMON(Remote Monitoring)兼容的数据存储系统,它能够高效地记录和分析时间...

    snmp-tutorial:SNMP教程:Jrobin、SNMP4j

    snmp-tutorialSNMP tutorial :Jrobin、SNMP4jsnmp4j-1x-demoSNMP4j实现同步和异步的GET的示例SNMP4j实现同步和异步的Walk的示例SNMP4j实现Trap的示例SNMP4j实现SET的示例SNMP4j实现GETBLUK的示例robin-demoJRobin ...

Global site tag (gtag.js) - Google Analytics