OpenNMS架構介紹

一、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數據庫設計

 

 

  • 大小: 69.3 KB
  • 大小: 21.4 KB
  • 大小: 14.8 KB
  • 大小: 249.3 KB
發佈了329 篇原創文章 · 獲贊 25 · 訪問量 198萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章