NMS

Page 1

Linux30%報告-OpenNMS

指導老師:楊宏文、彭學勤 姓名:范莉芳(80 期)


NMS 的簡介 NMS 為 Network Management System,網路管理系統。 有鑑於網路環境的日益複雜與龐大,在企業中早已行之有年的使 用了 NMS 來管理網路環境。早期的網路設備的功能不像今日如此完 善,而是透過類似序列 port 串接終端機,而藉由終端機的顯示來登 入網路設備,並經由網路設備所附的軟體來對網路進行管理。

NMS 的示意圖-早期

雖然這網路管理方法至今還是常常用得到,但我們將網路設備 的規則與連線設定都完成後,最重要的是監控這些設備的流量,查看 是否有異常…等狀態,但隨著網路環境的擴大,公司監控的節點愈來 愈多,網路管理者沒有這麼多的時間一一道設備前去查看,所以許多 的網路設備廠商與 IT 網路解決方案的提供者,紛紛推出互動性與操


控性更佳的 NMS 軟體,並且這些軟體也都具備 Web 的 GUI console 界面。

NMS 的示意圖-現在

在 NMS 的領域裡,HP 的產品可以說相當齊全,例如:Open View 平台裡有數個針對不同特定網路管理的軟體,以供企業針對自己本身 不同的需求而選擇相關服務。以及 IBM 的 Tivoli NetView 產品為一個 追蹤 SNMP traps、診斷網路狀態…等的企業 NMS 解決方案,以及 AdventNet 的眾多網路管理系統商品,也是不錯的選擇。


為什麼要選擇 OpenNMS 上述介紹這些由企業所主導的大型 NMS 解決方案,一般來說價 碼都是位於天價之上,而且通常程式本身太過龐大,因此需要運算能 力夠好的電腦來運作 NMS,這情況與成本對公司來說都是不小的負 擔。 所以在 1999 年時,一群有經驗的系統工程師與網路顧問,為了 改善的情況,展開了 OpenNMS 的計畫,一直到 2002 年,終於孕育 了 OpenNMS 的 1.0 版,從此在開放原始碼下有了一套媲美企業級的 網路管理系統。 而當初 NMS 的設計大多是以網路設備的角度來開發,專注於 OSI 模型第三層以下的網路設備,而這理念只會偵測這些設備是正常運作, 如果是,則假設整體網路環境都為正常運作,但當網路相關應用軟體 與設備不斷增加時,我們不得不導入 SNMP 協定來幫助網路管理,並 且甚至連 SNMP 不敷應用時,還得另外開發模組來協助管理,所以這 類的網管軟體都是需要有相當經驗的網路管理工程師或顧問級從事, 但這樣未免對網路管理上過於繁複。 而 OpenNMS 主要是以事件導向來呈報給使用者,以獲知目前 的網路設備節點的狀況是否正常,所以當你用瀏覽器來操作 OpenNMS 時,將會如同閱讀公司營運狀況般的列表一樣的清楚,這


是以使用者角度開發最大的優點,基於這個理由,管理者可以輕易的 熟習 OpenNMS 的操作模式。


OpenNMS 的架構 OpenNMS 的整體架構,主要分為三個層次的主架構,在這三個 主架構下分別負責不同的網路管理工作。

OpenNMS 管理系統架構圖

 後端程式-關聯式資料庫管理系統(RDBMS) 這一層架構可說是整個 OpenNMS 中最重要的一環,因為所 有收集到的資料與資料間的互相關聯性,甚至查詢的功能,若沒 有資料庫做為後端應用程式來處理,則當我們在使用與應用收集 的資料時,將會變得很沒有效率,並且容易產生資料的錯誤。因 此使用資料庫來處理我們所收集的網路資訊,是很多網路服務所 使用的架構模式;像是很多的電子商務網站也採用這類的架構,


以 ASP 或 PHP 程式來撰寫網頁程式,而所撰寫的網頁程式將對資 料庫要求與查詢相關資料,然後在經過程式運算傳送轉換網頁, 並將結果呈現給使用者。  中介程式-核心程式與管理機制程式 這一部分的架構主要便是以 Java 程式,撰寫出來的 OpenNMS 程式的主體,所以稱為中介程式,主要是因為它剛好 負責後端資料庫與前端使用者介面之間的溝通橋梁,當我們使用 OpenNMS 的 Web UI 界面時,便是透過一支專為特殊目的所開發 的 JAVA 程式到網路截取資料存放到資料庫,再從資料庫中取出 資料來呈現在瀏覽器上。這些程式所模組化的服務便構成了 OpenNMS 的主架構,這些模組化程式一共有六大類: 1. 資料收集與處理管理程式 2. 事件呈報管理程式 3. 資產清單管理程式 4. 工作流程(workflow)管理程式 5. 使用者角色管理程式 6. 自訂特殊用途外掛模式 此六大類模組程式也架構了 OpenNMS 的特徵,因此為 OpenNMS 運作的核心程式。


 前端程式-使用者介面與管理者介面 最端資料程式便是與我們最息息相關的界面,無論是管理、追蹤、 監控、呈報以及資料查詢,皆可透過 Java servlet 的技術,以 Web 瀏覽器的界面來讓網路管理人員進行操作。透過 Web 界面管理, 有幾個好處: 1. 可以遠端管理與監控網路狀態。 2. 不受作業平台類型的限制,只要該系統具有瀏覽器程式,即 可進行遠端管理。 3. 占用系統資源少,OpenNMS 並非唯一個大型的封裝程式,需 要長時間大量佔用系統記憶體與 CPU 時間,當在資料收集回 來後,到下一次執行的延遲時間內,程式便暫時停止,而進 行資料庫的運作,因此大部分只處理資料的存放與運算。


OpenNMS 的特徵 1. 節點偵測:遵循 ICMP 協定,以 ping 程式送出查詢封包,並且達 到偵測網路節點的功能。

Search:當你管理的節點設備一多時,就可以利用該功能來搜 尋眾多節點中的某一個或是多個節點。可以用設備名稱 (Name containing) 來搜尋你已知的設備名稱,也可以用IP 來搜尋 (TCP/IP Address like)。


Outages:在此將會列出OpneNMS 偵測到有問題的節點。

2. 事件導向:當偵測到網路節點存在並楚瑜連線狀態時,OpenNMS 會開始監聽並收集每個網路截點目前提供的網路服務,然後將這 些收集到的資訊都視為事件(events),在自動建立一個以物件為導 向為主的網路管理環境。

3. 登記事件功能:當開始收集到足夠多的網路服務資訊時, OpenNMS 會再一次確認這些事件是否正常運作,如果是將登記 (poll)這些網路服務的狀態訊息;若此服務已停止回應或無法判定,


OpenNMS 會將此事件登記為節點耗損或節點損壞(也許節點不是 真的耗損只是關機,但此資訊可以了解目前維護的設備中有無不 正常離線的紀錄)。 4. 事件通報:當事件被登記後,OpenNMS 還會貼心地在通報 (notification)功能終將每一個事件條列式的通知使用者,這可以讓 使用者隨時掌握網路設備的現況。

5.

資產盤點功能:對於網路管理人員來說,隨時對於所管轄範圍 內的設備進行清查,可以有效的掌控所擁有的網路規模。


6. 表現與回應報告:以 RRDtool 將各網路節點設備的使用情況,像 是 CPU 使用率、網路介面的流量統計等,畫出對時間的序列圖 表。


OpenNMS 建置相關訊息 版本:使用 VMWare_7_1 虛擬機器以 sles10 安裝 OpenNMS 安裝套件 : jdk-1_5_0_22-linux-i586-rpm.bin(以google搜尋即可) postgresql-8.1.4 (yast) postgresql-lib-8.1.4 (yast) postgresql-server-8.1.4 (yast) postgresql-pl-8.1.4 (yast) tomcat5-5.0.30-27.2 (yast) tomcat5-webapps-5.0.30-27.2 (yast) tomcat5-admin-webapps-5.0.30-27.2 (yast) opennms-1.2.9-1_suse10.i586.rpm opennms-docs-1.2.9-1_suse10.i586.rpm opennms-webapp-1.2.9-1_suse10.i586.rpm (http://fr2.rpmfind.net/linux/rpm2html/search.php?query=opennms ,這裡可 搜索到opennms的rpm檔) 建置流程 :

安裝OpenNMS 相依的Java 套件 OpenNMS 主要是用Java 開發的,需要安裝Java


1.將jdk 套件變更為可執行權限 #chmod +x jdk-1_5_0_22-linux-i586-rpm.bin 2.執行安裝動作 #./jdk jdk-1_5_0_22-linux-i586-rpm.bin 讀完接著輸入 yes 進行安裝

進行安裝

3.設定java 環境變數 #vi /etc/profile 於最後面加上 JAVA_HOME="/usr/java/jdk1.5.0_22" PATH="$PATH:/usr/java/jdk1.5.0_22/bin"


OPENNMS_HOME="/opt/OpenNMS" export JAVA_HOME PATH OPENNMS_HOME 4.重讀環境變數 #source /etc/profile 5.分別輸入jar,java,javac,javah 指令檢查是否java 能 正常運作。(如正常會出現指令資訊)

6.檢查JAVA_HOME、PATH 變數 #echo $JAVA_HOME /usr/java/jdk1.5.0_22 #echo $PATH 最後會顯示/usr/java/jdk1.5.0_22/bin


7. 安裝postgresql 套件 OpenNMS 的資料庫是建立在 PostgreSQL,所以你的系統上必須已經安裝 好PostgreSQL 7.4 以上版本及其他PostgreSQL 的相關套件,OpenNMS 的說 明需要有postgresql-lib、postgresql-server、postgresql、postgresql-python,這四 個套件才能夠安裝 OpenNMS 喔!

#yast -i postgresql postgresql-lib postgresql-server \ >postgresql-pl (如果一行不夠打時,可以在尾端輸入\ ,便跳到下一行再繼續輸入) 啟動postgresql #service postgresql start

8.修改pg_hba.conf 只有本機使用者才可以存取該資料庫所有 資料。 #vi /var/lib/pgsql/data/pg_hba.conf 在最底下修改 local all all

trust

host all all

127.0.0.1/32

trust

host all all

::1/128

trust

9. 設定PostgreSQL >vi /var/lib/pgsql/data/postgresql.conf 49 行拿掉註解 listen_addresses = `localhost' 只聆聽本機端


53行 max_connections = 256

93 行 shared_buffers = 1024

重新啟動postgresql 服務 #service postgresql restart 10.安裝Tomcat5 Tomcat 是一個網頁伺服器,它用來產生HTML 頁面。

#yast -i tomcat5 tomcat5-webapps \ >tomcat5-admin-webapps 開啟Tomcat 服務 #service tomcat5 start 11.安裝opennms 主程式 #rpm -ivh opennms-1.2.9-1_suse10.i586.rpm


#rpm -ivh opennms-docs-1.2.9-1_suse10.i586.rpm #rpm -ivh opennms-webapp-1.2.9-1_suse10.i586.rpm --nodeps

11.以runjava 搜尋JRE (-s 是搜尋,-S 是指定) #/opt/OpenNMS/bin/runjava -s

建立資料庫 #/opt/OpenNMS/bin/install -disU

出現Installer completed successfully! 表示成功。

建立網頁應用程式,讓opennms 可使用tomcat 函式庫 #/opt/OpenNMS/bin/install -y -w /var/tomcat5/webapps/ -W


/var/tomcat5/server/lib

12.編輯所要監看的IP 區間範圍 #vim /opt/OpenNMS/etc/discovery-configuration.xml 01 <discovery-configuration threads="1" packets-per-second="1" 02 initial-sleep-time="300000" restart-sleep-time="86400000" 03 retries="3" timeout="800"> 04 05 <include-range retries="2" timeout="3000"> 06 <begin>192.168.0.1</begin> 07 <end>192.168.0.254</end> 08 </include-range> 09 10 <include-url>file:/opt/OpenNMS/etc/include</include-url> 11


12 </discovery-configuration>

13.啟動OpenNMS #service opennms start 14.設定開機啟動 #chkconfig postgresql on #chkconfig tomcat5 on #chkconfig opennms on 以用下列兩個方法檢視OpenNMS 執行狀況: #service opennms status #opennms -v status


登入您的 OpenNMS 使用瀏覽器開啟這個連結:http://localhost:8080/opennms/ 或換成OpenNMS 所在的機器IP。 OpenNMS 預設的管理帳號: admin ,密碼: admin 。

如圖:opennms並沒有起來 = =


Tomcat網頁有起來,但卻無法連到OpenNMS管理介面。 為什麼連不到至今還找不出原因,有試過用不同的版本搭配,結果是 一樣,只有使用fedora來安裝時有出現管理畫面,但,現在要的是SuSe 的OS,所以還在找問題中。 這些步驟是按照上一期的SOP做的,使用的套件與版本是一樣,但結 果卻出不來,希望接下來有網管有興趣的學弟妹們可以研究一番,看 是哪個步驟有錯,或是少了甚麼。 雖然這次30%沒有成功,很失落= = ,一直不斷的用不同的版本 在try,由windows2003換成windows7,由VMware6.5到7.0到7.1,裡頭的 套件java程式試過最新的版本jdk-1_6……,opennms試過1.2.9和1.3.1… 等,也許不是版本的問題,就等有心的學弟妹去研究了。 起初是因為TCP/IP報告是研究SNMP協定,所以Linux想繼續研究 網管,上網找相關資料時,以為自己找到很多,之後才發現跟我實驗 要做的LAB並不相同,所以在建置步驟只參考了一份上一期學長的, 我還會繼續sursery如呵解決連到opennms的問題,若有新的發現,會在 上傳供大家參考。


參考資料: 1. http://martinliu.cn/2007/12/14/opennms-monitoring-ms-windows/ 2. http://www.novell.com/coolsolutions/feature/19058.html 3. http://martinliu.cn/2007/12/opennms-monitoring-ms-windows.html 4. NETWORK MANAGEMENT -有效率的網路管理方案建議 BY 350學長 5. 資策會網工班79期 SuSE Linux Lab OpenNMS 鍾家銘 6. 蔡一郎 陳盈良(2003),LINUX網管技術。


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.