建立用戶linux
groupadd -g 800 tibco
useradd -u 801 -g tibco -d /home/tibco/ -s /bin/bash tibcoshell
目前關於sharedatastore的方案是使用NAS。數據庫
建立準備使用的nfs目錄,並賦權限bash
cd /服務器
mkdir/mqdata網絡
chown -R tibco:tibco /mqdata 架構
安裝TIBCO (TIBCO支持綠色安裝,即直接從原來的機器上拷貝tibco目錄重新建立配置文件便可使用。)tcp
cd /opt/software/性能
ls測試
TIB_ems_7.0.1_linux_x86.tar.gz
tar -zxvf TIB_ems_7.0.1_linux_x86.tar.gz
chown -R tibco:tibco *
mkdir /opt/tibco
chown -R tibco:tibco/opt/tibco
切換到tibco用戶,開始安裝:
su -tibco
cd /opt/software
./TIBCOUniversalInstaller-lnx-x86.bin -console
安裝過程當中,須要定義如下參數,其它採用默認便可。
Install Type: Typical
Environment Name: cfgmgmt
TIBCO Environment Home Directory: [/home/tibco/tibco] /opt/tibco
TIBCO Configuration Directory: [/home/tibco/CFGs] /opt
安裝參數定義:
安裝參數 |
值 |
備註 |
Environment Name |
cfgmgmt |
環境名稱 |
TIBCO Environment Home Directory |
/opt/tibco |
介質安裝目錄 |
TIBCO Configuration Directory |
/opt |
配置目錄(安裝目錄/環境名稱) |
|
|
|
ems 存放了啓動文件 跟config配置案例
建立logs datastore conf目錄
cp /opt/tibco/ems/8.2/samples/config/* /mqdata/PMD/EmsServer/conf/(將配置文件拷貝出來,到時升級應用能夠直接拷貝配置文件啓動)
修改配置tibemsd.conf 文件一個爲主 一個爲備
1. mqdata/PMD/EmsServer/conf目錄下,使用tibemsd.conf文件爲模板,建立文件:EmsServertibemsd.conf和EmsServerBackuptibemsd.conf,這兩個文件經過啓動腳本在主服務器與備服務器上使用。使用命令:
cd/mqdata/PMD/EmsServer/conf
cp -a tibemsd.conf EmsServertibemsd.conf
cp -a tibemsd.conf EmsServerBackuptibemsd.conf
2. 修改EmsServertibemsd.conf文件,修改內容以下:
server = PMD-EmsServer users = "/mqdata/PMD/EmsServer/conf/users.conf" groups = "/mqdata/PMD/EmsServer/conf/groups.conf" topics = "/mqdata/PMD/EmsServer/conf/topics.conf" queues = "/mqdata/PMD/EmsServer/conf/queues.conf" acl_list = "/mqdata/PMD/EmsServer/conf/acl.conf" factories = "/mqdata/PMD/EmsServer/conf/factories.conf" routes = "/mqdata/PMD/EmsServer/conf/routes.conf" bridges = "/mqdata/PMD/EmsServer/conf/bridges.conf" transports = "/mqdata/PMD/EmsServer/conf/transports.conf" tibrvcm = "/mqdata/PMD/EmsServer/conf/tibrvcm.conf" durables = "/mqdata/PMD/EmsServer/conf/durables.conf" channels = "/mqdata/PMD/EmsServer/conf/channels.conf" store = "/mqdata/PMD/EmsServer/datastore" listen = tcp://192.168.50.148:7222 logfile = "/mqdata/PMD/EmsServer/logs/logfile" ft_active = tcp://192.168.50.156:7222 |
3. 修改EmsServerBackuptibemsd.conf文件,修改內容以下:
server = PMD-EmsServer users = "/mqdata/PMD/EmsServer/conf/users.conf" groups = "/mqdata/PMD/EmsServer/conf/groups.conf" topics = "/mqdata/PMD/EmsServer/conf/topics.conf" queues = "/mqdata/PMD/EmsServer/conf/queues.conf" acl_list = "/mqdata/PMD/EmsServer/conf/acl.conf" factories = "/mqdata/PMD/EmsServer/conf/factories.conf" routes = "/mqdata/PMD/EmsServer/conf/routes.conf" bridges = "/mqdata/PMD/EmsServer/conf/bridges.conf" transports = "/mqdata/PMD/EmsServer/conf/transports.conf" tibrvcm = "/mqdata/PMD/EmsServer/conf/tibrvcm.conf" durables = "/mqdata/PMD/EmsServer/conf/durables.conf" channels = "/mqdata/PMD/EmsServer/conf/channels.conf" store = "/mqdata/PMD/EmsServer/datastore" listen = tcp://192.168.50.156:7222 logfile = "/mqdata/PMD/EmsServer/logs/logfile" ft_active = tcp://192.168.50.148:7222 |
4. 修改/mqdata/PMD/EmsServer/conf/factories.conf文件,添加內容以下:
[FTTopicConnectionFactory] type = topic url = tcp://192.168.50.148:7222,tcp://192.168.50.156:7222
[FTQueueConnectionFactory] type = queue url = tcp://192.168.50.148:7222,tcp://192.168.50.156:7222 |
至此,EmsServer的Fault-Tolerant Pair建立完成。
備的配置文件
Server=EMS-SERVER-RAMU(這個值必須和主服務器的tibemsd.conf 文件中的服務器參數的值一致)
Listen=tcp://7222(這個值必須和主服務器的tibemsd.conf 文件中的Ft_active 參數的值一致)
Ft_active=tcp://7222(這個值必須和主服務器的tibemsd.conf 文件中的監聽參數的值一致)
store=(這個值必須和主服務器的tibemsd.conf 文件中的存儲參數store,注意主服務器的tibemsd.conf 文件中的這個值正好是datastore)
在主上 echo '/mqdata 192.168.50.0/24(rw,sync)' >/etc/exports
/etc/init.d/rpcbind restart
/etc/init.d/nfs restart
主啓動
nohup ./tibemsd -forceStart -config /mqdata/PMD/EmsServer/conf/EmsServertibemsd.conf &
主上共享
/mqdata 192.168.50.0/24(rw)
從上掛載/mqdata目錄 最好將掛載加到rc.local中 mount -t nfs4 172.16.50.148:/mqdata /mqdata
從上啓動
nohup ./tibemsd -config /mqdata/PMD/EmsServer/conf/EmsServerBackuptibemsd.conf &
在主/備服務器的目錄/home/tibco/tools上同時創建:
vi shutdown.conf,輸入如下內容:
info show queues shutdown |
在主服務器(192.168.50.148)上的/home/tibco/tools目錄創建:
vi startEmsServer.sh,輸入如下內容:
#!/bin/sh cd /opt/tibco/ems/7.0/bin/ nohup ./tibemsd64 -config /mqdata/PMD/EmsServer/conf/EmsServertibemsd.conf& |
在主服務器上(192.168.50.148)的/home/tibco/tools目錄創建:
vi stopEmsServer.sh,輸入如下內容:
#!/bin/sh date >> shutdown.log /opt/tibco/ems/7.0/bin/tibemsadmin -script /home/tibco/tools/shutdown.conf-servertcp://192.168.50.148:7222-user admin -password [admin’s password]>> shutdown.log |
注意以上IP地址修改成對應的IP,若是沒有密碼,則不須要-password參數,下同!
在備服務器(192.168.50.156)上的/home/tibco/tools目錄創建:
vi startEmsServer.sh,輸入如下內容:
#!/bin/sh cd /opt/tibco/ems/7.0/bin/ nohup ./tibemsd64 -config /mqdata/PMD/EmsServer/conf/EmsServerBackuptibemsd.conf& |
在備服務器(192.168.50.156)上的/home/tibco/tools目錄創建:
vi stopEmsServer.sh,輸入如下內容:
#!/bin/sh date >> shutdown.log /opt/tibco/ems/7.0/bin/tibemsadmin -script /home/tibco/tools/shutdown.conf-servertcp://192.168.50.156:7222-user admin -password [admin’s password]>> shutdown.log |
啓動腳本的執行:
sh startEmsServer.sh
中止腳本的執行:
sh stopEmsServer.sh
執行後,觀察日誌確認啓動/中止狀況
經過如下幾條命令,設置tibco的admin帳號密碼。(帳戶 admin 初始密碼爲空)這裏設置爲admin,請根據實際狀況定義!
Login name (admin):
Password:
Connected to: tcp://192.168.50.148:7222
tcp://192.168.50.148:7222>set password admin [admin’s password]
Password of user 'admin' has been modified
tcp://192.168.50.148:7222>quit
bye
TIBCO EMS中queue的創建可使用API,也可使用管理控制檯創建。無論使用何種方式創建的queue,最後都將保存在queues.conf文件中。queues.conf文件爲文本文件,也能夠手工進行修改。因爲手動修改queues.conf文件後須要重啓EMS服務,並且配置信息的正確性不通過檢查,因此不建議直接修改配置文件。建議使用管理控制檯。如需進行批處理,經過在腳本中調用管理控制檯的執行程序tibemsadmin實現。
TIBCO EMS中Factory的創建也一樣可使用API和後臺管理控制檯進行修改和創建。
可是不如修改factories.conf文件來的方便。Factories。conf文件爲文本文件,也能夠手工進行修改。
以下所示:
[seashellXAConnectionFactory] ---- factory的名稱
type = xaqueue ----類型
url = tcp://192.168.50.148:7222,tcp://192.168.50.156:7222|tcp://192.168.50.148:7222,tcp://192.168.50.156:7222 --- 所使用EMSServer的list,若是以「,」表示是FT的Pair,以「|」,表示LoadBalance的Pair。
metric = connections ---使用connection數目進行LoadBalance的依據。
使用目前統一的主機監控方案,監控內容包括:
CPU使用率
內存使用
磁盤使用
硬盤I/O
CPU Load Average
使用NAS提供的SNMP接口監控
監控Tibco EMS主機與NAS直接的網絡流量,避免網絡帶寬的影響整個NAS的I/O。
一、 監控TIBCO EMS的監聽進程是否正常 telnet localhost 7222 等
二、 監控TIBCO EMS上鍊接EMS進程的網絡鏈接數
三、 監控TIBCO EMSServer上的運行日誌,對於異常的日誌進行分析
以上監控也能夠結合TibcoRTView進行,從操做系統層面和軟件層面分別進行監控,必要時使用TibcoRTView進行數據分析,進行容量的估算。
一、 Queue的深度監控:目前pending狀態的Queue的長度,超過必定長度郵件報警,必要狀況下使用Queue Clear腳本對過長的Pending隊列進行清除。
二、 Queue的流量統計:統計天天主要Queue的流量,用於容量分析
從目前的收集的各種資料顯示,因爲TIBCO EMS 的HA架構依賴於共享存儲,而共享存儲目前有多種實施方案。在這一次的實施中,咱們使用的是目前生產上已有的NAS。
如今的測試過程當中,並無以爲使用NAS的Disk I/O是瓶頸。
但在後續的壓力和容量不斷提高的狀況下,不難保證這一塊會成爲瓶頸,故指定如下升級RoadMap。
一、 將目前混用的NAS,單獨增長一個磁盤陣列用給EMS使用,避免混用形成的影響。
升級須要工做:購買新的磁盤陣列用於EMS
二、 將目前EMS使用的NAS升級到SAN結構
A、 改造目前使用的NAS架構,增長SAN架構
升級須要工做:從新規劃NAS網絡,購買光纖交換機,每臺EMS服務器增長光纖卡,NetApp的存儲購買支持SAN架構的模塊
B、 遷移目前使用的NAS共享存儲到數據庫使用SAN結構的共享存儲。
升級須要工做:每臺EMS服務器增長光纖卡,已有光纖交換機上增長接口給新增EMS服務器使用。
缺點:將與數據庫使用同一個存儲,可能會對數據庫的使用形成影響。
以上升級方案在發現NAS 的Disk I/O在其餘優化完成的狀況下,仍然是瓶頸的狀況下參考實施。
EMS自己的Load Balance功能支持EMS的橫向擴展。但因爲實現Load Balance的機制中引入Routed Queue,而Routed Queue沒法保證全部場景下事務的完整性,因此本次方案沒有采用Producer端的Load Balance。對於Topic,Load Balance是沒有對事務的限制的,但公司目前不採用Topic的機制。由於不採用Load Balance,將來EMS的升級採用以下幾種方案:
一、 升級現有的硬件設備。如目前使用的服務器(戴爾R610)還有預留空間給CPU和內存模塊,能夠將服務器的配置進行提高。因爲兩臺機器上的EMS互爲FT,能夠在不影響客戶端的情形下將Standby狀態下的機器停機進行模塊擴展,而後再開機,開機後從新進入Standby模式。對正在運行Active EMS實例的機器進行升級,須要首先停掉EMS實例或者直接停機,讓原來Standby狀態下的EMS變爲Active,而後再對機器進行硬件升級。此方案的優勢是配置簡單,但CPU數量及內存大小的增長並不必定能對EMS的總體性能有實質意義上的提高。
二、 增長FT Pair。目前的架構是使用一對Fault Tolerant的EMS實例,分別運行在不一樣的物理機器上。若是新的應用程序使用新的Queue,能夠考慮將這些Queue創建在新的FT Pair(運行在另外兩臺機器)上。此方案的前提是新的Queue不被現有的應用所使用。