转载出处:http://njulinq.blog.51cto.com/1257169/280049,转载请说明原出处,谢谢!
OpenNMS introduction:
在OpenNMS的官网上,它被称为第一个开源的、企业级的网络管理平台。它的背后有一个社区在支持(了解开源的人都知道这句话的威力)。开源、企业级,这基本概况出了OpenNMS之于其他网管软件的区别,当然,同其他很多开源软件一样,OpenNMS在这个基础上提供了商业的服务、培训及技术支持,这些就不再是免费的了。
OpenNMS提供了在线试用版http://demo.opennms.org/opennms/,可以迅速的浏览一下它的主要功能。
根据笔者对OpenNMS使用及研究的经验,将逐步展开对OpenNMS的介绍,由外到里,层层深入,有不准确、不完整的地方也希望大家能够提出来,共同学习,目前各类网管软件,参差不齐,开源社区就有好几个,如OpenNMS,Zenoss,Nagios等,商业的就更多了,大的如IBM Tivoli,HP OpenView,Solarwinds,国内的如北塔、网强、游龙等,但在这些琳琅满目的网管软件背后,有些看不见的东西是相通的,甚至是相同的,只要抓住这些看不见的东西,了解了网管软件的本质和共性,也就达到了见微知著、管中窥豹的效果,所以深入研究OpenNMS,从中抓取网管软件的共性也就是本系列文章的目的。
在介绍OpenNMS之前,先了解一下OpenNMS的理论基础。任何一个成功的软件,都需要一个好的理论基础、模型,哪些东西要做,哪些不要做,做成什么样子,数据模型等,决定了这个软件的基础。OpenNMS就是基于TMN及FCAPS这两个模型而开发的。后面文章中将详细介绍OpenNMS是如何实现这两个模型的。
OpenNMS introduction (II)
电信管理网络(TMN)是由 ITU-T 推荐 M.3000于1985年提出作为一种应用于电信服务供应商所持有的运营支持系统(OSS)的参考模型。就概念而言,TMN 是一种相互连接不同类型OSS 组成部分和网络元素的结构体系。同时 TMN 也包含标准化接口和协议,用于交换 OSS 组成部分和网络单元间的信息,以及网络管理所需的全部功能。
TMN 模型组成主要包括以下四层:
- 商业管理层(Business Management Layer):执行商业方面的相关功能,分析发展趋势如质量问题,提供记帐基础和其它财务报告。
- 服务管理层(Service Management Layer):执行网络服务处理功能:定义、管理和服务控制。
- 网络管理层(Network Management Layer):执行网络资源分配功能:配置、控制和网络监督。
- 单元管理层(Element Management Layer):包含个人网络单元的处理功能。即:警报管理、信息处理、文件备份、日志、硬件和软件的维护等。
在 TMN 模型的每一层,对应五大功能区域(简称为 FCAPS)定义如下:
- 故障管理(Fault Management):故障识别、隔离、报告和记录。
- 计费管理(Accounting Management):收集、缓冲、付款传送和计费信息。
- 性能管理(Performance Management):收集、缓冲、有关网络最优化的运行统计传送、以及容量编制(Capacity Planning)
- 配置管理(Configuration Management):网络设备安装、状态和参数设置、网络容量配置。
- 安全管理(Security Management):认证功能管理:OSS 的同时使用处理,阻止非法用户的入侵。
以上五种功能形成了数据和电信方面的所有网络管理系统的基础。下面列出了 TMN 和 FCAPS 映射图:
FCAPS | 故障 | 配置 | 计费 | 性能 | 安全 |
TMN | |||||
业务管理 | No | No | Yes | Yes | Yes |
服务管理 | Yes | Yes | Yes | Yes | Yes |
网络管理 | Yes | Yes | No | Yes | Yes |
元素管理 | Yes | Yes | No | Yes | Yes |
当前电信管理论坛研究了一种称之为(电信运营图)或(增强型电信运营图)的新模型,从而替代了过去的TMN
参考模型与FCAPS之间的映射图
(以上定义来自http://www.networkdictionary.cn/telecom/tmn.php)
那么我们看下OpenNMS是如何实现TMN及FCAPS的:
首先OpenNMS提供了较为全面的故障管理(Fault Management),在OpenNMS中,有三种不同且互相独立的方式来发现故障:
- 服务定期查询(周期性检查服务运行情况)
- 收到自动发送的通知消息(如SNMP trap)
- 性能数据的阈值检查
此外OpenNMS也提供了较为完善的性能管理(Performance Management),在OpenNMS中是通过称之为数据收集器提供的数据收集接口来定期收集性能数据,目前的实现中,包括诸如SNMP,JMX,HTTP及NSClient,对于收集的性能数据可以用于显示性能图表,阈值检查,TopN分析等。
那么对于FCAPS剩下的三项即配置管理、计费管理、安全管理,OpenNMS只在某种程度上实现了其部分功能。例如对于计费功能,OpenNMS只提供了对于网络的使用情况的数据、系统资源诸如带宽、CPU、磁盘空间等的使用情况。
对于配置管理,OpenNMS提供了资产管理,另外还可以通过UI开启/关闭设备接口,也只仅限于这些功能。
对于安全管理,提供了对于SNMPv3的支持,另外还提供了基于用户的访问控制及LDAP安全模型。
从TMN的四层模型来看,OpenNMS主要提供了服务管理层(SM)及网络管理层(NM)的功能。
OpenNMS Architecture
首先通过Ping用户配置的网络IP地址范围进行节点发现,对应于图中的Discovery及ICMPD,当发现到新的IP地址后(即能够Ping成功),通过事件机制(对应Eventd),通知Capsd进行服务扫描,以发现该IP上所运行的服务。服务发现完成后,则由Poller开始定期对这些IP上的服务进行定期检查,一旦发现服务不能访问,则通过事件机制产生故障信息。对于支持SNMP的设备,则通过SNMP定期收集性能数据,并将结果保存在RRD文件中,以供GUI显示。在后续文章中将详细介绍其每一部分的功能。