這是2007的老文章了, 從 blogger.com 轉到這裡....
 
我用來安裝系統的主要硬體配備為 Intel Core 2 Dual E6320 CPU, 2G DDR II 667 RAM, 160G SATA II 的硬碟. 作業系統則選擇 CentOS 4.5 x86 版本 (http://www.centos.org). 會選擇 CentOS 的理由最主要是我比較熟悉 RedHat 系列的 Linux, 用習慣了, 而且 community 對於 CentOS 的支援還不錯. 安裝 CentOS 選擇安裝套件時, 我選擇 Everything.

本次安裝時會使用到以下套件: J2SDK 1.5, Tomcat 5.5, RRDtool 1.2, OpenNMS 1.3.3, 各個套件的版本與下載點如下, 請先下載並放到 ~root/opennms 目錄底下

  • JDK 1.5.0 Update 12 (http://java.sun.com/javase/downloads/index_jdk5.jsp)
  • Tomcat 5.5.23 (http://apache.cdpa.nsysu.edu.tw/tomcat/tomcat-5/v5.5.23/bin/apache-tomcat-5.5.23.tar.gz)
  • RRDtool 1.2.23
    • http://dag.wieers.com/rpm/packages/rrdtool/perl-rrdtool-1.2.23-1.el4.rf.i386.rpm
    • http://dag.wieers.com/rpm/packages/rrdtool/rrdtool-1.2.23-1.el4.rf.i386.rpm
  • OpenNMS 1.3.3
    • http://nchc.dl.sourceforge.net/sourceforge/opennms/opennms-1.3.3-1_centos4.i386.rpm
    • http://nchc.dl.sourceforge.net/sourceforge/opennms/opennms-docs-1.3.3-1_centos4.i386.rpm
    • http://nchc.dl.sourceforge.net/sourceforge/opennms/opennms-webapp-1.3.3-1_centos4.i386.rpm
    • http://jaist.dl.sourceforge.net/sourceforge/opennms/iplike-1.0.5-1_centos4.i386.rpm

接下來就要開始安裝了. 請先以 root 登入 linux, 保持個良好的習慣: 最好用 ssh (例如 PuTTY) 登入

  • 安裝 JDK

# 切換到 rpm 檔案放置的目錄
cd ~root/opennms

# 設定 jdk-1_5_0_12-linux-i586-rpm.bin 屬性為可執行
chmod 700 jdk-1_5_0_12-linux-i586-rpm.bin

# 執行 jdk-1_5_0_12-linux-i586-rpm.bin 以解開 rpm 檔案
# 執行後會有版權聲明的頁面, 可以按 [SPACE] 下捲看完, 或直接按 [q] 看完
# 最後敲入 "yes" 後按下 [enter] 即可
./jdk-1_5_0_12-linux-i586-rpm.bin

# 安裝 jdk
rpm -ivh jdk-1_5_0_12-linux-i586.rpm

# 設定 soft link 以方便使用
ln -s /usr/java/jdk1.5.0_12 /usr/java/jdk1.5.0

# 設定 Java 執行環境以於下次登入時自動生效
echo 'export JAVA_HOME=/usr/java/jdk1.5.0' > /etc/profile.d/java1.5.0.sh
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile.d/java1.5.0.sh
chmod 755 /etc/profile.d/java1.5.0.sh

# 使設定立即生效以進行安裝
. /etc/profile.d/java1.5.0.sh

# 執行 java 以判定安裝與設定是否正確
# 此時應會出現 java version "1.5.0_12" 的字樣
java -version

  • 安裝 Tomcat

# 建立使用者以執行 Tomcat
useradd tomcat

# 修改群組檔案
# 將 tomcat:x:???: 改為 tomcat:x:???:tomcat,root
cp /etc/group ./group.bak
cat group.bak | sed 's/tomcat:x:.*:$/&tomcat,root/g' > /etc/group

# 將 Tomcat 解開到 /usr/local 目錄下
tar -C /usr/local -xvzf apache-tomcat-5.5.23.tar.gz

# 建立 Soft Link 以方便使用
ln -s /usr/local/apache-tomcat-5.5.23 /usr/local/tomcat5.5

# 設定 Tomcat 執行環境以於下次登入時自動生效
echo 'export CATALINA_HOME=/usr/local/tomcat5.5' > /etc/profile.d/tomcat5.5.sh
echo 'export PATH=$CATALINA_HOME/bin:$PATH' >> /etc/profile.d/tomcat5.5.sh
echo 'export CATALINA_OPTS="-Xmx1024m"' >> /etc/profile.d/tomcat5.5.sh
chmod 755 /etc/profile.d/tomcat5.5.sh

# 使設定立即生效以進行安裝
. /etc/profile.d/tomcat5.5.sh

# 安裝 jsvc 以把 tomcat 註冊成為 service
# 解開 jsvc
cd $CATALINA_HOME/bin
tar -xvzf jsvc.tar.gz
cd jsvc-src
chmod 700 configure
./configure
make
cp jsvc $CATALINA_HOME/bin

# 建立定啟動檔
# [手動開始]
# 將本文最後面的 "Tomcat 自動啟動檔內容" 內容全部貼到 tomcat5 裡面
vi /etc/init.d/tomcat5
# [手動結束]

# 執行以下指令
# 改自動啟動檔權限
chmod 755 /etc/init.d/tomcat5

# 設定自動啟動
chkconfig --add tomcat5

# 設定目錄權限
chown -R tomcat.root /usr/local/apache-tomcat-5.5.23

# 設定防火牆
# [手動開始]
# 編輯 /etc/sysconfig/iptables, 並在 COMMIT 行之前新增一行如下
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
# [手動結束]

# 重新啟動防火牆
service iptables stop
service iptables start

# 啟動 Tomcat 以測試是否安裝設定成功
service tomcat5 start
# 從另外一台電腦以 Brower 瀏覽作為確認
# [手動開始]
# 瀏覽 http://server ip or hostname:8080
# [手動結束]

# 先停掉 Tomcat
service tomcat5 stop

  • 安裝 RRDtool

# 執行以下指令
rpm -ivh perl-rrdtool-1.2.23-1.el4.rf.i386.rpm rrdtool-1.2.23-1.el4.rf.i386.rpm

  • 設定PostgreSQL

#執行以下指令
# 設定 PostgreSQL 自動執行
chkconfig --level 345 postgresql on

# 執行一次 PostgreSQL, 以自動產生預設的設定檔
service postgresql start
service postgresql stop

# 在 RHEL 4 (有些人說 CentOS 也會, 我是沒碰到過) 安裝OpenNMS時, 因為 SELinux
# 的關係會導致發生 relation "pg_user" does not exist
# 的錯誤, 因此可以先執行下面步驟以避免之
cd /var/lib/pgsql
rm -rf data
/usr/sbin/setenforce 0
service postgresql start
service postgresql stop

# 備份設定檔
cd ~/opennms
cp /var/lib/pgsql/data/pg_hba.conf ./pg_hba.conf.bak
cp /var/lib/pgsql/data/postgresql.conf ./postgresql.conf.bak

# 修改設定檔 pg_hba.conf
# 將 #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 開頭的 # 刪掉
# 將 local all all ident sameuser 改為 local all all trust
cat pg_hba.conf.bak | sed 's/^#host/host/g' | sed 's/ident sameuser/trust/g' > /var/lib/pgsql/data/pg_hba.conf

# 修改設定檔 postgresql.conf
# 將 #tcpip_socket = false 改為 tcpip_socket = true
# 將 max_connections = 100 改為 max_connections = 256
# 將 shared_buffers = 1000 改為 shared_buffers = 1024
cat postgresql.conf.bak | sed 's/^#tcpip_socket = false/tcpip_socket = true/g' | sed 's/^max_connections = 100/max_connections = 256/g' | sed 's/^shared_buffers = 1000/shared_buffers = 1024/g' > /var/lib/pgsql/data/postgresql.conf

# 再度啟動 PostgreSQL
service postgresql start

  • 安裝OpenNMS

# 執行以下指令
# 安裝 OpenNMS
rpm -ivh opennms-1.3.3-1_centos4.i386.rpm
rpm -ivh opennms-webapp-1.3.3-1_centos4.i386.rpm
rpm -ivh opennms-docs-1.3.3-1_centos4.i386.rpm

# 使設定立即生效以進行安裝
. /etc/profile.d/opennms.sh

# 修改目錄權限
chgrp -R tomcat $OPENNMS_HOME/etc
chmod -R g+w $OPENNMS_HOME/etc
chgrp -R tomcat /var/log/opennms
chmod -R g+w /var/log/opennms
chgrp -R tomcat /var/opennms
chmod -R g+w /var/opennms
chgrp -R tomcat /opt/opennms/share/reports
chmod -R g+w /opt/opennms/share/reports

# 設定 OpenNMS 所使用的 Java
$OPENNMS_HOME/bin/runjava -s

# 設定 OpenNMS 所使用的 PostgreSQL
$OPENNMS_HOME/bin/install -dis

# 安裝 iplike
rpm -ivh iplike-1.0.5-1_centos4.i386.rpm

# 設定 Web Application
$OPENNMS_HOME/bin/install -y -w $CATALINA_HOME/conf/Catalina/localhost

  • 組態 OpenNMS

# 設定系統自動探索IP範圍
cd $OPENNMS_HOME/etc
# [手動開始]
# 設定自動掃描的位址範圍
# 把原先的192.168.0.1與192.168.0.254改為想要掃描的範圍
# 例如10.10.30.1與10.10.30.254
# vi discovery-configuration.xml
# [手動結束]

# 設定 JavaMail 的參數
echo "org.opennms.core.utils.fromAddress=opennms@[127.0.0.1]" >> javamail-configuration.properties
echo "org.opennms.core.utils.mailHost=127.0.0.1" >> javamail-configuration.properties
echo "org.opennms.core.utils.mailer=smtpsend" >> javamail-configuration.properties
echo "org.opennms.core.utils.transport=smtp" >> javamail-configuration.properties
echo "org.opennms.core.utils.debug=true" >> javamail-configuration.properties
echo "org.opennms.core.utils.useJMTA=false" >> javamail-configuration.properties

# 啟動服務
service opennms start
service tomcat5 start

# 確認服務有啟動
# 所有的項目必須都是 running
/opt/OpenNMS/bin/opennms.sh -v status

# 登入管理網頁
http://localhost:8080/opennms, 以預設的帳號密碼 (admin/admin) 登入

大功告成!!

  • Tomcat 自動啟動檔內容

#!/bin/bash
#
# chkconfig: 345 87 13
# description: Apache Tomcat server daemon
# processname: jsvc
# pidfile: /var/run/jsvc.pid
# config:
#
##############################################################################
#
# Copyright 2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################
#
# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#


#
# That is for Tomcat-5.0.x (Apache Tomcat/5.0)
#

# source function library
. /etc/rc.d/init.d/functions

# Adapt the following lines to your configuration
JAVA_HOME=/usr/java/jdk1.5.0
CATALINA_HOME=/usr/local/tomcat5.5
DAEMON_HOME=$CATALINA_HOME/bin
TOMCAT_USER=tomcat
PROG="Tomcat 5.5"
# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=$CATALINA_HOME
#CATALINA_OPTS="-Djava.library.path=/home/jfclere/jakarta-tomcat-connectors/jni/native/.libs"
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar

start() {
#
# Start Tomcat
#
echo -n $"Starting $PROG:"
$DAEMON_HOME/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
RETVAL=$?
[ "$RETVAL" == "0" ] && success || failure
echo
}

stop() {
#
# Stop Tomcat
#
echo -n $"Stopping $PROG:"
$DAEMON_HOME/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
RETVAL=$?
[ "$RETVAL" == "0" ] && success || failure
echo
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 2
start
;;
*)
echo "Usage tomcat.sh start/stop/restart"
RETVAL=$?
esac

exit $RETVAL

創作者介紹

Egg Chang 的部落格

Egg Chang 發表在 痞客邦 PIXNET 留言(0) 人氣()