KVM에 Bridge Network 설정

CentOS 6 에는 가상화로 KVM만 지원합니다. Xen은 빼버렸습니다. 가상화로 KVM을 하게되면 사용할 수 있게됩니다. 그런데, KVM을 활성화하게 되면 virbr0 라는 가상의 이더넷이 생성이되는데 이것이 NAT로 동작하게 됩니다. 그러니까 KVM의 게스트들은 virbr0 의 NAT를 이용해서 인터넷을 하게 되는 것입니다.

그런데 제가 집에서 사용하는 인터넷 사용환경은 공유기를 이용해서 각 피시에서 private ip 주소를 할당해서 사용합니다. 그래서 KVM의 게스트들도 직접 공유기로 부터 private ip 주소를 할당 받기를 원했습니다. 그렇게 하기위해서는 virbr0 를 NAT를 정지시키고 br0 을 만들어서 eth0와 br0를 Bridged 시키면 됩니다.

이 문서는 이것을 설명한 것입니다.

처음 KVM을 설치해서 보면 다음과 같이 나옵니다. NAT로 동작하고 있다는 증거입니다.

Bridged 로 바꿔보겠습니다. 절차는 다음과 같습니다.

  1. virbr0 를 지웁니다.
  2. eth0 에 dhcp 기능을 지우고 br0 로 Bridged 한다.
  3. br0 만드는데, dhcp 로 아이피를 새로 받도록 한다. TYPE 를 Bridged 로 해준다.

Virbr0 를 지운다. 

버추얼쉘(virsh) 명령어를 이용해 네트워크 리스트를 봅니다.

버추얼 네트워크 이름이 ‘default’로 나오네요. 이것을 지우겠습니다.

eth0 의 dhcp 를 지우고 br0 로 Bridged 한다.

다음과 같이 합니다.

br0 를 만든다.

다음과 같이 합니다.

위과정을 거치면 설정은 끝납니다. 한가지 더 있는데, 리눅스의 NetworkManager 데몬을 꺼주고 network 서비스를 다시 올려줍니다.

이제 virt-manager 로 KVM 게스트를 설치할 다음과 같이 이더넷을 설정해 주면 됩니다.

Virt-Manager 에서 Br0 설정

 

Apache 2.4 환경변수를 이용한 로그 남기기 – mod_setenvif

Apache 2.4 에서 로그를 남기는 다양한 방법이 있는데, mod_setenvif 모듈을 이용하면 다양한 조건에 부합한 것만 로그를 남길 수 있다.

위 예제는 access.2017-04-13.log 파일에 로깅을 하는데 combinedio 로 정의된 로그 포맷대로 기록하며 86400(1day) 하루에 한번 로그 로테이션을 하도록 설정한 것이다.

그런데, 만일 기록되어지는 로그중에 특정 형식의 URI 로 시작하는 경우에 별도의 로그 파일에 기록하고 싶다면 어떻게 해야할까?

위 처럼 /wp-admin 으로 시작하는 URI 를 별도 파일로 기록하고 싶다면 다음과 같이 하면 된다.

위와같이 mod_setenvif 모듈이 제공하는 SetEnvIfNoCase 문을 이용해 URI 에 형태를 정규표현식을 이용해 매칭시키고 이것을 변수로 등록한다. 그리고 CustomLog 를 하나 더 추가해 ‘combinedio env=object_is_admin’ 처럼 환경변수를 인식 시켜준다.

위와같이 하면 access_wp_admin.%Y-%m-%d.log 파일에는 /wp-admin 으로 시작하는 URI 에 대해서만 기록하게 된다.

한가지 주의할 것은 기존의 access.%Y-%m-%d.log 파일에도 여전히 /wp-admin 으로 시작하는 URI 도 함께 기록된다는 것이다. 이를 피하기 위해서 다음과 같이 지정해줄 수 있다.

access.%Y-%m-%d.log 에는 ‘combinedio env=!object_is_admin’ 을 적용함으로써 /wp-admin 으로 시작하는 URI 는 기록하지 못하도록 했다.

그런데, 만일 두가지 환경변수를 함꺼번에 적용하고 싶다면 어떻게 해야 할까?

두가지의 환경 변수를 정의했을 경우에 이 두가지를 한꺼번에 정의하기 위해서는 env 를 쓸수가 없다. env 는 OR 연산자를 제공하지 않았다. 다음의 경우

위와 같이 할 경우에 configtest 는 통과하고 재시작도 아주 잘되지만 적용되지 않는다.

이럴때는 변수 선언을 key=value 형식으로 바꾸고 CustomLog 에는 expr 를 사용해야 한다.

위와같이 expr 를 사용해 AND, OR 연산을 이용할 수 있다.

참고: How to impose two conditions at once for Apache CustomLog?

Nginx 이용한 로드 밸런싱(Load Balancing) 구현하기

Nginx 는 전세계적으로 인기있는 웹 서버 입니다. 기존 웹 서버들과 달리 고속이며 대량의 접속을 적은 자원으로 처리해줍니다. 또, Nginx 는 Reverse Proxy 기능도 아주 훌륭하게 수행하며 이에 더해서 로드밸런싱 기능도 제공하는듯 다양한 기능을 다른 웹서버들보다 훌륭하게 수행합니다.

아키텍쳐(Architecture)

먼저 다음과 같은 아키텍쳐를 생각해 봅시다.

Nginx 로드 밸런싱 아키텍쳐

AWS 에 흔히 볼수 있는 기본적인 아키텍쳐입니다. 외부 접속은 External ELB가 담당하고 이것을 뒤에 Nginx 서버가 ELB의 접속을 받아서 Nginx 뒤에 있는 Jboss EAP 서버에 분배 접속을 하도록 하는 것입니다.

Nginx 로드 밸런싱(Load Balancing)

Nginx 는 자체적으로 로드 밸런싱 기능을 제공합니다. 이는 Nginx 의 Upstream 모듈을 통해서 제공 합니다. 기본적인 설정 방법은 다음과 같습니다.

ELB 에서 Nginx 로 80 포트(port)로 접속을하면 proxy_pass 에 정의된 upstream 인 myapp1 으로 연결을 시켜주며 myapp1 upstream 에 정의된 서버 3대 중에 하나에 연결을 시켜줍니다.

upstream 에서 다양한 옵션을 제공 합니다. 대표적인 것이 Nginx 뒤에 서버의 연결 상태를 어떻게 체크할 것인가 하는 것입니다. 예를들면,

srv1.example.com 서버는 30초 동안 최대 3번 접속이 실패하면 30초 동안 접속이 불가한 것으로 판단 합니다. 30초가 지나면 또 최대 3번의 접속 실패가 발생하고 나서야 30초동안 접속을 하지 않습니다.

지속적인 서비스를 제공해야하는 상황에서 접속이 잘되는지 안되는지 실제로 접속을 해봐야만 한다면 고객들에게 불편을 제공할 것입니다.

AWS ELB 방식

AWS ELB 방식은 위 Nginx 의 max_fails 방법과는 다릅니다. ELB 는 뒤에 연결되는 인스턴스(Instance)가 살았는지 죽었는지를 판단하는 Health Check 기능을 제공합니다. 이것은 5초에 한번 Health Check 를 하고 10번이상 성공했다면 인스턴스가 살았다라고 판단해(InService 상태) 연결을 활성화 해줍니다. 만일 5초에 한번 Health Check 를 하는데 2번 실패를 했다면 인스턴스가 죽었다고 판단해(OutOfService 상태) 더 이상 연결을 시도하지 않습니다.

즉, 일정한 기준을 만족해야만 연결을 활성화 해준다는 겁니다. Nginx 에서도 이렇게 동작하면 얼마나 좋을까?

nginx_http_upstream_check_module

nginx_http_upstream_check_module 모듈은 Nginx.org 에서 배포하지 않고 개인 개발자가 개발한 Third Party 모듈 입니다. 이 모듈은 앞에서 언급했던 ELB 의 Health Check 기능을 제공해 줍니다. 특정한 기준을 통과하면 연결을 활성화 시켜주는 것입니다.

이를 활용하기 위해서는 Nginx 설치시에 같이 컴파일 설치를 해줘야 합니다.

Nginx 설치

이번 Nginx 설치는 Upstream Health Check Module 를 함께 설치하는 과정을 포함 합니다.

설치 환경은 다음과 같습니다.

  • Ubuntu 14.04 64bit
  • 컴파일을 위해서 설치한 패키지들: build-essential, automake, unzip, patch, libpcre++-dev, zlib1g-dev, geoip-bin, libgeoip-dev

Nginx 다운로드를 해줍니다.

nginx_http_upstream_check_module 는 git를 이용해서 다운(?) 받습니다.

이제 Nginx 에 nginx_http_upstream_check_module 다음과 패치를 해줍니다.

그리고 다음과 같이 서버 Signiture 를 바꿔 줍니다.

이렇게하면 서버가 PowerServer/1.0 이라고 나와서 Nginx 를 쓴다는것을 숨길 수가 있습니다.

마지막으로 openssl 최신 소스를 다운받아 nginx 디렉토리에 놓습니다.

 

Nginx 설정하기

설치가 끝났다면 이제 설정을 해야 합니다. 설정에 앞서서 현재 Nginx 의 아키텍쳐를 상기시켜봅시다.

  • Nginx 앞에는 AWS ELB 에 있다. AWS ELB 는 실제 접속자인 Client IP 를 ‘X-Forewarded-For’ 헤더값에 저장해 넘겨준다.
  • Nginx 뒤에는 두대의 WAS 서버가 존재한다.
  • Nginx 는 뒤에 두대의 WAS 에 대해서 Health Check 하고 특정값 기준으로 Alive/Down 을 결정하도록 한다.

위 내용을 설정에 반영하면 다음과 같습니다.

먼저 7번째 줄에 Nginx 에서 실제 IP를 ‘X-Forewarded-For’ 헤더 값이라고 알려 주도록 설정한 것입니다. 8번째 줄은 AWS ELB 의 주소 범위를 말합니다. Nginx 는 AWS ELB 로부터 접속을 받기 때문에 그것을 지정해줄 필요가 있는데 그것이 바로 8줄 설정입니다. 12줄 ~ 14줄은 뒤에 WAS 서버에 넘겨줄 헤더값을 지정해주고 있습니다. WAS 서버도 실제 Client IP가 필요하기 때문에 이것을 ‘X-Forewarded-For’ 에 지정해 줍니다. 그외에 ‘X-Forewarded-Server’, ‘X-Forewarded-Host’ 도 지정해 줍니다.

18번째 줄부터는 이제 upstream 설정하는 부분인데, 24줄이 Health Checker 를 해주는 부분으로 nginx_http_upstream_check_module 기능 입니다. 3초에 한번 체크를 하는데 그 방법은 TCP를 이용하고 5번 연속으로 실패할 경우에 뒤에 서버는 다운된것으로 하고 2번 연속 성공하면 뒤에 서버가 살아있는것으로 해서 연결을 시켜줍니다. 마치 AWS ELB 처럼 동작하는 것입니다.

/status URL 을 호출하면 다음과 같이 나옵니다.

Nginx Upstream Health Status
Rise Counts, Fall counts 는 3초마다 체크해서 그 수를 센 것입니다. 현재 뒤에 WAS 서버들이 하나는 살아 있고, 하나는 죽은것으로 되어 있고 Down 된 서버는 빨강색으로 표시됩니다.

체크하난 프로토콜을 변경할 수 있는데, http 를 이용할 경우에 보내는 url 과 기대되는 리턴되는 http 의 상태값(status)를 지정해주면 됩니다.

WebLogic 11g 기동시 JAVA OPTION 넣기

WebLogic 11g 기동시 JAVA OPTION 넣기위해서 setDomainEnv.sh 나 commonEnv.sh 를 수정하는 경우가 있다. 하지만 이렇게 하면 WebLogic 11g 를 구성하는 Admin, NodeManager, ManagedServer 에 각각 따로따로 적용해주기위해서 앞에서 언급한 쉘 스크립트에 조건식을 줘야 한다.

setDomainEnv.sh 나 commonEnv.sh 는 WebLogic 서버에서 전역적으로 사용하는 것이기 때문에 특정한 부분을 위해서 수정하는 경우는 지양해야 한다.

최신의 WebLogic 11g 에서는 이러한 특정부분만을 위해 적용할 수 있는 JAVA OPTION 변수를 제공하는데 그것이 바로 USER_MEM_ARGS 이다. 쉘 환경변수로서 이것을 활용하면 Admin, NodeManager, ManagedServer 기동시에 JAVA OPTION을 줄 수 있다.

예를들어 Admin 서버를 기동할때에 사용하는 스크립트인 ${DOMAIN_HOME}/startWebLogic.sh 를 보자.

위와 같이 USER_MEM_ARGS 환경변수에 JAVA OPTION 값을 지정하면 WebLogic 이 구동시에 이것을 반영하게 된다.

ManagedServer 기동시에도 마찬가지다. 보통 ManagedServer 기동은 다음과 같이 한다.

하지만 이렇게하면 JAVA OPTION을 제공할 수가 없다. Server-0 로 불리우는 ManagedServer 기동을 위해서 일종의 랩퍼 스크립트를 다음과 같이 작성해보자.

위와같이 USER_MEM_ARGS 쉘 환경변수에 JAVA OPTION 값을 지정하면 이것을 반영하하여 Server-0 는 기동하게 된다.

WebLogic 11g 클러스터 설정.

WebLogic 11g 에서는 ManagedServer 를 클러스터 설정을 제공합니다. 역시나 Admin Web Console 을 통해서 클릭으로만으로 쉽게 간단하게 설정이 가능합니다.

WebLogic 11g 클러스터 설정

Admin Web Console 에서 다음과 같이 설정이 가능 합니다.

웹로직 11g 클러스터 생성
웹로직 11g 클러스터 생성

왼쪽에서 클러스터를 누르고나면 위 화면과 같이 나오고 “새로 만들기” 버튼을 눌러서 생성을 할 수 있습니다.

웹로직 11g 클러스터 생성
웹로직 11g 클러스터 생성

생성할 클러스터 이름을 입력해 줍니다. 적절한 이름을 입력해주면 됩니다. 두번째로 클러스터 멤버간 메시징을 위한 방법을 정의해줍니다. 유니캐스트와 멀티캐스트가 있는데 유니캐스트의 경우에는 클러스터 노드가 많지 않을 경우에 사용하는게 적절해 보이며 반대일 경우에는 멀티캐스트로 하는것이 적절해 보입니다.

생성이 완료되면 이제 생성된 클러스터에 대해서 설정을 해야 합니다. 클러스터 메뉴에서 생성된 클러스터를 클릭하면 다음과 같은 화면을 보실 수가 있습니다.

웹로직 11g 클러스터 로드 설정
웹로직 11g 클러스터 로드 설정

로드 알고리즘은 클러스터간 로드를 어떻게 분배할 것인가에 대한 것으로 서비스 형태에 따라 적절히 선택해주면 됩니다. 클러스터 주소의 서버 수는 클러스터에 나열할 서버 개수를 지정해 줍니다.

웹로직 11g 클러스터 서버 추가
웹로직 11g 클러스터 서버 추가

클러스터 메뉴에서 서버 탭에서 추가 버튼을 클릭해서 서버를 추가 할 수 있습니다. 서버를 추가할때에는 기존의 생성된 서버를 추가할 수 있고 서버를 생성하면서 추가할 수도 있습니다. 서버를 추가하면서 생성할때에는 NodeManager 서버가 실행중이여야 합니다.

Session Replication between Cluserted Node

클러스터내 서버끼리 세션을 복재하고 공유하기위해서는 weblogic.xml 을 다음과 같이 설정 해 주어야 합니다.

이렇게 설정한 후에 WebLogic 클러스터앞에 Proxy 서버를 설정하고 도메인으로 호출을 하면 클러스터간에 세션이 공유 됩니다.

추가

위 설정은 NodeManager 를 이용한  설정이다. 만일 NodeManager 없이 ManagedServer 를 구동한다면 Java CLI 에 다음을 추가 해줘야 한다.

 

Oracle 11gR2 설치

Oracle 11gR2 설치

Silent Installation 방식이며 OFA(Optimal Flexible Architecture) 를 따른다.

환경

  • CentOS 6.8 64bit
  • Memory 4GB
  • Swap 8GB (Swap must be enabled double the size of RAM)
  • Storage Size 50GB

호스트네임 변경

Selinux 설정 변경

Kernel 3.10 설치

설치 완료하고 나서 reboot.

계정생성

 

의존성 패키지 설치

 

OFA 디렉토리 생성

 

sysctl.conf

 

/etc/security/limits.conf

/etc/security/limits.d/90-nproc.conf

 

/etc/pam.d/login

 

/etc/oraInst.loc

oracle 계정으로 로그인 한후에 Oracle 11gR2 바이너리 설치 파일을 다음과 같이 압축 해제.

 

Silent 설치를 위한 파일 작성

 

Silent 설치 파일 설행.

설치 시간은 시스템에 따라 다르지만 설치하는 동안에 java 프로세스가 동작한다. 그리고 설치가 성공하면 위와같이 메시지가 나온다.

oracle bashrc 설정.

 

Create Database

inito11c.ora 를 위와 같이 작성하고 다음과 같이 디렉토리를 작성한다.

oracle 사용자의 기본 그룹을 dba 로 변경합니다.

다음과 같은 내용으로 credb.sql 파일로 작성한다.

oracle 을 nomount 로 시작시킨다. 그리고 위 credb.sql 를 실행한다.

Create a Data Dictionary

Configure Listener

그리고 listener 를 시작.

 

SYS 패스워드 파일 생성.

 

EM 수동 구성

EM 시작/중지

시작과 중지는 다음과 같이 합니다.

 

Oracle 12c 설치

Oracle 12c 설치

Silent Installation 방식이며 OFA(Optimal Flexible Architecture) 를 따른다.

환경

  • CentOS 7 64bit
  • Memory 8GB
  • Swap 16GB (Swap must be enabled double the size of RAM)
  • Storage Size 40GB

호스트네임 변경

 

계정생성

 

의존성 패키지 설치

 

OFA 디렉토리 생성

 

sysctl.conf

 

/etc/security/limits.conf

 

/etc/security/limits.d/20-nproc.conf

 

/etc/oraInst.loc

 

oracle 계정으로 로그인 한후에 Oracle 12c 바이너리 설치 파일을 다음과 같이 압축 해제.

 

Silent 설치를 위한 파일 작성

 

Silent 설치 파일 설행.

설치 시간은 시스템에 따라 다르지만 설치하는 동안에 java 프로세스가 동작한다. 그리고 설치가 성공하면 위와같이 메시지가 나온다.

oracle bashrc 설정.

 

Create Database

inito12c.ora 를 위와 같이 작성하고 다음과 같이 디렉토리를 작성한다.

다음과 같은 내용으로 credb.sql 파일로 작성한다.

oracle 을 nomount 로 시작시킨다. 그리고 위 credb.sql 를 실행한다.

Create a Data Dictionary

Configure Listener

외부인증을 위한 패스워드 파일을 생성한다. 이것을 생성하지 않으면 외부로부터 접속을 할때에 인증정보가 아무리 맞아도 ora-01017 메시지를 내보낸다. 다음과 같이 패스워드 파일을 생성해 준다.

listener 를 시작.

EM Database Express 12c 활성화.

lsnrctl status 에서 8080 포트가 보이면 정상. http://ip:8080/em 으로 접속해서 로그인 화면 나오면 정상입니다.

Mac 에서 JAVA_HOME 찾기

참조: http://stackoverflow.com/questions/6588390/where-is-java-home-on-osx-sierra-10-12-el-captain-10-11-yosemite-10-10

Mac 에는 여러버전의 Java 가 설치되어 있습니다. 그런데, 가끔씩 JAVA_HOME 이 어디인지를 알고 싶을때가 있습니다. 그럴때 다음과 같이 하면 알수 있습니다.

 

 

WebLogic 서버 복제하기

이 문서는 WebLogic 서버 복제하기에 대한 문서 입니다.

WebLogic 버는 여러서버에 걸쳐서 설치가 되고 이들을 한대로 묶어 하나처럼 동작하도록 할 수 있습니다. 이를 위해서는 모든 서버의 설치버전과 환경설정등이 모두 동일 해야 합니다.

만일 WebLogic 서버가 10대 정도라고 하면 10대 서버 모두 새롭게 설치하는 절차를 거쳐서 만들어야 합니다. 그리고 모두 설정을 같게 해줘야 한다. 그런데 사람은 언제나 실수를 할 수가 있어 잠제적인 장애요소를 남기게 됩니다.

이럴때 필요한 것이 1대 서버에 설치를 하고 설치되고 설정이 모두 된 WebLogic 10.3.6 서버를 다른 서버에 그대로 복사해 넣으면 아주 편할 것인데, WebLogic 10.3.6 서버는 이러한 작업을 위한 간단한 스크립트를 제공합니다.

WebLogic 10.3.6 서버 복제는 다음과 같이 이루어진다.

  • WebLogic Home 복제
  • Domain 복제
  • 새로운 서버로 복제한 파일 전송
  • WebLogic Home 복구
  • Domain 복구
  • 설정 변경

WebLogic Home 복제

WebLogic 10.3.6 은 WebLogic 서버 본체라할 수 있는 홈 디렉토리가 존재 합니다. 모든 WebLogic 의 라이브러리와 명령어들이 모두 WebLogic Home 디렉토리에 존재합니다. 이것이 없으면 WebLogic 이 구동될 수 없습니다.

WebLogic Home 디렉토리 복제는 ‘clone.sh’ 스크립트를 통해서 가능합니다.  이 스크립트는 다음의 위치에 존재합니다.

이제 WebLogic 10.3.6 의 홈 디렉토리를 복제를 다음과 같이 합니다.

시스템 계정의 홈 디렉토리에 mwhome.jar 로 생성됩니다.

Domain 복제

Domain 복제는 ‘pack.sh’ 스크립트를 통해서 할 수 있습니다.

다음과 같이 Domain 복제를 합니다.

위와같이 ‘succeed’ 메시지가 나오면 성공한 것 입니다.

복구를 위한 사전 준비

복구를 위해서 다른 서버를 준비해야 합니다. 그 서버에는 기본적으로 다음과 같은 사항이 정리되어 있어야 합니다.

  • 원본 서버와 동일한 자바(JAVA) 가 설치되어 있어야 한다.
  • 원본 서버와 동일한 WebLogic 디렉토리를 가지고 있어야 한다.

WebLogic Home 복구

WebLogic Home 복구는 jar 파일을 jar 명령어로 압축해제함으로써 완료 됩니다.

별거 없습니다. 위 명령어로 복구가 완료 됩니다.

여기서 한가지 더 해줘야 할 것이 nodemanager 를 위한 복구 프로세스 입니다. nodemanager 는 WebLogic Admin 서버와 통신을 하면서 Node 를 관리하는 역활을 담당합니다. Node 에 Managed Server 를 생성하거나 삭제, 시작, 중지등을 Admin 서버에서 하기위해서는 nodemanager 서버가 있어야 합니다.

문제는 nodemanager 서버는 서버에 종속되는 설정값을 가져야 하기 때문에 서버를 복제하고 난후에 서버환경을 다시 인식시켜줘야 합니다.  방법은 다음과 같습니다.

restore.sh 스크립트를 실행하면 WebLogic Home 디렉토리에 퍼미션이나 각종 설정파일들이 서버 환경에 맞춰 재조정됩니다.

이제 Node Manager 서버를 다음과 같이 새롭게 구성해 줍니다.

Node Manager 를 실행하면 nodemanager.properties 파일에 각종 환경설정을 정리하고 nodemanager.domains 파일을 생성합니다. 그런데, nodemanager.properties 에 내용을 변경해야하기 때문에 Node Manager 를 중단시킨 겁니다.

nodemanager.properties 파일중에 다음과 같이 수정해 줍니다.

WebLogic Domain 복구

복제할때에 ‘pack.sh’ 명령어를 썼었는데 복구할때는 ‘unpack.sh’ 명령어를 사용 합니다.

복구가 완료 되면, 이제 Domain 설정파일에서 호스트 이름을 현 시스템으로 바꿉니다. 그것은 /home/systemv/wl_domain/mCloud/config/config.xml 파일인데, 여기서 호스트명을 현 시스템으로 바꿔주고 불필요한 Managed Server 리스트, deployment 를 삭제처리 해줍니다.

이제 WebLogic Web Console 에서 ‘환경 -> 시스템’ 에서 노드매니져 서버를 등록 해줍니다.

서버 등록

이제 서버(Managed Node)를 등록 해줍니다. 생성을 한 후에 시스템을 새롭게 실행한 노드매니져 서버로 지정해 줍니다.

서버의 시스템 서버 설정
서버의 시스템 서버 설정

그리고 서버를 시작하면 인증 오류가 발생하면서 서버가 시작되지 않습니다.

인증을 위한 한번 수동으로 Managed Node 서버 시작

Admin 서버와 복제 서버간의 통신을 위한 5556, 7001 포트를 개방해 줍니다. 그리고 복제 서버에서 다음과 같이 수동으로 서버를 시작해 줍니다.

위와같이 한번 수동으로 서버를 시작하면 Admin 서버에서 ManageServer 를 이용해서 서버를 시작하거나 종료할때 인증 오류가 발생하지 않습니다.

 

Weblogic 10.3.6 Node Manager 사용하기

Weblogic 10.3.6 에는 Node Manager 가 존재합니다. Node Manager 는 하나의 도메인에 존재하는 서버로 말 그대로 노드를 관리하는 기능을 합니다. 좀 더 들어가면, Node Manager 의 주요 기능은 도메인에 추가된 Managed Server 를 생성,삭제,시작,중지등을 가능하도록 해줍니다.

만일 Node Manager 가 존재하지 않는다면, Managed Server 를 Web Console 을 통해서 생성을 할 수 있지만 Managed Server 를 시작하기 위해서는 터미널에서 커맨드 라인으로 직접 시작 명령을 주거나 아니면 WST 를 이용해서 시작을 시켜줘야 합니다.

Admin Server, Managed Server 는 도메인에 귀속되지만 Node Manager 는 머신(Machine)에 귀속됩니다. 그래서 시작스크립트도 $MW_HOME 에 존재합니다.

Node Manager 시작

Node Manager 시작은 다음과 같이 합니다.

최초로 Node Manager 를 실행하면 화면에 Node Manager 설정 관련 내용이 화면에 출력됩니다. 이 내용은 $MW_HOME/common/nodemanager 디렉토리에 nodemanager.properties 파일에 기록 됩니다. 여기서 자세히 보면 “SecureListener=true” 로 된 것이 보입니다. 이것은 NodeManager 와의 연결을 SSL 을 통해서 하겠다는 겁니다.

위 설정은 $MW_HOME/common/nodemanager/nodemanager.properties 파일에 저장되어 있고 SecureListener 부분을 false 로 바꾸고 Node Manager 를 재 실행해 줍니다.

이제 Node Manager 를 등록해 줍니다.

Node Manager 등록

Node Manager 등록은 WebLogic 의 관리자 페이지에서 ‘환경->시스템’ 에서 할 수 있습니다. 관리자 콘솔에서는 Node Manager 등록이라고 안하고 시스템이라고 표현합니다.

Node Manager 등록
Node Manager 등록

‘새로 만들기’ 를 클릭해서 등록 화면으로 넘어갑니다.

Node Manager 이름 등록
Node Manager 이름 등록

시스템 이름을 지정해 줍니다. ‘다음’ 으로 넘어 갑니다.

Node Manager 정보 입력
Node Manager 정보 입력

여기서 ‘유형’ 을 일반으로 해줍니다. 앞에서 SeucureListener 를 false 로 해줬기 때문에 일반 접속 유형으로 Node Manager 가 통신을 합니다. 그리고 수신 주소, 수신 포트 등을 알맞게 입력하고 ‘완료’ 해 줍니다.

서버 설정

이렇게 Node Manager 를 등록하게 되면 이미 생성된 서버나 생성할 서버에 ‘시스템’ 을 지정해 줄 수 있습니다. 서버 목록중에 생성된 서버를 클릭해서 들어가면 ‘일반’ 탭에 서버 정보가 나오는데, 여기서 시스템을 드롭박스를 이용해서 선택해줍니다. 이렇게 되면 이 서버는 선택한 시스템에 생성되고 제어 됩니다.