OpenNMS® 安裝指南

THIS DOCUMENT IS FOR OpeNNMS 1.2! OpenNMS 1.6 IS VERY DIFFERENT, AND THIS INFO MAY NOT APPLY.

安裝 OpenNMS網管系統

OpenNMS 開發團隊

Tarus Balog

DJ Gregor

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/copyleft/fdl.html


目錄

前言 1. 概述
1.1. 關於OpenNMS 1.2. 如何運用這份文件 1.3. 最低需求
2. 安裝前的準備工作
2.1. 必要的套件:Java
2.1.1. 在Debian上安裝Java 2.1.2. 在其他系統上安裝Java
2.2. 必要的套件:Tomcat4
2.2.1. 在Debian Sid上修改Tomcat4 2.2.2. 在Fedora 2和3上安裝合適的Tomcat4 2.2.3. 在SuSE Linux Pro 9上安裝Tomcat4 2.2.4. 客製化Tomcat4
2.3. 必要的套件:RRDtool 2.4. 必要的套件:PostgreSQL
2.4.1. 客製化postgresql.conf檔案 2.4.2. 客製化pg_hba.conf檔案 2.4.3. 在Red Hat Linux 7上安裝PostgreSQL 2.4.4. 在Solaris上建立PostgreSQL資料庫
2.5. 必要的套件:curl 2.6. 非必要的套件:metamail
3. 安裝OpenNMS
3.1. 執行首次安裝
3.1.1. 安裝於Debian Linux 3.1.2. 安裝於以RPM為基礎的Linux發行版本 3.1.3. 安裝於Solaris 3.1.4. 安裝於Mac OS X 3.1.5. 從程式原始碼安裝
3.2. 幫裝好的舊版升級
3.2.1. OpenNMS相關資料之存放位置 3.2.2. 升級之前……請先備份!
3.3. 運行安裝程式(installer)
3.3.1. 為OpenNMS設定Java 3.3.2. 運行安裝程式(installer)來設定PostgreSQL資料庫 3.3.3. 運行安裝程式(installer)來設定網頁應用程式
4. 開始使用OpenNMS
4.1. 設定發掘(discovery) 4.2. 啟動PostgreSQL,Tomcat4和OpenNMS 4.3. 登入網頁應用程式 4.4. 將OpenNMS設為開機自動執行
4.4.1. 在Debian Linux上設定開機自動執行 4.4.2. 在RPM為基礎的Linux發行版本上設定開機自動執行 4.4.3. 在Solaris上設定開機自動執行
5. 編譯程式原始碼
5.1. 妳確定要這麼做嗎? 5.2. 安裝必須的套件 5.3. 下載程式原始碼
5.3.1. 下載釋出版本程式碼 5.3.2. 從CVS下載程式碼
5.4. 設定build.properties 5.5. 編譯OpenNMS 5.6. 安裝OpenNMS
6. OpenNMS安裝時的問題排除
6.1. 常見的安裝問題
6.1.1. 相依性(Dependency)問題 6.1.2. Error: "Started OpenNMS, but it has not finished starting up"(錯誤:"OpenNMS已經開始啟動,但是啟動沒有完成") 6.1.3. DHCP Poller Won't Start(DHCP輪詢器無法啟動) 6.1.4. The OpenNMS Web Application Will Not Start, or You Can't Log In(OpenNMS網頁應用程式無法啟動,或者妳無法登入) 6.1.5. Error: "runjava: Could not find an appropriate JRE"(錯誤:"runjava:無法找到合適的JRE") 6.1.6. Error: "The database server's error messages are not in English ..."(錯誤:"資料庫的錯誤訊息不是英文…") 6.1.7. Error: "Column X in new table has NOT NULL constraint ..."(錯誤:"新表格的X欄有NOT NULL限制") 6.1.8. Error: "One or more backup tables from a previous install still exists"(錯誤:"之前安裝時殘留一個以上的備份資料表") 6.1.9. Error: "Table X contains N rows (out of M) that violate new constraint Y"(錯誤:"資料表X(的M個資料列中)有N個資料列違反新的Y限制") 6.1.10. Error: "- adding iplike database function... <snip> org.postgresql.util.PSQLException: ERROR: could not access file '<snip>/lib/iplike.so': Permission denied"(錯誤:"加入iplike資料庫函式…<略> org.postgresql.util.PSQLException: 錯誤:無法存取檔案'<略>/lib/iplike.so':拒絕存取) 6.1.11. Error: "Exception in thread "main" org.postgresql.util.PSQLException: ERROR: relation "pg_user" does not exist" when running installer.(執行安裝程式時遇到錯誤:"在"main"執行緒發生例外 org.postgresql.util.PSQLException: 錯誤:"pg_user"關係不存在")
6.2. 到哪裡尋求技術支援
6.2.1. 發行摘要 6.2.2. OpenNMS網站 6.2.3. OpenNMS郵件論壇列表 6.2.4. 付費技術支援

OpenNMS是由許多個人及組織,在OpenNMS軟體專案這支大旗下,所共同打造的。從最初到2002年,程式碼是由Oculan Corporation開發並以GPL釋出,後來專案的管理移交給 Tarus Balog。

目前OpenNMS的贊助企業是The OpenNMS Group,它們也擁有OpenNMS的商標。

OpenNMS是一個衍生作品(derivative work),包含了以GNU通用公共許可證釋出的原來的程式碼(original code)、納入的程式碼(included code),以及修改過的程式碼(modified code)。請參閱程式碼以瞭解詳細的版權事宜,底下列出一些較重要的版權擁有者:

 

本文件(英文版)有任何疏漏或更正,請告知 Tarus Balog;繁體中文版請告知 Austin Tuan

 

OpenNMS是世界上第一個用開放原始碼模式開發的企業級網路管理系統。和其他複雜、功能強大的系統一樣,需要費一點心力來安裝和設定。這份文件就是用來說明安裝OpenNMS所需的步驟。

那麼,妳該如何運用這份文件呢?它包含了下列章節:

  • (妳正在看的)概述

  • 在裝OpenNMS前必須先安裝哪些套件,以及對它們做哪些修改

  • 安裝和升級的指引,包括針對不同的作業系統、發行版本 (Distribution)的細節

  • 開始使用OpenNMS,包括初始設定及登入網頁介面

  • 用原始碼編譯OpenNMS

  • 問題排除,以及到哪裡找救兵

這份安裝指南非常倚賴「套件」這個概念。現今大部分的作業系統和發行版本都擁有套件管理系統。一個套件會將屬於同一個應用程式的檔案都彙整進來(並且包含檔案變動,移除,更新等等的管理)。我們可藉此系統安裝和管理各種軟體。

請參閱最新的發行摘要以確認是否有支援妳的作業系統。目前OpenNMS支援Linux(的很多不同發行版本), Solaris和Mac OS X。

這份指南假定如果妳使用套件管理系統,妳就會一直使用它。這是因為 OpenNMS會試著用作業系統內建的套件管理系統來確認那些必須先安裝的套件是否裝好了。例如妳裝了Java,但不是用套件裝的,OpenNMS將無法確認妳的系統有裝Java,因此整個安裝會失敗。

讓我們再回到最初的問題「妳該如何運用這份文件」,請先瀏覽第二章,確定妳已經把必須的、作為先決條件的套件都適當地安裝、設定完畢了。用第三章來協助妳將那些套件裝進妳的作業系統,以及安裝OpenNMS。最後,用最後一章來協助妳修正各種可能遇到的錯誤。

雖然我們不可能針對特定的環境來精確地估量OpenNMS之系統需求,底下列出安裝在 200個設備的網路中之最低需求。當然,只要有更好的硬體,OpenNMS可監控的設備數量百倍於此。

處理器

單處理器,1 GHz Pentium III 等級以上。OpenNMS能運用(系統中的)多處理器。

記憶體

最低256 MB的RAM,不過強烈建議512 MB。OpenNMS的Java Virtual Machine能運用大量的記憶體(最多2GB,如果是64-bit的處理器還可以更多)。如果手邊的預算可在「更多的記憶體」和「更快的處理器」之間做個選擇,請選擇「更多的記憶體」。

硬碟空間

OpenNMS程式本身需要大約25 MB。除此之外,每個資料變項查詢結果(data variable collected requires)預設要283 KB。假設每個受控介面需要2 MB,那麼200個介面大約是400 MB(保守估計)。資料庫部分,依照所儲存的事件數目,你可以假設需要100 MB到200 MB。最後,OpenNMS的各個記錄檔可能變得很大,特別是在除錯模式下。(請編輯OpenNMS設定目錄(通常為/opt/OpenNMS/etc/etc/opennms)下的檔案log4j.properties來變更這些設定。(綜合以上所述)以最小系統來說,800 MB到1 GB應該足夠了。

注意:除非是個很小的系統,否則請不要讓OpenNMS使用RAID-5。如果要使用RAID,我們建議使用RAID-1或RAID-1+0。

OpenNMS主要是用Java開發的,雖然為了實作例如ICMP這類東西而用到一些 JNI來呼叫C語言程式碼。理所當然,妳需要安裝Java。

由於目前的程式碼有小部分倚賴一個Sun-only的函式庫 (HTTPS Monitor裡面的"com.sun.net.ssl.internal.www.protocol"),我們推薦妳使用Sun的SDK。使用IBM的 SDK應該也可以,只不過在輪詢器(poller)啟動的時候會在記錄檔產生一個錯誤訊息。

底下的說明是使用Sun所散佈的Java,不過有一些使用者採用Blackdown網站編譯的Sun Java,也獲得成功。

XXX Add something about 32-bit vs 64-bit for libjicmp and librrd.

將下面這行加入/etc/apt/sources.list然後執行 update,(也就是"apt-get update")。

版本代號是Woody的話,請加入:

 

deb http://debian.opennms.org/ debian/opennms stable

 

版本代號是Sid的話,請加入:

 

deb http://debian.opennms.org/ debian/opennms unstable

 

然後,取得版本適合的Java來加以安裝。因為授權的問題, OpenNMS套件不能包含Java SDK,妳必須在安裝OpenNMS之前,自己取得及安裝。妳有兩個選擇:

  1. 使用sun-jdk1.4-installer套件及編譯指令稿(build script),從Sun那邊下載j2sdk然後編譯妳自己的j2sdk1.4套件(推薦)。

    編譯並安裝j2sdk1.4套件:

    • 為了妳正要製作的j2sdk1.4套件,必須先有套件java-common;因為前者編譯產生後是執行dpkg來安裝,不像一般執行apt安裝會自動載入必須的套件,因此我們要先手動安裝後者:

       

      # apt-get install java-common

       

    • 接著,安裝sun-jdk1.4-installer套件:

       

      # apt-get install sun-jdk1.4-installer

       

    • 從Sun下載Java 1.4 SDK。我們建議使用1.4.2以上的版本。確定妳選了非RPM的套件(也就是".bin" 套件)。

    • 接著執行底下的指令來編譯套件:

       

      # build-sun-jdk14 ./j2sdk-1_4_2_05-linux-i586.bin

       

      其中j2sdk-1_4_2_05-linux-i586.bin是妳從Sun下載回來的檔案。

    • 最後,安裝這個套件:

       

      # dpkg -i j2sdk-1_4_2_05-linux-i586.deb

       

      其中j2sdk-1_4_2_05-linux-i586.deb 是剛才執行build-sun-jdk14產生的Debian套件。

  2. 取得並安裝妳自選版本的Java,然後藉由安裝java-virtual-machine這個meta-package來滿足OpenNMS的套件相依性。

     

    # apt-get install java-virtual-machine

     

注意

很重要的一點,請安裝SDK而不是JRE,因為Tomcat會需要編譯 Java程式碼(因此需要SDK裡面的 "javac")。

妳需要Sun的Java 2 Platform,標準版,1.4版以上。我們建議使用1.4.2版以上。妳可以從Sun的Java網站下載。依照步驟取得授權後,下載適合妳的作業系統的Java。如果妳準備使用RPM套件來安裝OpenNMS,請下載RPM套件版本的Java;不然,請下載".bin" 的檔案。請依照Sun的說明來安裝。

Tomcat是Apache 基金會之Jakarta專案的一部份,是一個Java servlet引擎。也就是說Tomcat是一個網頁伺服器,它用"servlets"(小的 Java程式)來產生HTML頁面。注意這和Java "applets"很不一樣--servlets在伺服器端執行,而不是下載到瀏覽器執行。只要servlet被編譯後,Tomcat就會暫存它,意味著首次次讀取一個特定頁面也許慢,但是接下來的存取就蠻快的。

Tomcat最新的版本是Tomcat5,不過OpenNMS因為使用Tomcat4的認證功能,不能使用Tomcat5。以後的版本會修正這個現況,不過現在妳必須使用Tomcat4。

目前在Sid(unstable)上的Tomcat套件預設使用 jikes編譯器,而不是妳在前一節準備好的 javac。用妳喜歡的文書編輯器打開/etc/tomcat4/web.xml然後把"compiler init param"小節註解掉。

Fedora Core 2內附的Tomcat4套件似乎不能穩定運行,就算不安裝OpenNMS也一樣。目前,我們建議使用OpenNMS FTP站所提供的tomcat4套件。妳需要安裝兩個套件,tomcat4-4.1.18-full.1jpp.noarch.rpmtomcat4-webapps-4.1.18-full.1jpp.noarch.rpm

某些版本的核心有一個bug會讓Java程序甚至整個核心掛掉。這個問題紀錄在Red Hat bug #121902。請確保妳的核心版本號至少是2.6.6-422。

SuSE 9內附Tomcat 5,無法和OpenNMS搭配。(如果有的話)請移除已經安裝的Tomcat 5套件,然後從舊版的SuSE中取得Tomcat 4來安裝。SuSE 8.1所附的Tomcat 4似乎運行良好。請到SuSE的FTP站下載。

我們要修改Tomcat的一些設定。安裝程式(installer)會負責大部分的修改,但是有幾項妳必須手動修改。底下是妳必須手動修改的兩項Tomcat設定:

  1. Tomcat必須和OpenNMS使用同一套Java。

  2. Tomcat必須能夠讀寫OpenNMS的相關設定檔。妳有兩個選擇,一個是讓 Tomcat以root權限來執行,另一個是將OpenNMS的相關設定檔開放給執行Tomcat的帳號讀寫。前者雖然從系統安全的角度來看比較不好,卻比較容易設定,所以是建議使用的方法。目前已經有計畫讓OpenNMS只要一般使用者權限就能運行—可參閱功能增進 (enhancement)bug編號1150。

很多Linux發行版本都有設定檔tomcat4.conf,妳可以在這裡修改設定參數。在Red Hat和Fedora系列的Linux版本,這個檔案放在/etc/tomcat4/目錄下。裡面的內容看起來像這樣:

 

# tomcat /etc/rc.d script example configuration file
# Use with version 1.07 of the scripts or later

# Use Jpackage utils if present
if [ -x /usr/bin/java-functions ]; then
. /usr/bin/java-functions
set_jvm
fi

# Source Java system configuration if exist
if [ -r /etc/java/java.conf ]; then
. /etc/java/java.conf
fi

# you could also override JAVA_HOME here
# Where your java installation lives
# JAVA_HOME="/usr/java/jdk"
# JAVA_HOME="/opt/IBMJava2-131"

# You can pass some parameters to java
# here if you wish to
#JAVACMD="$JAVA_HOME/bin/java -Xminf0.1 -Xmaxf0.3"

# Where your tomcat installation lives
# That change from previous RPM where TOMCAT_HOME 
# used to be /var/tomcat.
# Now /var/tomcat will be the base for webapps only
CATALINA_HOME="/var/tomcat4"
JASPER_HOME="/var/tomcat4"
CATALINA_TMPDIR="/var/tomcat4/temp"

# What user should run tomcat
TOMCAT_USER="tomcat"

# You can change your tomcat locale here
#LANG=en_US

# If you wish to further customize your tomcat environment,
# put your own definitions here
# (i.e. LD_LIBRARY_PATH for some jdbc drivers)
# Just do not forget to export them 

 

在這個檔案裡,妳可以分別藉由修改JAVA_HOME變數來指向Java安裝位置;修改TOMCAT_USER變數來設定執行Tomcat的帳號。妳可以用一行有關 JAVA_HOME變數的設定指向妳安裝好的Java,例如:

 

JAVA_HOME="/usr/java/j2sdk1.4.2_04/"

 

要改變執行Tomcat的帳號,妳可以這樣設定:

 

TOMCAT_USER="root"

 

如果妳使用其他的Linux發行版本或者別的作業系統(例如: Solaris,Mac OS X)而找不到tomcat4.conf這個檔案,妳必須找出該系統上相對應的修改參數方法。歡迎妳將細節回報給OpenNMS bug資料庫(分類請選enhancement bug),或者email到opennms-install郵件論壇,以便我們加入這份文件。

如果妳選擇不要用root 帳號來執行Tomcat,請做下列變更,讓執行Tomcat的帳號可以讀寫OpenNMS相關設定檔。這個步驟包括將"tomcat" 和"root" 兩個帳號加入"tomcat4" 群組,然後變更目錄權限,讓"tomcat4" 群組可以寫入OpenNMS "etc" 和"logs" 目錄。這步驟必須在OpenNMS軟體安裝之後

  1. "tomcat" 帳號應該已經在安裝Tomcat的時候建立了--可以在檔案/etc/passwd 裡面確認。

  2. 編輯/etc/group,把帳號"tomcat" 和 root" 加進"tomcat4" 群組。檔案看起來像這樣:

     

    tomcat4:x:91:tomcat,root

     

  3. 找出OpenNMS的"etc" 目錄。通常應該是/opt/OpenNMS/etc/etc/opennms。目錄底下應該有一些附檔名是".xml" 的檔案,例如capsd-configuration.xml。執行底下的指令:

     

    # chgrp -R tomcat4 $OPENNMS_HOME/etc
    
    # chmod -R g+w $OPENNMS_HOME/etc

     

    其中$OPENNMS_HOME/etc代換成妳系統上OpenNMS的"etc" 目錄。

  4. 找出OpenNMS的"logs" 目錄。通常應該是/var/log/opennms,可以去OpenNMS的"etc" 目錄裡面的log4j.properties檔案確認。(在檔案中找有"File"的那行)。執行底下的指令:

     

    # chgrp -R tomcat4 /var/log/opennms
    
    # chmod -R g+w /var/log/opennms

     

    其中/var/log/opennms是OpenNMS 的記錄檔目錄。

第一項變更完成後Tomcat就可以啟動,但是不做第二項變更的話在 OpenNMS記錄檔會出現錯誤訊息,而且網頁介面提供的管理指令也無法執行,因為Tomcat無法寫入設定檔。

MRTG,這個可能是第一個被廣泛使用的開放原始碼網管工具,它的起源就是RRDtool

RRDtool提供"round robin"資料庫,用來快速、節省空間地儲存時間序列(time-series)量測數據。OpenNMS將效能相關的數據儲存在用RRDtool產生的RRD檔案。

我們不需要對RRDtool做特別的設定。只要它是以套件安裝, OpenNMS套件應該可以找到它,並且用適當的指令完成設定。目前已知可以使用RRDtool 1.0.33以上任何的"1.0"系列版本。

XXX add a comment about 32-bit vs. 64-bit stuff for the iplike.so module

OpenNMS使用PostgreSQL(又稱"Postgres")這個關聯式資料庫來儲存各種資訊,例如網路設備、事件、告警和故障。

在安裝OpenNMS之前,要先準備兩件跟資料庫有關的事項。首先, OpenNMS必須能夠以TCP/IP方式連結到資料庫(即使兩者都在同一台機器);其次,在安裝過程中要能夠新增資料庫。

OpenNMS需要PostgreSQL版本7.2以上。如果你使用 PostgreSQL 7.4之前的版本,伺服器的錯誤訊息必須是英文('C' locale)。尤其參數lc_messages 必須是'C'。相關設定在PostgreSQL data目錄的postgresql.conf檔案裡,如果有修改的話,請重新啟動資料庫。data目錄的所在位置,請參閱底下關於pg_hba.conf的小節。

妳至少應該安裝這個套件:

  • postgresql-server

請注意,Red Hat Enterprise Linux和CentOS把PostgreSQL套件稱為"rhdb",意思是"Red Hat DataBase";而舊版的SuSE則稱做"postgres"。

如果妳使用最近版本的Mandrake(版本9以上),妳還需要:

  • postgresql-pl

一旦妳安裝了Postgres,妳需要修改兩個Postgres設定檔:postgresql.confpg_hba.conf。Postgres 首次啟動會產生這些檔案,因此如果妳剛才安裝的時候沒有啟動它,請現在啟動它。通常,啟動指令稿會放在/etc/init.d

找出Postgres的"data"目錄。通常應該是 /var/lib/pgsql/data。我們要修改的兩個檔案應該就在那個目錄下。

這個檔案控制Postgres的一些基本參數。我們必須修改其中三個。

  1. 在檔案中找出有tcpip_socket的那一行。它應該是(這個項目在PostgreSQL 8.0以上是預設值,可以忽略):

     

    tcpip_socket = true

     

    請確定這行(以及等會提到的兩行)開頭沒有註解符號 ("#")。這樣OpenNMS就可以連結資料庫。

  2. 在檔案中找出有max_connections的那一行。它應該是:

     

    max_connections = 256

     

  3. 在檔案中找出有shared_buffers的那一行。它應該是:

     

    shared_buffers = 1024

     

pg_hba.conf檔案決定哪台機器以及哪個使用者能夠透過TCP/IP存取我們機器上的資料庫。

因為這就是OpenNMS存取資料庫的方法(透過localhost),因此我們必須修改這個檔案使OpenNMS能運作。最簡單的方法是開放所有本機的使用者都能存取資料庫(如果妳的系統不支援IPv6,不要加最後一行):

 

# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
local all all trust
host all all 127.0.0.1 255.255.255.255 trust
host all all ::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff trust

 

請確定這個檔案其他行的開頭都還保留註解符號。

做完這些修改之後,妳需要停止再重新啟動Postgres。

妳需要安裝Postgres 7.2版(Red Hat Linux 7.3有附)。

妳需要建立一個opennms資料庫。

使用postgres帳號,進入/usr/local/pgsql/bin目錄,然後執行此指令:

 

# ./initdb -D /usr/local/pgsql/data -E ""

 

這樣就會建立資料庫。請依照前面小節的作法,修改pg_hba.confpostgresql.conf這兩個檔案。

接著妳需要啟動資料庫:

 

# ./pg_ctl -D /usr/local/pgsql/data start

 

這樣就完成了用postgres帳號來操作的部份。

啟動指令稿使用curl去連接OpenNMS daemon來檢查各個部分均順利啟動和運行("opennms status")。

注意

從OpenNMS 1.1.4開始,已經不需要這個套件了,因為Perl郵件程式已經被一個Java郵件程式所取代。

由於OpenNMS使用Perl來寄送可用性報告,對於某些郵件程式而言,妳必須加裝metamail套件才能讓OpenNMS產生的PDF檔案被順利寄出。

比照前面章節所提到的Perl相關模組,如果妳的發行版本沒有提供 metamail,妳可以在OpenNMS的 FTP站台找到metamail(也提供SRPM檔)。

注意

妳必須使用root帳號來執行這一章提到的指令。

請遵循「首次安裝」或者「升級」該節的指示,然後遵循「運行安裝程式 (installer)」一節的步驟。如果在過程中遇到任何錯誤,請參考這份指南的錯誤排除章節。

如果妳是首次安裝,請遵循本節中有關妳的作業系統的部分。如果妳要替一套已經裝好的 OpenNMS升級,請看下一節。

如果妳已經遵照前面章節指定好了apt套件庫, 請執行此指令:

 

# apt-get install opennms

 

想要加裝文件及contrib套件的話,請執行此指令:

 

# apt-get install opennms-doc opennms-contrib

 

妳也可以從SourceForge網站上OpenNMS的Files下載適合妳的Debian版本的套件。

從SourceForge網站上OpenNMS的Files下載適合妳的Linux發行版本的套件。

 

# rpm -i opennms-1.2.0-1_<distribution>.<platform>.rpm
# rpm -i opennms-webapp-1.2.0-1_<distribution>.<platform>.rpm

# rpm -i opennms-docs-1.2.0-1_<distribution>.<platform>.rpm

 

從SourceForge網站上OpenNMS的Files下載適合妳的Solaris版本的套件。

 

# cd /usr/local
# gzip -d opennms-1.2.0-1-sol<version>-sparc-local.gz

# pkgadd -d `pwd`/opennms-1.2.0-1-sol<version>-sparc-local

 

在妳嘗試從程式原始碼安裝之前,請先閱讀「編譯程式原始碼」一章,先下載及編譯程式原始碼。

注意

除非妳依照「編譯程式原始碼」一章所述,改變install.dir 參數,不然程式將會安裝在檔案build.xml所在目錄下的dist目錄。

執行此指令來安裝:

 

# sh build.sh install

 

XXX this section could use some more love, too.

幫舊版的OpenNMS升級至目前的版本,通常只要安裝適合妳的(作業系統)發行版本之套件即可。

如果是RPM為基礎的發行版本,只要輸入指令"rpm -Uvh [套件名稱]"即可。

此外,OpenNMS的安裝程式(installer)可能會試著去修改資料庫。請記得依照本章後面的指示以執行安裝程式(installer)。這些變動應該會順利完成,但是,就算是最周全的計畫都有可能出錯。為了以防萬一,在升級之前請依照下面的細項指示來備份妳的PostgreSQL資料庫。

OpenNMS的相關資料存放在數個位置:

$OPENNMS_HOME/etc/

這裡放的是OpenNMS的設定檔。如果因為版本更替,使得$OPENNMS_HOME/etc目錄下任一設定檔的預設結構改變,RPM會針對該檔案建立一個".rpmnew" 的版本。在那當下妳必須檢視既有檔案與新版本之間的變動,並且手動整合它們。指令"diff -u <舊檔> <新檔> | less" 可以幫助妳找出哪些地方有變動。

$OPENNMS_HOME/share/rrd/

這裡放的是經由SNMP收集回來的,關於回應時間及系統效能之 RRD資料檔。安裝程式 (installer) 應該不會動到$OPENNMS_HOME/share/rrd目錄下的RRD資料檔。除非妳從使用RRDTool的版本(譯註:1.1.3以前)升級到使用jRobin的版本(譯註:1.1.4以上),不然妳不用擔心這些資料檔。

$OPENNMS_HOME/webapps/opennms/

這裡放的是OpenNMS網頁應用程式。雖然這些不是資料,但某些使用者可能會客製化網頁介面;請在升級OpenNMS之前備份這些客製化的部分。

$PGDATA/

關於節點、服務、事件、告警等等的資料,都存放在 PostgreSQL資料庫的opennms表單中。

升級也許會遇到狀況,因此在行動之前最好還是把重要資料來個有備(份)無患。

就OpenNMS而言,妳應該做兩件事:

  1. $OPENNMS_HOME/etc目錄下的內容備份到一個安全的位置。萬一任何新檔案造成問題,妳就可以用原來的覆蓋回來。

  2. 備份postgres資料庫。使用pg_dumpall指令,妳可以將資料庫的所有內容傾倒至一個檔案:

     

    # pg_dumpall > old_data

     

    上面指令會將所有資料備份到檔名old_data的檔案。請用"postgres"帳號來執行指令:

     

    # sudo -u postgres pg_dumpall > old_data

     

    使用底下的指令來復原:

     

    # sudo -u postgres psql -U postgres -f old_data template1

     

  3. 如果妳有修改網頁應用程式,請記得也要將它們備份。

前面提過了,升級的時候妳應該不需要備份RRD資料檔。

不管前面妳選了什麼安裝方法,也不管妳是升級或執行首次安裝,妳仍然需要運行安裝程式 (installer)。這個工具會在PostgreSQL中設定opennms資料庫,並且將OpenNMS 網頁應用程式(常簡稱"webapp"或"webUI")裝進Tomcat。

在運行安裝程式(installer)之前,妳必須為OpenNMS設定使用一個適當的Java Runtime Environment (JRE)。請使用OpenNMS提供的工具runjava;它會搜尋適合的JRE,或者妳也可以指定JRE給它。

執行runjava的時候加上"-s" 參數,來搜尋JRE:

# $OPENNMS_HOME/bin/runjava -s

執行runjava的時候加上"-S <JRE的位置>"參數,來指定妳希望OpenNMS使用哪個JRE:

# $OPENNMS_HOME/bin/runjava -S <JRE的位置>
# $OPENNMS_HOME/bin/install -y -w $CATALINA_HOME/webapps -W $CATALINA_HOME/server/lib

OpenNMS預設的網路主機發掘(host discovery)設定可能不符合妳的需求。請編輯$OPENNMS_HOME/etc/discovery-configuration.xml。看起來應該像這樣:

 

<discovery-configuration threads="1" packets-per-second="1"
 initial-sleep-time="300000" restart-sleep-time="86400000"
 retries="3" timeout="800">

 <include-range retries="2" timeout="3000">
 <begin>192.168.0.1</begin>
 <end>192.168.0.254</end>
 </include-range>

 <include-url>file:/opt/OpenNMS/etc/include</include-url>

</discovery-configuration>

 

妳最可能想要更動的,應該是起迄的範圍(分別以<begin><end>標籤設定。)另外妳可以視需要增加幾組<include-range>。如果妳寧可逐一列出想要發掘的網路主機,妳可以將<specific>標籤插入<include-range>標籤之前,或者放在<include-url>所指的檔案中,一行一個網路位址。 最後,如果妳想要用網頁介面來增加讓OpenNMS監控的主機,妳可以將整個檔案內容變成註解(把"<!--" 放在第一行的前面,然後放"-->" 在最後一行的後面就可以了)。

底下是個範例,在妳的作業系統上也許不太一樣:

 

# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值