개발자의 끄적끄적

[was/server] JEUS7 운영자 모니터링 [펌] 본문

개발/was & server

[was/server] JEUS7 운영자 모니터링 [펌]

효벨 2020. 8. 25. 02:00
728x90
반응형

[was/server] JEUS7 운영자 모니터링 [펌]

 

 포스팅은 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 기동/다운

a. DAS 기동/다운

기동 : 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 PASSWORD

c. 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을 통한 모니터링 방법 그리고 로그 경로까지 알아 보았습니다.

위 사항들은 운영자에게는 매우 기본적인 사항입니다. 이에 대한 숙달은 본인에게 달려 있습니다.

 

 

출처 : https://waspro.tistory.com/235

반응형
Comments