티스토리 뷰
본 포스팅은 JEUS7 운영자를 위한 모니터링 가이드 및 기동 종료 가이드입니다.
JEUS7 환경 및 구성
관련 있는 서버들의 그룹으로 기본 관리 단위이다. 하나의 도메인은 비즈니스에 따라 여러 개의 서버와 클러스터로 구성된다.
Domain Administrator Server(DAS) : 도메인 전체의 설정, 도메인 전체의 application을 관리
Managed Server(MS):도메인 : 업무가 서비스 되는 서버.
Webadmin : DAS에 Deploy 되는 관리자 application (http://서버ip:basaeport/webadmin으로 접속)
jeusadmin : 모니터링 Tool
nodemanager : server의 상태를 monitoring 하는 process이며, webadmin, jeusadmin에서 MS를 기동할 때 사용한다.
JEUS7 디렉토리 구조
디렉토리 | 내용구분 |
$JEUS_HOME | JEUS가 설치된 최상위 디렉터리. 하위 디렉터리 포함. |
bin | 서버의 시작 및 종료 스크립트인 startDomainAdminServer, startManagedServer, stopServer와 JEUS 콘솔 툴(jeusadmin)과 같은 실행 파일들이 위치한다 |
derby | 샘플 애플리케이션이나 테스트에서 쉽게 사용할 수 있도록 Apache Derby를 포함시킨다 |
docs | JEUS에서 제공하는 API에 대한 javadoc이 존재한다. |
domains | 하위에 도메인별로 DOMAIN_HOME과 JEUS_HOME에서 사용하는 노드 정보가 포함된 nodes.xml이 존재한다. |
nodemanager | JEUS nodemanager를 위한 설정파일인 jeusnm.properties 파일이 위치한다. |
samples | JEUS의 예제들이 있다. |
setup | JEUS 설치 후 사용할 수 있도록 환경을 구축하기 위해 필요한 파일들이 위치한다. |
lib | JEUS 가 부팅될 때, 이 디렉터리의 모든 서브 디렉터리를 스캐닝해서 .jar 파일이나 .zip 파일을 classpath로 추가한다. 서브 디렉터리 스캐닝 순서는 system à application à datasource 순이다. |
lib/application | 사용자 어플리케이션에서 사용하는 클래스 파일이 위치한다. 이 디렉터리에 있는 모든 .zip 파일이나 .jar 파일, 디렉터리 형태의 일반 클래스들은 classpath로 추가된다. 클래스 파일은 .jar나 .zip 파일 보다 먼저 읽힌다. |
lib/system | JEUS가 사용하는 라이브러리를 가지고 있다. 그러므로 사용자는 이 디렉터리를 수정해서는 안 된다. .so나 .dll 같은 Native Driver(예를 들면, Connector Resource Adapter에서 필요한 드라이버 등……)는 이 디렉터리에 놓여야 한다. 또 여기에는 JEUS의 클래스인 jeus.jar가 있다. |
lib/datasource | JDBC 드라이버나 Connector Resource Adapter(“RA”)의 .jar파일과 설정 파일이 위치한다. |
lib/schemas | XML 설정 파일을 위한 XML Schema파일이 위치한다. |
license | JEUS 라이선스 파일이 있다. |
<디렉토리 구조>
JEUS7 환경 파일 위치 : $JEUS_HOME/domains/[도메인명]/config/domain.xml
JEUS7 기동/다운
기동 : startDomainAdminServer –u USER -p PASSWORD
다운 : stopServer -host DAS_IP:DAS_BASEPORT -u USER -p PASSWORD
b. MS 기동/다운기동 : startManagedServer -dasurl DASIP:DAS_BASEPORT -domain DOMAIN_NAME -server MS_NAME –u USER -p PASSWORD
다운 : stopServer -host MS_IP:MS_BASEPORT -u USER -p PASSWORDc. nodemanager 기동/다운
기동 : startNodeManager다운 : stopNodeManager -host nodemanager_IP:nodemanager_BASEPORT
운영자 모니터링을 위한 jeusadmin 사용하기
JEUS를 직접 관리하기 위해 사용하는 콘솔 툴이다. 이 툴을 사용하면 JEUS 서버의 기동과 종료와 같은 기본적인 관리 작업을 할 수 있으며 애플리케이션의 deploy/undeploy와 logger 레벨 변경 작업, JMX MBean의 목록 조회 등 여러 가지 주요 작업을 할 수 있다.
a. Jeusadmin 접속 하기
suntest:/user/mkko/jeus7/bin>jeusadmin -host 192.168.1.221 -port 19736 -u administrator -p jeusadmin
Attempting to connect to 192.168.1.221:19736.
The connection has been established to Domain Administration Server adminServer in the domain jeus_domain.
JEUS7 Administration Tool
To view help, use the 'help' command.
[DAS]jeus_domain.adminServer>
b. Jeusadmin 종료 하기
[DAS]jeus_domain.adminServer>exit
suntest:/user/mkko/jeus7/bin>
c. 명령어 반복 하기
[DAS]jeus_domain.adminServer>명령어 -repeat 반복횟수 -interval 시간 텀
Examples
help -l -repeat 3 -interval 10 > result.txt
help -l 명령을 10초 간격으로 3회 반복 result.txt로 생성
-repeat <count>
Repeats the target command X times.
-interval <seconds>
Specifies the interval at which to repeat execution, in
seconds.
[(>|>>) FILENAME]
Prints the result of the target command to the specified file.
d. si - 서버 상태 확인 명령어
Server 상태, pid등 상태를 확인 할 수 있다.
[DAS]jeus_domain.adminServer>si
Information about Domain (jeus_domain)
=============================================================================
+-------+---------+-----+-----+-----+-----------------+--------+---------------+
| Server| Status | Node| PID | Clus| Latest Start | Need to| Listen Ports |
| | |Name | | ter | Time / Shutdown |Restart | |
| | | | | | Time | | |
+-------+---------+-----+-----+-----+-----------------+--------+---------------+
| adminS| RUNNING | ibmt| 5857| N/A | Sat Jan 18 | true | BASE-192.168.1|
|erver(*|(3805 |est |30 | |19:50:03 KST 2014| |.221:19736 |
|) |sec) | | | | | | http-server-0.|
| | | | | | | |0.0.0:18808 |
| | | | | | | | jms-internal-0|
| | | | | | | |.0.0.0:19941 |
+-------+---------+-----+-----+-----+-----------------+--------+---------------+
| bis | SHUTDOWN| ibmt| N/A | N/A | N/A | N/A | N/A |
| | |est | | | | | |
+-------+---------+-----+-----+-----+-----------------+--------+---------------+
| exp | SHUTDOWN| ibmt| N/A | N/A | N/A | N/A | N/A |
| | |est | | | | | |
+-------+---------+-----+-----+-----+-----------------+--------+---------------+
| fpms | SHUTDOWN| ibmt| N/A | N/A | N/A | N/A | N/A |
| | |est | | | | | |
+-------+---------+-----+-----+-----+-----------------+--------+---------------+
| fpms2 | SHUTDOWN| hpte| N/A | N/A | N/A | N/A | N/A |
| | |st | | | | | |
+-------+---------+-----+-----+-----+-----------------+--------+---------------+
| fpms3 | RUNNING | sunt|25346| N/A | Sat Jan 18 | true | fpms3base-192.|
| |(2883 |est | | |20:04:43 KST 2014| |168.1.220:21736|
| |sec) | | | | | | |
+-------+---------+-----+-----+-----+-----------------+--------+---------------+
| tpo | SHUTDOWN| ibmt| N/A | N/A | N/A | N/A | N/A |
| | |est | | | | | |
+-------+---------+-----+-----+-----+-----------------+--------+---------------+
e. startserver / stopserver - MS서버 기동/다운 (nodemanager를 통해 MS가 관리 되는 경우에만 사용 가능)
MS를 기동 또는 종료한다.
[DAS]jeus_domain.adminServer> startserver fpms3
The server [fpms3] was successfully started.
[DAS]jeus_domain.adminServer>
[DAS]jeus_domain.adminServer> stop-server fpms3
Server [fpms3] was successfully stopped.
[DAS]jeus_domain.adminServer>
f. app-info - application 정보 확인
[DAS]jeus_domain.adminServer>application-info
Application information for the domain [jeus_domain].
=============================================================================
+---------+----------+----------+---------+----------+-------------------------+
| Applicat| Applicati| State | Server | Cluster | Application Path |
| ion ID | on Type | | Targets | Targets | |
+---------+----------+----------+---------+----------+-------------------------+
| exp | WAR | DEPLOYED | exp | | /user/mkko/webapp/exp |
+---------+----------+----------+---------+----------+-------------------------+
| fpms | WAR | RUNNING | fpms,fpms3 | | /user/mkko/webapp/fpms |
+---------+----------+----------+---------+----------+-------------------------+
| hello-ejb.jar | EJB | DEPLOYED | fpms | | /user/mkko/webapp/ejbhome/test/hello-ejb.jar |
+---------+----------+----------+---------+----------+-------------------------+
| tpo | WAR | DEPLOYED | tpo | | /user/mkko/webapp/tpo |
+---------+----------+----------+---------+----------+-------------------------+
g. servlet work thread 상태 모니터링(ti)
webserver와 JEUS간의 연결thread 상태를 확인 할 수 있다.
위의 정보를 통하여 정보를 통하여 현재 실시간으로 들어오고 있는 uri 정보를 볼 수가 있다.
ti 정보를 통해서는 rt(=run time)라는 수행시간정보를 통하여 해당 호출된 서비스가 waiting에 빠졌는지, 처리가 얼마나 걸리는지를 실시간 모니터링 할 수가 있다. 만일 rt 시간이 비정상적으로 길어지거나, 모든 연결 Thread가 꽉차서 여유 공간이 없다면, waiting 또는 hanging 현상을 의심해보고 Thread Dump를 통하여 원인을 찾도록 한다.
연속 보기 : ti -server fpms3 -repeat 3 -interval 10 (10초 간격으로 3번 반복하여 수행하기)
[DAS]jeus_domain.adminServer>ti -server fpms3
Thread information for the server [fpms3]
….. 생략 ….
===========================================================
Thread statistics for the 'fpms3' listener [fpms3-hth0]
+-----+-------------------------+---------+---------+-----+
| tid | name | state | elapsed | uri |
+-----+-------------------------+---------+---------+-----+
| 64 | fpms3-hth0-1 | waiting | 46670 | |
| 73 | fpms3-hth0-10 | waiting | 832 | |
| 65 | fpms3-hth0-2 | waiting | 644 | |
| 66 | fpms3-hth0-3 | waiting | 1760 | |
| 67 | fpms3-hth0-4 | waiting | 30710 | |
| 68 | fpms3-hth0-5 | waiting | 1090 | |
| 69 | fpms3-hth0-6 | waiting | 5741 | |
| 70 | fpms3-hth0-7 | waiting | 31711 | |
| 71 | fpms3-hth0-8 | waiting | 5551 | |
| 72 | fpms3-hth0-9 | waiting | 6570 | |
+-----+-------------------------+---------+---------+-----+
elapsed: Elapsed time (ms)
+-----------------------------------+-------+--------+------+---------+--------+
| | total | active | idle | blocked | reconn |
+-----------------------------------+-------+--------+------+---------+--------+
| The number of threads. | 10 | 0 | 10 | 0 | 0 |
+-----------------------------------+-------+--------+------+---------+--------+
total = active + idle, reconn: reconnecting
방법 : kill –3 <PID>
추적 : fpm3-hth0-1 해당 이러한 이름이 Thread Name 이 된다.
위치 : 보통 stdout로 지정한 곳에 Thread Dump 내용이 남게 되며, Thread Name을 가지고 찾으면 된다.
PID정보는 "jeusadmin 의 si 명령어" or "ps –ef |grep java"를 통하여 확인 한 PID를 넣도록 한다
h. DataSource 모니터링
Server 상태, pid등 상태를 확인 할 수 있다. 현재 설정된 DataSource정보를 실시간으로 볼 수가 있다. Idle Size가 현재 사용할 수 있는 DB Connection을 의미하며, 만일 idle사이즈가 0이고, 오랜 시간 지속된다면, DB Connection 유실을 의심해 볼 필요가 있다.
연속 보기 : cpinfo -server fpms3 -repeat 3 -interval 10 (10초 간격으로 3번 반복하여 수행하기)
[DAS]jeus_domain.adminServer>cpinfo -server fpms3
The connection pool information on the server [fpms3].
=============================================================================
+---------------+-----+-----+--------+------+----------+-------+-------+-------+
| Connection | Min | Max | Active | Idle |Disposable| Total | Wait |Enabled|
| Pool ID | | | | | | | | |
+---------------+-----+-----+--------+------+----------+-------+-------+-------+
| oracletest | 2 | 30 | 0 | 2 | 0 | 2 | false | true |
+---------------+-----+-----+--------+------+----------+-------+-------+-------+
| tiberodb * | 2 | 30 | 0 | 0 | 0 | 0 | false | false |
+---------------+-----+-----+--------+------+----------+-------+-------+-------+
* : has not been created, total = active + idle + disposable
=============================================================================
[DAS]jeus_domain.adminServer>
i. Jeusadmin help 명령어 실행
Jeusadmin 을 통해 실행 할 수 있는 명령어들 모두 help를 통해서도 확인 할 수 있다.
Help –l 은 간략 설명이 나온다.
[DAS]jeus_domain.adminServer>help
LIST OF AVAILABLE COMMANDS
[ Server Management]________________________________________________________
add-data-sources-to-server add-jvm-option
add-listener add-log-handler
add-logger disable-json-command
disable-webadmin dump
… 생략 …
로그 정보
default로 로그 파일은 다음의 경로에 위치한다.
SERVER LOG 위치 :$JEUS_HOME/domains/[도메인명]/servers/[서버명]/logs/JeusServer.log 로 생성됩니다.
SERVER LOG 위치: $JEUS_HOME/domains/[도메인명]/servers/[서버명]/logs/servlet/access.log 로 생성됩니다.
지금까지 운영자로써 알아야 할 여러가지 정보들을 파악해 보았습니다. JEUS의 구성요소를 시작으로 기동, 종료, jeusadmin을 통한 모니터링 방법 그리고 로그 경로까지 알아 보았습니다.
위 사항들은 운영자에게는 매우 기본적인 사항입니다. 이에 대한 숙달은 본인에게 달려 있습니다.
고맙습니다.
'④ 미들웨어 > ⓙ JEUS' 카테고리의 다른 글
[JEUS7] 운영자 모니터링 (0) | 2018.07.31 |
---|---|
[JEUS6] JMX Guide (0) | 2018.07.23 |
[JEUS7] XADatasource를 통한 2pc 구현 (1) | 2018.07.18 |
[JEUS] DBPool 동작 방식 (0) | 2018.07.18 |
[JEUS] JSP Compile 시 code too large 에러 발생하는 경우 (0) | 2018.07.17 |
- Total
- Today
- Yesterday
- API Gateway
- openstack token issue
- Architecture
- git
- k8s
- SA
- Docker
- aa
- node.js
- MSA
- wildfly
- openstack tenant
- Da
- 아키텍처
- kubernetes
- JEUS7
- 쿠버네티스
- JEUS6
- 오픈스택
- webtob
- 마이크로서비스
- 마이크로서비스 아키텍처
- jeus
- nodejs
- JBoss
- apache
- TA
- aws
- OpenStack
- SWA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |