- 浏览: 214976 次
- 性别:
- 来自: 北京
最新评论
-
xupo:
tzg157 写道qinkangwencai 写道别误导大家了 ...
Java多线程编程环境中单例模式的实现 -
xupo:
qinkangwencai 写道别误导大家了行吗?double ...
Java多线程编程环境中单例模式的实现 -
qaddafi2008:
内部静态类的方法貌似是目前最好的解法了!
Java多线程编程环境中单例模式的实现 -
sanshizi:
学习了
Java多线程编程环境中单例模式的实现 -
tzg157:
qinkangwencai 写道别误导大家了行吗?double ...
Java多线程编程环境中单例模式的实现
一、OpenNMS简介
OpenNMS的开发基于TMN及FCAPS这两个模型。
电信管理网络(TMN)是由 ITU-T 推荐 M.3000于1985年提出作为一种应用于电信服务供应商所持有的运营支持系统(OSS)的参考模型。就概念而言,TMN 是一种相互连接不同类型OSS 组成部分和网络元素的结构体系。同时 TMN 也包含标准化接口和协议,用于交换 OSS 组成部分和网络单元间的信息,以及网络管理所需的全部功能。
TMN 模型组成主要包括以下四层:
(1)商业管理层(Business Management Layer):执行商业方面的相关功能,分析发展趋势如质量问题,提供记帐基础和其它财务报告。
(2)服务管理层(Service Management Layer):执行网络服务处理功能:定义、管理和服务控制。
(3)网络管理层(Network Management Layer):执行网络资源分配功能:配置、控制和网络监督。
(4)单元管理层(Element Management Layer):包含个人网络单元的处理功能。即:警报管理、信息处理、文件备份、日志、硬件和软件的维护等。
在 TMN 模型的每一层,对应五大功能区域(简称为 FCAPS)定义如下:
(1)故障管理(Fault Management):故障识别、隔离、报告和记录。
(2)计费管理(Accounting Management):收集、缓冲、付款传送和计费信息。
(3)性能管理(Performance Management):收集、缓冲、有关网络最优化的运行统计传送、以及容量编制(Capacity Planning)
(4)配置管理(Configuration Management):网络设备安装、状态和参数设置、网络容量配置。
(5)安全管理(Security Management):认证功能管理:OSS 的同时使用处理,阻止非法用户的入侵。
首先OpenNMS提供了较为全面的故障管理(Fault Management),在OpenNMS中,有三种不同且互相独立的方式来发现故障:
(1)服务定期查询(周期性检查服务运行情况)
(2)收到自动发送的通知消息(如SNMP trap)
(3)性能数据的阈值检查
此外OpenNMS也提供了较为完善的性能管理(Performance Management),在OpenNMS中是通过称之为数据收集器提供的数据收集接口来定期收集性能数据,目前的实现中,包括诸如SNMP,JMX,HTTP及NSClient,对于收集的性能数据可以用于显示性能图表,阈值检查,TopN分析等。
那么对于FCAPS剩下的三项即配置管理、计费管理、安全管理,OpenNMS只在某种程度上实现了其部分功能。例如对于计费功能,OpenNMS只提供了对于网络的使用情况的数据、系统资源诸如带宽、CPU、磁盘空间等的使用情况。
对于配置管理,OpenNMS提供了资产管理,另外还可以通过UI开启/关闭设备接口,也只仅限于这些功能。
对于安全管理,提供了对于SNMPv3的支持,另外还提供了基于用户的访问控制及LDAP安全模型。
从TMN的四层模型来看,OpenNMS主要提供了服务管理层(SM)及网络管理层(NM)的功能。
OpenNMS概念解释:
接口(Interface) :任何被指定给网络设备, 能响应网络要求的IP地址, 或者, 任何透过SNMP协议回报自称是接口者.
服务(Service) :任何单一, 预先定义指定给一个接口的网络服务.
节点(Node) :任何拥有一个以上接口的实体设备. 一个节点可能有数个接口, 每个接口可能有数个服务. (某一特定 的接口是否"属于"某个节点可以用几种不同的方式来决定, 例如SNMP或NetBIOS名称. 然而, 如果某个特定接口并没有归属于任何节点的信息, 就会被表示为一个独立的节点. )
事件(Event) :任何重大发生或发现.
故障(Outage) :一个暂时性的运作停摆, 其特征为无法和一个监控的服务沟通.(无法轮询)
告警(Notice) :当特定事件产生的时候, 系统可以发出告警. 发出告警意味着用电邮或传呼(pagers)或其它方式, 告知使用者或一群使用者, 所发生的事件; 某些情形下可能会触发修正动作.
二、OpenNMS架构设计
流程说明:
首先通过Ping用户配置的网络IP地址范围进行节点发现,对应于图中的Discovery及ICMPD,当发现到新的IP地址后(即能够Ping成功),通过事件机制(对应Eventd),通知Capsd进行服务扫描,以发现该IP上所运行的服务。服务发现完成后,则由Poller开始定期对这些IP上的服务进行定期检查,一旦发现服务不能访问,则通过事件机制产生故障信息。对于支持SNMP的设备,则通过SNMP定期收集性能数据,并将结果保存在RRD文件中,以供GUI显示。
OpenNMS 是一个“以用户为中心”的 NMS,它将典型的网络管理员(或网络管理团队)作为自己唯一关注的焦点,以此来决定所需要的功能。最初,团队中一些成员来自网络管理顾问,他们把自己的知识很好地付诸于实践 ― 围绕网络管理员通常所关注的对象、任务和工作流来定义其运作模型。这与一些商业 NMS 产品(这些产品因其厂商的沿袭性而通常以设备、网络或软件服务为中心)形成了对比。
如果不考虑其具体应用的领域、代码沿袭或厂商,许多 NMS 产品在层次组成上都有类似的概念。下图显示了这种常见的组成。
这个组成通常有三层。前端这一层与管理的设备和服务的网络、使用该系统的用户和外部系统连接在一起。中间这一层包含大量逻辑,这些逻辑提供了 NMS 各种特性。后端这一层负责保存和操作数据。
由于要动态(但还要健壮)地跟踪复杂的相互关系和大量信息,NMS 在后端这一层不可避免地部署了商业级关系数据库管理系统(RDBMS)。
在第一层内,监控、管理和控制组件通常包含许多必须在 NMS 操作期间执行的并发任务。第一层负责发现活动网络,轮询服务和设备是否出故障,以及截获或处理来自设备、服务或更高层分布式代理的异步事件。这个组件还可以执行由 NMS 中间层中的配置逻辑、供应逻辑、工作流执行器或其它定制逻辑所驱动的操作。
在前端这一层还有用户界面组件。NMS 可以有“胖客户机 GUI”界面,以及易于定制的基于 Web 的用户界面。报表工具驻留在这一层,它可以与 UI 交互以提供实时的软拷贝报表和批处理形式的硬拷贝报表。
第一层中的外部接口组件可以处理给用户和/或外部系统的通知。这可以采取寻呼、电子邮件、电话或发给外部管理系统的特定事件等形式。API 和扩展插件基础结构使得可以定制 NMS,以及将 NMS 与其它系统连接在一起,或者将 NMS 与其它系统集成。
中间层是 NMS 逻辑所在之处。它向 NMS 提供个性化以及与众不同的特性集合。还提供一些常见的特性,譬如,库存或资产管理、数据收集和分析、用户或角色管理以及工作流管理/执行。
库存(或资产)管理是大多数 NMS 产品的主要功能。但其中所跟踪的项目随不同的 NMS 而各不相同,譬如设备、线路、服务器、安装的软件服务和应用程序等。该组件的用户界面和应用程序逻辑必须能灵活地适应可能要管理的各种项。
数据收集和分析特性可以提供有关所管理设备和服务的当前和历史统计。它还可以提供统计分析,从而揭示网络和子网的性能以及设备/服务的可用性等。该组件还可以与工作流执行逻辑交互以处理定制的工作流。
用户和角色管理组件提供对 NMS 不同级别的访问。大多数大型网络是由一个团队或多个团队的人员来管理的。分配给用户的角色可以用在定制安全策略的设计和实现中,以及定制的工作流和事件升级流中。
工作流管理和执行是针对短期和长期管理任务的管理和自动执行而提供的。为了使 NMS 适应不同组织对各种业务的需求,定制自动化工作流是有必要的。
虽然并不是每个 NMS 都会具备所有这些组件 ― 甚至有些可能会有其它更专门化的变体 ― 但这里所提到的组件已足够用来概述 NMS 的组成部分。
下图显示了OpenNMS的组件图:
在后端这一层,OpenNMS 使用 PostgreSQL作为它的 RDBMS。在前端这一层,它使用 Apache Jakarta Tomcat免费的 JSP 和 servlet 技术来提供灵活的可定制的用户界面。也可用以前基于 Perl 的用户界面。有几个管理实用程序是用 UNIX shell 脚本和 Perl 编写的。OpenNMS 使用一套与中的监控、管理和控制组件相对应的并发 Java 任务来提供该功能。在上图中用圆圈表示的就是这些并发任务。
OpenNMS使用的端口
httpAdaptor 8180
rtc 5817
jetty 8980
jetty / https 8443
jetty / ajp 8981
syslogd 514 or 1514
snmp trap 162
(vulnscan 1241)
三、OenNMS并发任务
OpenNMS 的监控、控制和数据收集特性是由一组称为守护程序(BSD UNIX 约定)的并发任务来处理的。下表统计了这些并发管理任务。
并发任务 |
守护程序名称 |
描述 |
操作守护程序 |
actiond |
自动操作执行工具,用于根据入站事件自动操作(工作流)。 |
收集守护程序 |
collectd |
从受管节点收集数据。 |
功能守护程序 |
capsd |
对所发现的节点执行功能检查。它通常检查某个接口的端口,看它是否支持已知的服务协议。 |
DHCP 守护程序 |
dhcpd |
为 OpenNMS 提供 DHCP 客户机功能。 |
发现守护程序 |
discovery |
对受管网络节点进行初始的发现以及持续进行定期发现。 |
事件管理器守护程序 |
eventd |
管理来自其它并发任务的事件,并将它们存储到 RDBMS |
通知守护程序 |
notifd |
向用户执行外部通知。 |
故障管理器守护程序 |
outaged |
合并事件,以为每个受管节点/服务提供持续的历史故障视图。 |
轮询器守护程序 |
pollerd |
定期轮询受管节点/服务,以决定操作状态。 |
RTC 管理器守护程序 |
rtcd |
实时收集数据,为用户定义的各类受管节点/服务提供可用性信息。 |
SNMP 陷阱守护程序 |
trapd |
处理 SNMP 陷阱(事件)。 |
阈值服务守护程序 |
threshd |
根据属性值是否达到指定的阈值来监控受管节点/服务。 |
四、OpenNMS的扩展
OpenNMS 带有健壮的、用于受管设备/服务的 SNMP 支持。SNMP 是目前业界用于可管理设备/服务事实上的标准。该标准使 OpenNMS 可以管理大量在 TCP/IP 网络上存在的设备。
在 SNMP 之外,OpenNMS 还可以检测和管理现在流行的软件服务(FTP、文件服务器和数据库服务器等)。它提供了一套特定于服务的插件(用于协议扫描)和监控程序(用于轮询)来完成这些任务。通过创建新的插件和监控程序,可以扩展 OpenNMS 以检测和监控任何新的设备或服务 ― 包括支持 JMX 的 ClickMeter 应用程序。
OpenNMS 的发现守护程序( discovery )负责在初始以及以后的执行过程中发现受管网络。一旦 discovery 发现一个节点(通常通过 ICMP ping),它会请功能守护程序( capsd )来确定该节点支持什么服务。通过对指定的协议插件集合进行循环处理,该功能守护程序检查所支持的服务。编写一个定制的协议插件使它适合 OpenNMS 的任何新服务非常简单。
五、OpenNMS数据库设计
发表评论
-
RHEL5 利用 CentOS的yum 安装openssl gc++及Nginx
2011-04-12 16:17 122261.确保RHEL5中已经安装了yum[root@xupo~]# ... -
用URL重写来实现会话管理
2011-04-11 11:02 1327通常,会话管理是通过服务器将 Session ID 作为一个 ... -
JAVA实现与Linux通信(通过SSH协议)
2011-03-24 14:47 5788使用InputStream和OutputStream来获得命令 ... -
花生壳配置
2011-03-18 17:22 1030[edgen@rhel54 ~]$ su - root口令:[ ... -
服务器相关配置备忘
2011-03-11 10:28 1290JDK安装配置 1、下载jd ... -
Hibernate C3P0 Maven 配置
2011-02-10 14:55 3000pom.xml中增加: <depe ... -
用blazeDS实现推技术
2010-11-11 10:37 1118http://blog.csdn.net/yangyawen/ ... -
用 Quartz 进行作业调度
2010-09-06 14:46 940http://www.ibm.com/developerwor ... -
工作流
2010-09-06 14:26 1050jbpm4 :http://sourceforge.net/p ... -
《构建高性能web站点》读书笔记
2010-08-13 20:20 1056《构建高性能web站点》读书笔记 http://book.g ... -
Comet:基于 HTTP 长连接的“服务器推”技术
2010-08-13 20:15 890http://czh19860925.iteye.com/bl ... -
(转)关于大型软件重构的一些想法
2010-04-01 20:51 1142做当前这个项目也快 ... -
关于设计模式中各种工厂的理解
2010-04-01 20:46 1062对于Java的工厂模式,简单工厂、工厂方法、抽象工厂之间的区别 ... -
(转)探讨代理模式与Java反射机制的应用
2010-04-01 20:21 1337代理模式,相信大多数人都非常熟悉,常见的实现方式是通过公共接口 ... -
OpenNMS配置指南
2010-03-30 09:54 3219OpenNMS的配置是一个繁琐的过程,由于网上没有系统介绍如何 ... -
java调用javascript :js引擎rhino
2009-10-30 16:04 9273前段时间,在浏览javaeye论坛,看见有人征集如何在java ... -
扩展 Eclipse 辅助和规范开发流程
2009-10-26 15:12 1484本如果市场上的开发工具不能满足您的需要,而自己开发 IDE 又 ... -
How to access eclipse workspace?
2009-10-26 14:36 1354摘要: 在开发eclipse pluin的时候,某些情况下 ... -
作业调度器的JAVA实现(第一篇)--Job Scheduling in Java
2009-09-07 23:41 2874On some projects, you find you ... -
对象缓存管理器JAVA实现(第一篇)---一个简单的对象缓存器实现方式
2009-09-07 23:31 2268As I wrote in a previous post, ...
相关推荐
OpenNMS是开源网络管理平台,它主要用于监控网络设备、服务和应用程序的性能与可用性。这个"opennms1.12.5-1源码下载"标题指的是该平台的1.12.5-1版本的源代码,允许用户深入理解其内部工作原理,进行定制开发或调试...
OpenNMS 的系统架构可以通过系统架构图来了解,包括 Discovery、ICMPD、Eventd、Capsd、Poller 等多个组件。这些组件之间通过事件机制进行交互,以实现网络设备的自动发现、服务扫描、性能数据收集等功能。 二、...
在源代码中,我们可以深入理解openNMS的工作原理和架构设计。这个版本可能引入了新的特性、改进或修复了一些已知问题,以提升系统的稳定性和效率。源代码的分析对于开发者来说至关重要,它允许他们自定义、扩展或...
本文介绍了湖南省疾控中心机房如何应用开源OpenNMS实现网络监控和报警。湖南省疾控中心机房负责本单位内部网络和应用系统外,还部署了全省疾控三级平台和全省免疫规划系统的软、硬件系统。然而,机房建成时部署的...
在OpenNMS文档仓库中,Markdown文件被用作源内容,Jekyll负责将这些Markdown文件转换为具有导航、样式和页面结构的完整网站。 3. **Git版本控制**: 作为开源项目,版本控制至关重要。docs.opennms.com使用Git来管理...
此外,为了更好地协作和遵循最佳实践,开发者可能需要了解OpenNMS的编码规范、项目结构以及如何使用其文档资源。这些信息通常可以在OpenNMS的官方文档或者项目GitHub页面找到。 总之,"ide-setup"存储库为Java...
目录结构应与 OpenNMS 中的相同。 请只复制源文件。 打开 JasperReportExplorer.java 文件并编辑 DEFAULT 值(例如 ONMS_REPORT_DIR)以指向您的报告模板。 这应该是步骤 1 中 src/main/resources/report-templates...
openQRM 是一个开源数据中心管理平台,提供完全的插件结构方式构建,专注于自动化、快速和基于应用的部署、监控和高可用。openQRM 是一个单一管理控制台,用于完成 IT 基础构架和提供良好定义 API,以集成第三方工具...
本文主要介绍了8个轻量级的网络管理工具,这些工具旨在提供设备发现、系统监控、网络流量可视性等功能,帮助管理员应对各种规模的网络环境。以下是这些工具的详细介绍: 1. **Cacti**:作为一款开源网络图形标准...
MIB是SNMP系统中的核心组成部分,它定义了管理对象的结构和命名规则。MIB文件通常以ASCII格式编写,包含了网络设备可管理的属性列表。开发者可能创建了自己的MIB模块,以包含自定义的监控指标,这些指标可能不包含在...
值得注意的是,使用libsigar时,需要处理跨平台兼容性问题,因为不同的操作系统和架构可能有不同的数据结构和获取系统信息的方式。libsigar通过抽象这些差异,提供了一个统一的编程模型,使得开发者无需关心底层细节...
我们搬到了GitHub。... 您可以使用XML配置文件定义多个仪表板。... 目前,以下随动仪表盘随yourDashboard一起提供:-用于OpenNMS中断的仪表盘-用于OpenNMS警报的仪表盘-用于OTRS队列中最新票据的仪表盘-时钟仪表盘
直到2015年11月,安全团队FoxGlove Security的成员详细介绍了如何利用反序列化漏洞攻击最新版本的JBoss、WebLogic、WebSphere和OpenNMS等主流基于Java架构的中间件和框架,实现远程任意代码执行、获取网站服务器控制...
在IT领域,系统升级与迁移是一项常见的任务,对于使用OP5(OpenNMS Horizon)监控系统的用户来说,升级至OP7(OpenNMS Meridian)是一个提升系统性能和功能的重要步骤。本文将深入探讨如何有效地从OP5迁移到OP7,...
下面我们将深入探讨Spumoni的功能、架构以及如何利用其提供的资源进行高效运维。 1. **SNMP监控基础** SNMP(Simple Network Management Protocol)是一种广泛用于网络设备管理的协议,它允许管理员远程收集网络...
我们的目标是获得一个可以工作的SIM(安全基础结构监视器),它能够集成,限定和关联高级别和低级别的安全性和网络事件,从而能够与最近出现在安全性市场上的商业产品竞争。 集成多个开源安全性/网络监视产品以获得...