CentOS 7 跟前面的版本差很多, 所以安裝起來也有點差異. 現在連 OpenNMS 1.7 的安裝方式也不太一樣了, 概略描述如下:
1. 安裝 CentOS 7
我沒特別去研究如何安裝, 只是按照直覺選擇 Server with GUI --> Development Tools, 然後設定一下該設定的 (網路, 語系, 時間, 硬碟), 就一路給他裝下去了.
2. 安裝與設定 PostgreSQL
這次我改從PostgreSQL官網安裝最新版的PostgreSQL (9.4), 步驟如下:
安裝相關RPM
yum -y localinstall http://yum.postgresql.org/9.4/redhat/rhel-latest-x86_64/pgdg-centos94-9.4-2.noarch.rpm
yum -y install postgresql94 postgresql94-server postgresql94-contrib postgresql94-jdbc postgresql94-libs pgadmin3_94 --disablerepo=* --enablerepo=pgdg94
啟動PostgreSQL
/usr/pgsql-9.4/bin/postgresql94-setup initdb
systemctl enable postgresql-9.4
systemctl start postgresql-9.4
修改設定 (postgresql.conf)
vi /var/lib/pgsql/9.4/data/postgresql.conf
將 #listen_addresses = 'localhost' 改為 listen_addresses = 'localhost' (把 # 拿掉就可以)
編輯設定 (pg_hba.conf)
vi /var/lib/pgsql/9.4/data/pg_hba.conf
將 host all all 127.0.0.1/32 ident 改為 host all all 127.0.0.1/32 md5 (把 ident 改為 md5)
將 host all all ::1/128 ident 改為 host all all ::1/128 md5 (把 ident 改為 md5)
重新載入 PostgreSQL 參數
systemctl reload postgresql-9.4
建立OpenNMS資料庫
su - postgres
createuser -P opennms
Enter password for new role: <輸入 postgresql 使用者 opennms 的密碼>
Enter it again: <再輸入一次密碼>
createdb -O opennms opennms
psql -c "ALTER USER opennms WITH SUPERUSER;"
exit
3. 安裝與設定 JDK
在 OpenNMS 1.7, 官網已經要求使用 1.8, 所以我就使用 Java JDK 1.8 Update 66 來安裝了
下載 jdk 1.8
請從 http://www.oracle.com/technetwork/java/javase/downloads/index.html 下載 (例如 jdk-8u72-linux-x64.rpm)
安裝 jdk
rpm -ivh jdk-8u72-linux-x64.rpm
設定環境變數 for sh
cat << EOF > /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/default
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
設定環境變數 for csh
cat << EOF > /etc/profile.d/java.csh
set JAVA_HOME=/usr/java/default
set PATH=\$JAVA_HOME/bin:\$PATH
EOF
讓環境變數生效
. /etc/profile.d/java.sh
4. 設定 Firewall
firewall-cmd --permanent --add-port=8980/tcp
firewall-cmd --reload
5. 安裝與設定 OpenNMS
安裝 OpenNMS 的 yum repositories
yum -y localinstall http://yum.opennms.org/repofiles/opennms-repo-stable-rhel7.noarch.rpm
rpm --import http://yum.opennms.org/OPENNMS-GPG-KEY
下載與安裝 OpenNMS
yum -y --skip-broken install opennms grafana-opennms-plugin mib2opennms mib2opennms-debuginfo opennms-core opennms-docs opennms-plugin-ticketer-centric opennms-remote-poller mib2events opennms-jmx-config-generator opennms-ncs opennms-plugins opennms-plugin-* opennms-webapp-jetty rrdtool jrrd2 epel-release R
PS: 順便安裝rrdtool, jrrd2, 以及 R
關閉 opennms 透過 yum 更新
修改 /etc/yum.repos.d/opennms-repo-stable-rhel7.repo, 在 [opennms-repo-stable-common] 與 [opennms-repo-stable-rhel7] 兩段裡面都加上
enabled=0
設定 OpenNMS 資料庫連線
vi /opt/opennms/etc/opennms-datasources.xml
將以下
<jdbc-data-source name="opennms"
database-name="opennms"
class-name="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/opennms"
user-name="opennms"
password="opennms" />
<jdbc-data-source name="opennms-admin"
database-name="template1"
class-name="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/template1"
user-name="postgres"
password="" />
改為
<jdbc-data-source name="opennms"
database-name="opennms"
class-name="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/opennms"
user-name="opennms"
password="postgresql 使用者 opennms 的密碼" />
<jdbc-data-source name="opennms-admin"
database-name="template1"
class-name="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/template1"
user-name="opennms"
password="postgresql 使用者 opennms 的密碼" />
設定 OpenNMS
/opt/opennms/bin/runjava -s (或/opt/opennms/bin/runjava -S /usr/java/latest/bin/java)
/opt/opennms/bin/install -dis
移除資料庫使用者 Admin 權限
su - postgres
psql -c "ALTER ROLE opennms NOSUPERUSER;"
psql -c "ALTER ROLE opennms NOCREATEDB;"
exit
啟動 OpenNMS
systemctl enable opennms
systemctl start opennms
6. 連線
請以瀏覽器連線到 http://<你的CentOS>:8980/opennms, 以帳號 admin 密碼 admin 登入即可. 第一次啟動可能會耗時數分鐘, 請耐心等待.
7. 設定 rrdtool
vi /opt/opennms/etc/rrd-configuration.properties
將以下三行的 # 拿掉
#org.opennms.rrd.strategyClass=org.opennms.netmgt.rrd.rrdtool.MultithreadedJniRrdStrategy
#org.opennms.rrd.interfaceJar=/usr/share/java/jrrd2.jar
#opennms.library.jrrd2=/usr/lib64/libjrrd2.so
成為
org.opennms.rrd.strategyClass=org.opennms.netmgt.rrd.rrdtool.MultithreadedJniRrdStrategy
org.opennms.rrd.interfaceJar=/usr/share/java/jrrd2.jar
opennms.library.jrrd2=/usr/lib64/libjrrd2.so
重啟 OpenNMS
systemctl restart opennms
A. 參考文件