• 테스트 환경
    • Docker CE - 20.10.17
    • Base Image 는 centos 7 사용했습니다.




STEP1. IS 에 WeasyM, WeasyMAgent 패키지 설치 및 config 파일 업로드
CASE1. 컨테이너 환경 안에 MSR이 (IS) 이미 설치 되어 있는 경우

    • fetch.flue.sink.hostname : weasyM 모니터링 서버 컨테이너가 올라갈 호스트의 주소로 수정




    • weasym.agent.conf.path : {SAG_HOME}/WeasyMAgent/conf 로 수정
      • agentconf.properties 파일이 위치한 경로
      • MSR 이미지 build 시 기본 SAG_HOME이 opt/softwareag 로 설정 되어있음




  • docker cp 명령어로 패키지 및 설정 파일 이관

$ docker cp {호스트 VM 경로}/WeasyM.zip /opt/softwareag/IntegrationServer/replicate/inbound/
$ docker cp {호스트 VM 경로}/WeasyMAgent.zip /opt/softwareag/IntegrationServer/replicate/inbound/
$ docker cp {호스트 VM 경로}/WeasyMAgent /opt/softwareag/ (설정파일)



  • IS 에서 Package Install




CASE2. MSR을 새로 설치 할 경우 다음 가이드를 참조
    • 2. [Microservices Runtime] weasyM 연동 설정 가이드




STEP 2. *.tar -> Docker image 이미지 로드

$ docker load -i {tar 파일 Full Path}




STEP3. Container 시작

$ docker run -d --privileged -p 18080:18080 -p 19000:19000 -p 55432:5432 -p 7787:7787 --name test centos7:weasyM_docker /sbin/init

  • --name > 컨테이너명 설정
  • -p {Host 포트} : {Container 포트} > 포트 매핑 설정
    • 18080 -> weasyM
    • 19000 -> haproxy 포트 ( flume 수집기용도 )
    • 55432 : 5432 -> postgreSQL 포트 (기본포트 5432)




STEP4. Container 환경 접속

$ docker exec -it --user root "CONTAINER ID" /bin/bash
>> Container id 는 docker ps -al 명령어로 확인 (centos7:weasyM_docker)

* 단일 컨테이너 명령
$ docker exec -it --user root `docker ps -al|grep -v "CONTAINER"|cut -b1-12` /bin/bash




STEP5. postgres 유저 변경 & 환경 변수 로드

$ su postgres -
$ cd
$ source .bash_profile
$ java -version





STEP6. ip 확인 & HAproxy 설정파일 수정

  • 컨테이너 기동 시 마다 컨테이너의 ip가 바뀌기 때문에 haproxy의 설정 파일 수정 필요

$ vi /etc/hosts

(예시)

127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 0ed86eec1109


$ gowe
$ vi haproxy/haproxy.cfg

  • 해당 부분을 컨테이너의 ip로 수정




STEP7. weasyM 설정파일 수정

$ cd /data/weasym-server/conf
$ vi sysconf.properties

  • IS 서버 정보를 fetch.server.N 배열 구조로 설정

    • (예시)
fetch.server.1.name=DEV_IS(5610) //정보 수정 필요
fetch.server.1.isserver=Y
fetch.server.1.use=Y
fetch.server.1.use.is=Y
fetch.server.1.use.broker=N
fetch.server.1.use.adapter=N
fetch.server.1.use.scheduler=Y
fetch.server.1.desc=대외 인스턴스(5610)
fetch.server.1.is.server=10.68.239.152:5610 // 정보 수정 필요
fetch.server.1.is.serverid=TIS01:5510 // 정보 수정 필요
fetch.server.1.is.userid=Administrator
fetch.server.1.is.password=manage

    • isserver=Y는 IS임을 의미합니다. (반대로, isserver=N는 IS가 아님을 의미)
    • use=Y는 설정하는 서버의 정보를 활성화 할지를 의미합니다. (반대로 use=N는 사용하지 않는다는 의미)
    • 취소선으로 표시한 설정은 10.11 이전 버전의 IS와 Broker를 사용하기 위한 구버전의 호환을 위한 정보입니다. 따라서, CJ대한통운 택배에서는 10.11 최신 버전을 사용하고 있으므로 설정하지 않습니다.
    • use.scheduler=Y는 대시보드에서 모니터링을 스케쥴링으로 할지를 결정합니다. (N으로 설정되면 대시보드에서 서버의 정보가 갱신되지 않음)
    • desc는 서버의 설명을 한글로 등록합니다.
    • is.server는 IS의 IP 주소 : 포트 번호를 등록합니다.
    • is.serverid는 서버의 hostname : 해당 인스턴스의 포트번호를 등록합니다.
    • is.userid는 IS의 관리자 계정을 등록합니다.
    • is.password는 IS의 관리자 비밀번호를 등록합니다.




STEP8. weasyM 서버 기동

$ gowe
$ ./bin/startup.sh







  • PostgreSQL 계정 정보
    • ID : postgres
    • PW : cudoWeasyMPostgres

  • HAproxy 접속 계정 정보 ( http://{ContainerIP}:7787 )
    • ID : administrator
    • PW : weasymflume

  • weasyM 로그인 ID
    • ID : wmadmin
    • PW : wmadmin