ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.