-
JEUS n중화 설치WAS/JEUS 2024. 2. 13. 14:56
개발 목적으로 Webtob/JEUS 구성을 위한 분들을 위한 가이드 포스팅 :)
TmaxSoft Engineer의 기술지원 방식으로 진행되며, JEUS는 11년 연속 국내 1위 미들웨어입니다.
▶ n중화?
쉽게 JEUS를 n개를 설치하여 서비스가 중단 없도록 Infra 구성을 한다고 생각하면 됩니다.
서비스 중단이 없으면서 Session 유지가 필요할 경우에는 Enterprise 라이센스를 구입하여 Cluster를 구성하면 됩니다!
Cluster를 안하면 session이 fail-over가 되지 않게 됨으로 로그인이 풀리는 현상이 발생됩니다.
▶ n중화 서버 JEUS 설치 준비
공식적으로는 바이너리를 실행하여 Manager 모드로 설치하면 됩니다만...
해당 포스팅은 Engineer 설치 및 구성방식으로 진행도록 하겠습니다.
- 1번 서버에 설치된 JEUS를 tar로 묶기
n중화 서버를 구성하기 전에 이미 JEUS 1대가 설치가 되어 있을 것 입니다!
해당 서버에서 JEUS를 tar로 묶어 주도록 합니다!
( zip으로 압축하지 않는 이유는 압축/해제 과정에서 파일이 손상될 수 있기 때문입니다. )
[jeus85@kwas1:/sw/jeus85]$ ls ThirdPartyLicenses.txt adminServer derby domains license nodemanager templates UninstallerData bin docs lib logs setup webserver [jeus85@kwas1:/sw/jeus85]$ tar -cvf jeus.tar * # 이하 생략 [jeus85@kwas1:/sw/jeus85]$ ls ThirdPartyLicenses.txt bin domains license setup UninstallerData derby jeus.tar logs templates adminServer docs lib nodemanager webserver
- 2번 서버에 jeus.tar 옮기기
파일을 옮기는 방법은 sftp로 다운받고 업로드 하는 방식도 있지만 이것보다는 scp 명령을 통해서
server to server로 파일을 전달하는 것을 추천드립니다!
[jeus85@kwas1:/sw/jeus85]$ ls ThirdPartyLicenses.txt bin domains license setup UninstallerData derby jeus.tar logs templates adminServer docs lib nodemanager webserver [jeus85@kwas1:/sw/jeus85]$ scp -P 22 jeus.tar jeus85@100.100.100.102:/home/jeus85/ The authenticity of host '100.100.100.102 (100.100.100.102)' can't be established. ECDSA key fingerprint is SHA256:C4V2oZqhwCfFjPPawXTrIUrnlGBboNqXP8G1O45UtGk. ECDSA key fingerprint is MD5:f1:55:e3:7d:1c:a2:2b:77:c4:cc:56:0f:ec:a3:6f:ad. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '100.100.100.102' (ECDSA) to the list of known hosts. jeus85@100.100.100.102's password: jeus.tar 100% 615MB 20.4MB/s 00:30
[jeus85@kwas2 ~]$ ls jeus.tar
- 2번 서버에 사용자 변수 설정
1번 서버에 .bash_profile에 있는 내용을 2번 서버의 .bash_profile에 복붙!
[jeus85@kwas1:/home/jeus85]$ cat .bash_profile #============================================================= # COMMON ENV @KO_O KIOR #============================================================= EDITOR=vi set -o vi umask 077 export EDITOR export PS1="[\$LOGNAME@`hostname`:\$PWD]$ " export JAVA_HOME=/sw/java/openjdk-8 export PATH=$JAVA_HOME/bin:$PATH #============================================================= # JEUS ENV @KO_O KIOR #============================================================= export JEUS_HOME=/sw/jeus85 export JEUS_LOG_HOME=/swlog/jeus85 export PATH="${PATH}:${JEUS_HOME}/bin:${JEUS_HOME}/lib/system" #export PATH="${PATH}:${JEUS_HOME}/webserver/bin" #============================================================= # JEUS DomainAdminServer Set @KO_O KIOR #============================================================= export DOMAIN_NAME=kior_domain export DAS_HOSTNAME="kwas1" export DAS_PORT=19736 export DAS_URL=${DAS_HOSTNAME}:${DAS_PORT} export ENCODE_FILE=${JEUS_HOME}/bin/jeusEncode #============================================================= # JEUS Alias @KO_O KIOR #============================================================= alias jhome='cd ${JEUS_HOME}' alias jcfg='cd ${JEUS_HOME}/domains/${DOMAIN_NAME}/config' alias jbin='cd ${JEUS_HOME}/bin' alias jlog='cd ${JEUS_LOG_HOME}' alias pp='ps -ef | grep '
- 서버에 hosts파일 수정
각 서버의 hosts 파일의 JEUS와 연동될 서버의 IP와 hostname을 맵핑하여 저장합니다.
추후 해당 정보를 lookup하여 사용하기 때문에 ip가 노출되지 않아서 보안적으로 이점을 가져갑니다.
[root@kwas1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # KO_O KIOR 100.100.100.101 kwas1 100.100.100.102 kwas2
[root@kwas2 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # KO_O KIOR 100.100.100.101 kwas1 100.100.100.102 kwas2
▶ n중화 서버 JEUS 설치
n중화를 진행할 때 JEUS Engine이 설치되는 경로는 동일하게 하는 것을 권장드립니다.
프로젝트를 진행할 때도 경로와 구성은 동일하게 하는 것이 관리/운영적으로 좋기 때문입니다.
기존 1번 서버에 /sw/jeus85 하위에 Engine 홈으로 지정하였기 때문에 2번도 동일하게 경로 생성 후 tar를 해제하겠습니다.
[root@kwas2 ~]# [root@kwas2 ~]# mkdir -p /sw/jeus85 [root@kwas2 ~]# chown jeus85. /sw/jeus85 [root@kwas2 ~]# [root@kwas2 ~]# su - jeus85 마지막 로그인: 목 2월 8 10:55:44 KST 2024 일시 pts/0 [jeus85@kwas2:/home/jeus85]$ ls jeus.tar [jeus85@kwas2:/home/jeus85]$ tar -xvf jeus.tar -C /sw/jeus85/ # 해제 내용 생략
- n번서 domains 폴더 삭제하기
1번 서버가 아닌 n번 서버들은 Managed Server가 기동할 때 domains 폴더 필요 내용들을 가져옵니다.
[jeus85@kwas2:/sw/jeus85]$ ls ThirdPartyLicenses.txt adminServer derby domains license nodemanager templates UninstallerData bin docs lib logs setup webserver [jeus85@kwas2:/sw/jeus85]$ rm -rf domains [jeus85@kwas2:/sw/jeus85]$ ls ThirdPartyLicenses.txt adminServer derby lib logs setup webserver UninstallerData bin docs license nodemanager templates
- license 교체
1번 서버의 JEUS를 tar로 묶어서 왔기 때문에 라이선스도 1번기 라이센스가 적용되어 있습니다.
포스팅과 동일하게 따라왔다면 Trial 라이선스이기 때문에 hostname과 core를 별도로 체크하지 않기 때문에 변경할 필요가 없지만 따른 DEMO/REAL/TERM 을 사용중이라면 hostname을 확인하기 때문에 license가 변경되야 합니다.
- admin 관련 script 삭제
굳이 삭제하지 않아도 된다고 하지만 2번서버에서 1번서버의 재기동과 admin-console에 접근할 수 있는게 좋은 것은 아니기 때문에 삭제를 권장합니다.
[jeus85@kwas2:/sw/jeus85]$ jbin [jeus85@kwas2:/sw/jeus85/bin]$ ls | grep ds cloudserver.properties dsa dsboot dsdown [jeus85@kwas2:/sw/jeus85/bin]$ rm -rf ds*
- nodeManager 설정 변경하기
1번 서버의 JEUS tar로 묶었기 때문에 <host> 부분을 수정합니다.
[jeus85@kwas2:/home/jeus85]$ jhome [jeus85@kwas2:/sw/jeus85]$ cd nodemanager/ [jeus85@kwas2:/sw/jeus85/nodemanager]$ ls jeusnm.xml security.key [jeus85@kwas2:/sw/jeus85/nodemanager]$ cat jeusnm.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <nodeManager xmlns="http://www.tmaxsoft.com/xml/ns/jeus"> <useNodeManager>true</useNodeManager> <host>kwas2</host> <!-- <host>kwas1</host> --> <port>7730</port> <serverMonitoringPeriod>500</serverMonitoringPeriod> <serverAutoRestart>true</serverAutoRestart> <serverRestartTryCount>5</serverRestartTryCount> <serverRestartDurationTime>120000</serverRestartDurationTime> <serverRetryRestart>false</serverRetryRestart> <useSSLListener>false</useSSLListener> <logFileName>/swlog/jeus85/nodeManager/JeusNodeManager.log</logFileName> </nodeManager>
▶ nodeManager 기동하기
위에 내용 순서대로 진행하면 아래와 같은 Error를 만나게 됩니다.
[jeus85@kwas2:/home/jeus85]$ nmboot [jeus85@kwas2:/home/jeus85]$ /sw/jeus85/bin/nmboot: line 2: /swlog/jeus85/nodeManager/nm_240208111222.log: 그런 파일이나 디렉터리가 없습니다
해당 Error는 nodeManager가 기동하면서 log를 남겨야 하는데 해당 경로가 없어서 발생된 Error 이기 때문에 로그 경로를 생성해주면 해결 됩니다.
[root@kwas2 ~]# mkdir -p /swlog/jeus85/nodeManager [root@kwas2 ~]# chown -R jeus85. /swlog/jeus85
로그 경로까지 생성했다면 정상적으로 nodeManager가 기동이 됩니다.
※ 만약 nodeManager가 기동되지 않았다면 jlog를 통해서 nodemanager 로그를 확인하면 됩니다.
대부분 java가 없어서 문제가 발생됩니다.
[jeus85@kwas2:/home/jeus85]$ jlog [jeus85@kwas2:/swlog/jeus85]$ ls nodeManager [jeus85@kwas2:/swlog/jeus85]$ cd nodeManager/ [jeus85@kwas2:/swlog/jeus85/nodeManager]$ ls nm_240208111526.log [jeus85@kwas2:/swlog/jeus85/nodeManager]$ cat nm_240208111526.log *************************************************************** - JEUS Home : /sw/jeus85 - Java Vendor : etc - Added Java Option : -Djeus.io.buffer.size-per-pool=81920 -Djeus.cdi.enabled=false -Djeus.jms.server.manager.produce-wait-strategy-type=blocking -Djeus.servlet.sortWebinfLibraries=name_asc -Djava.security.egd=file:/dev/./urandom *************************************************************** + /sw/java/openjdk-11/bin/java --add-opens=java.base/java.lang=ALL-UNNAMED -Xbootclasspath/a:/sw/jeus85/lib/system/extension.jar -Djeus.launcher.log.home=/swlog/jeus/launcher -Xmx256m -Dnodemanager -classpath /sw/jeus85/lib/system/bootstrap.jar:/sw/jeus85/lib/system/activation-1.1.1.jar -Djava.library.path=/sw/jeus85/lib/system -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.naming.factory.url.pkgs=jeus.jndi.jns.url -Djava.net.preferIPv4Stack=true -Djava.util.logging.manager=jeus.util.logging.JeusLogManager -Djava.util.logging.config.file=/sw/jeus85/bin/logging.properties -Djeus.tool.webadmin.locale.language=ko -Djeus.home=/sw/jeus85 -Djeus.jvm.version=old -Djeus.properties.replicate=jeus,sun.rmi,java.util,java.net -Djeus.io.buffer.size-per-pool=81920 -Djeus.cdi.enabled=false -Djeus.jms.server.manager.produce-wait-strategy-type=blocking -Djeus.servlet.sortWebinfLibraries=name_asc -Djava.security.egd=file:/dev/./urandom jeus.server.NodemanagerBootstrapper /sw/jeus85/bin/startNodeManager: line 41: /sw/java/openjdk-11/bin/java: 그런 파일이나 디렉터리가 없습니다
여기까지 따라왔다면 nodeManager Engine을 설치가 완료되었습니다.
사실 admin쪽 설치와 다를 것은 없습니다...
다만 이미 설치하고 setting된 것이 있기 때문에 해당 Engine을 사용하여 동일한 상태를 만들기 위함입니다.
'WAS > JEUS' 카테고리의 다른 글
JEUS 2024년 변경된 Demo License 발급 정책 (0) 2024.03.14 JEUS n 중화 설정 (0) 2024.02.19 JEUS Application 로그(Log4j, Slf4j) 기록되지 안될때 (0) 2024.01.25 JEUS http-listener 설정 (0) 2024.01.24 JEUS Java 변경 (0) 2024.01.22 - 1번 서버에 설치된 JEUS를 tar로 묶기