본문으로 건너뛰기

WAS 모니터링

이제 모든 관련 문서를 확인하였습니다. 상세한 답변을 드리겠습니다.


exemONE WAS (Web Application Server) 모니터링 기능 및 수집 항목 상세 가이드


1. 개요

exemONE의 WAS 모니터링은 Java 기반 웹 애플리케이션 서버의 성능과 상태를 실시간으로 모니터링하는 기능입니다. Java Agent를 WAS에 설치하여 트랜잭션, CPU, 메모리, GC, DB 커넥션 등 다양한 성능 지표를 수집하고, exemONE 웹 UI의 Application > WAS 메뉴에서 모니터링할 수 있습니다.

참고 문서: WAS 모니터링 화면


2. 지원 환경

참고 문서: Java Agent 지원 환경

Java 버전

  • JDK 8 이상, 23 이하

지원 애플리케이션 서버

WAS 종류지원 버전
Tmaxsoft JEUS7.x 이상
Oracle WebLogic12.x 이상
Apache Jakarta Tomcat8.x 이상
IBM WebSphere8.5.x 이상
Red Hat JBoss7.x 이상
Undertow지원

지원 데이터베이스 (SQL 수집 대상)

Oracle Database, PostgreSQL, MySQL, MariaDB, Microsoft SQL Server, DB2, Informix, Sybase, SAP HANA, Altibase, PPAS, CUBRID, Tibero, MongoDB, Apache Cassandra, ClickHouse

통신 구조

  • exem-java-agentTCP를 이용하여 Receiver(수집서버)와 통신합니다.

참고 문서: Java Agent 필요 Port


3. WAS 모니터링 메인 화면

메뉴 경로: Application > Application > WAS

전체 WAS 관점의 기본 모니터링 화면으로, 다음 구성 요소로 이루어져 있습니다.

구성 요소설명
Global Time모니터링 재생 여부 선택 (실시간 데이터만 조회 가능)
FiltersWAS 그룹 기반으로 필터 항목 선택
WAS StatusWAS의 상태별 개수 표시
WAS Map모니터링 대상별 상태를 헥사 맵으로 표시
WAS ListWAS 목록을 Grid 형태로 표시

참고 문서: WAS


4. WAS Status (상태 카드)

WAS의 상태별 개수를 카드 형태로 보여줍니다.

상태설명
Total전체 WAS 개수
ActiveActive 상태의 WAS 개수 (정상 운영 중)
InactiveInactive 상태의 WAS 개수 (연결 끊김/중지)
  • 각 상태를 클릭하면 WAS Map과 WAS List에서 해당 상태의 WAS만 필터링하여 표시합니다.

참고 문서: WAS Status


5. WAS Map (헥사 맵)

WAS의 개별 상태를 헥사(육각형) 맵으로 시각적으로 보여줍니다.

헥사 맵 색상:

  • : Active 상태
  • : Inactive 상태

마우스 오버 시 표시 정보:

항목설명
WAS CPU Usage (%)WAS CPU 사용률
WAS Heap Memory Usage (%)WAS Heap Memory 사용률
TPS트랜잭션 초당 처리량
Active Txn Count실시간 수행 중인 트랜잭션 개수
Txn Elapse Time (sec)트랜잭션 거래 경과 시간 (초 단위)
StatusWAS 상태 (Active/Inactive)
Alert마지막 발생된 알람 정보
InformationWAS 정보
  • 헥사 클릭 시 해당 WAS의 Detail Slide가 열립니다.

참고 문서: WAS Map


6. WAS List (목록)

WAS 목록을 Grid 형태로 보여줍니다.

컬럼설명
WAS NameWAS의 이름 (클릭 시 Detail Slide 오픈)
StatusWAS 상태 (Active/Inactive)
WAS CPU Usage (%)WAS의 CPU 사용률
TPS트랜잭션 초당 처리량
Active Txn Count실시간 수행 중인 트랜잭션 개수
Txn Elapsed Time (sec)트랜잭션 거래 경과 시간 (초 단위)
Last Boot TimeWAS가 기동된 시점
UptimeWAS 기동 이후 경과시간
InformationWAS 정보

참고 문서: WAS List


7. WAS Detail Slide (상세 슬라이드)

WAS Map이나 WAS List에서 특정 WAS를 클릭하면 Detail Slide가 열립니다. 총 12개 탭으로 구성되어 있습니다.

참고 문서: WAS Detail Slide


7.1 Information (정보) 탭

WAS의 기본 정보를 확인하는 화면입니다.

영역수집 항목
AgentWAS Name, Agent Version, WAS Group Name, WAS Group ID, Last Boot Time, Uptime
MachineHost Name, OS, Kernel Version, Agent Version
Environment환경변수 (복사 기능 지원)
Command Line커맨드 라인 (복사 기능 지원)

참고 문서: Information


7.2 Metric (지표) 탭

WAS의 주요 성능 지표를 차트로 모니터링하는 화면입니다. Default 최근 5분 데이터를 표시합니다.

WAS Stat 수집 지표:

지표명설명단위
WAS CPU UsageWAS CPU 사용률%
TPS트랜잭션 초당 처리량건/초
Concurrent Users동시 접속 사용자 수
Active Transactions실시간 수행 중인 트랜잭션 개수
Transaction Elapse Time트랜잭션 처리까지 걸린 시간
SQL Exec CountSQL 실행 횟수
SQL Elapse TimeSQL 처리 시간
WAS Free MemoryWAS 가용 메모리MiB
SQL Fetch Rows검색된 데이터 행의 수
Total DB Connections총 DB 연결 수
Active DB Connections사용 중인 DB 연결 수
Input TPS입력된 트랜잭션 초당 처리량건/초

참고 문서: Metric

WAS CPU Usage(%) 수집 스펙

참고 문서: WAS CPU Usage 계산 방법

Java JMX API를 활용하여 현재 JVM 프로세스가 점유하고 있는 CPU 사용률을 계산합니다:

  1. Java JMX API를 통해 OperatingSystemMXBean 객체를 호출
  2. getProcessCpuLoad() 메서드를 사용하여 현재 JVM 프로세스의 CPU 사용률(0.0 ~ 1.0) 수집
  3. 반환 값에 100을 곱하여 백분율(%) 형태로 변환
  4. CPU 전체 코어(Core) 100%를 기준으로 계산

7.3 Actives (액티브 트랜잭션) 탭

실시간으로 수행 중인 액티브 트랜잭션 목록을 확인하는 화면입니다.

Tree Grid 수집 항목:

항목설명
Txn Name트랜잭션 이름
WAS NameWAS의 이름
Class Method트랜잭션의 클래스 메소드
State트랜잭션의 상태
Elapse Time (sec)트랜잭션의 경과 시간 (초 단위)
Elapse Time Ratio트랜잭션의 경과 시간 비율 (%)
PoolDB Connection Pool Name
Client IP클라이언트의 IP 주소
CPU Time (sec)CPU 사용 시간 (초 단위)
Memory Used사용된 메모리 (KiB 단위)
  • Tree를 펼치면 활성 스택을 확인할 수 있습니다.
  • 트랜잭션이 종료된 경우 트랜잭션 상세로 이동 가능한 버튼을 제공합니다.

참고 문서: Actives


7.4 Transaction (트랜잭션) 탭

트랜잭션 이력을 확인하는 화면입니다. Default 최근 10분 데이터를 표시합니다.

Grid 수집 항목:

항목설명
Txn Name트랜잭션 이름
Start Time트랜잭션 시작 시간
Elapsed Time (sec)트랜잭션 경과 시간
SQL Exec CountSQL 실행 횟수
SQL Elapse Time (sec)SQL 처리 시간
SQL Fetch CountSQL 쿼리로부터 데이터를 가져온 횟수
SQL Fetch Count (sec)SQL 쿼리로부터 데이터를 가져오는 데 걸린 시간
Remote Exec Count원격 위치에서 실행된 쿼리의 횟수
Remote Elapsed Time (sec)원격 위치에서 실행된 쿼리의 소요 시간
Exception예외 여부

참고 문서: Transaction


7.5 Data Source (데이터 소스) 탭

WAS의 DB 커넥션 풀 정보를 확인하는 화면입니다. 실시간 데이터만 조회 가능합니다.

Grid 수집 항목:

항목설명
Data Source Name데이터베이스 연결 정보를 저장하는 논리적 이름
Class Name데이터베이스 연결에 사용되는 드라이버 클래스 이름
Max동시에 활성화될 수 있는 최대 연결 수
Active Count현재 활성화된 연결 수
Idle Count현재 유휴 상태인 연결 수
Total Count전체 연결 수

참고 문서: Data Source


7.6 Garbage Collection (GC) 탭

JVM의 가비지 컬렉션 상태를 모니터링하는 화면입니다. Default 최근 5분 데이터를 표시합니다.

수집 항목:

항목설명
GC OptionGC 옵션 텍스트 (복사 기능 지원)
JVM Heap SizeJVM 힙 전체 크기
JVM Free HeapJVM 가용 힙 메모리
Eden Used SizeEden 영역 사용 크기
Old Used SizeOld 영역 사용 크기
Minor GC CountMinor GC 발생 횟수
Major GC CountMajor GC 발생 횟수
Minor GC TimeMinor GC 소요 시간
Major GC TimeMajor GC 소요 시간

참고 문서: Garbage Collection


7.7 Thread Dump (스레드 덤프) 탭

WAS의 스레드 덤프를 수집하고 확인하는 화면입니다.

Tree Grid 수집 항목:

항목설명
Thread Dump Name스레드 덤프가 생성된 이름
Status스레드 상태 (New / Runnable / Blocked / Waiting / Timed Waiting)
CPU Time스레드가 CPU를 사용한 시간 (ms 단위)
ID스레드의 고유 식별자

스레드 상태 설명:

상태설명
New스레드가 생성되었지만 실행되지 않은 상태
RunnableCPU를 점유하고 작업을 수행 중인 상태
Blocked다른 스레드가 락을 해제하기를 기다리는 상태
Waiting대기하고 있는 상태
Timed Waiting최대 대기 시간이 명시된 대기 상태

참고 문서: Thread dump


7.8 Heap Dump (힙 덤프) 탭

WAS의 힙 덤프를 수집하고 확인하는 화면입니다.

수집 항목:

항목설명
Heap Dump Name생성된 힙 덤프의 이름
Path힙 덤프가 저장된 경로
Size힙 덤프의 크기
  • Dump 버튼 클릭 시 새로운 힙 덤프 데이터를 갱신할 수 있습니다.

참고 문서: Heap Dump


7.9 Libraries (라이브러리) 탭

WAS에 로딩된 라이브러리 목록을 확인하는 화면입니다.

수집 항목:

항목설명
Library Name라이브러리 파일의 이름
Path라이브러리 파일이 저장된 경로
Version라이브러리 파일의 버전
Size라이브러리 파일의 크기
Last Modified라이브러리 파일의 마지막 수정 일시

참고 문서: Libraries


7.10 Loaded Class List (로딩된 클래스 목록) 탭

WAS에 로딩된 클래스 목록을 확인하는 화면입니다.

수집 항목:

항목설명
Class Name클래스의 이름
Type클래스 타입
Super Class부모 클래스의 이름
Interfaces인터페이스의 이름
Resource클래스 파일이나 소스 코드 파일이 위치한 경로

참고 문서: Loaded Class List


7.11 Config (설정) 탭

Java Agent의 설정 정보를 확인하는 화면입니다.

수집 항목:

항목설명
KeyAgent config 옵션 명
ValueAgent config 옵션 값
DescriptionAgent config 설명

참고 문서: Config


7.12 Alert (알람) 탭

해당 WAS에 설정된 알람 규칙과 발생 이력을 확인하는 화면입니다.

수집 항목:

항목설명
Rule Name룰의 이름
Alert Stat NameAlert 이름
TargetAlert 발생 타겟
Last Triggered최근 Alert 발생 Time
Rule Type룰의 유형
Last Alert마지막 Alert 항목 (Normal / Warning / Critical)

참고 문서: Alert


8. WAS 설정 (Setting)

8.1 WAS Group 설정

메뉴 경로: Setting > Platform > Application > WAS Group

  • Default 그룹: 기본 그룹으로 수정/삭제 불가, WAS Range는 그룹당 500으로 설정
  • User Group: 사용자가 등록한 그룹, 수정 가능

참고 문서: WAS Group

8.2 WAS List (설정)

메뉴 경로: Setting > Platform > Application > WAS List

항목설명
WAS NameWAS 이름
AliasWAS 추가 이름 (변경 가능)
IPIP 정보
OSOS 정보
APP Version애플리케이션 버전 정보
StatusWAS 연결 상태
WAS Version에이전트 버전 정보
Description상세 설명
Config Info컨피그 정보
Isolated Config개별 알림 여부
Target Config타겟 컨피그 설정

참고 문서: WAS List (Setting)


9. 시스템 알람 설정 (System Alert - Application)

메뉴 경로: Setting > Alert > System Alert > Application

참고 문서: System Alert - Application

WAS 그룹 및 개별 WAS 단위로 알람을 설정할 수 있습니다.

설정 항목설명
Activation알람 활성화 여부
Notification알림 수신 여부 (활성화 시 알림 수신)
Isolated Sending개별 알림 여부 (활성화 시 Custom Notification, 비활성화 시 Group Notification 사용)
Custom Notification개별 알림 설정 팝업
Disconnected연결이 끊어졌을 때 알람 수신 여부
UnmanagedWAS Process ID 관리 여부 (Stateless 설정 가능)

10. 성능 분석 (Performance Analysis - Application)

10.1 Trend Analysis - WAS Stat

메뉴 경로: Performance Analysis > Application > Trend Analysis > WAS Stat

WAS 주요 지표의 Trend를 차트로 표시하여 성능을 분석하는 화면입니다.

  • 검색 패널에서 WAS 대상기간(최대 7일, 최소 1분)을 설정하여 조회
  • 차트 좌측 상단의 차트명을 클릭하여 지표 변경 가능

참고 문서: WAS Stat

10.2 Transaction 모니터링

메뉴 경로: Application > Application > Transaction

전체 WAS 관점에서 트랜잭션을 실시간으로 모니터링합니다:

구성 요소설명
Transaction View Trend트랜잭션 지표별 데이터 표시
Transaction View Summary트랜잭션 집계별 순위 표시
Transaction Trend Chart실시간 수집된 트랜잭션 차트 표시

참고 문서: Transaction


11. 수집 항목 종합 정리

실시간 성능 지표 (Metric)

카테고리지표
CPUWAS CPU Usage (%)
메모리WAS Free Memory (MiB), JVM Heap Size, JVM Free Heap, Eden Used Size, Old Used Size
트랜잭션TPS, Input TPS, Active Transactions, Transaction Elapse Time, Concurrent Users
SQLSQL Exec Count, SQL Elapse Time, SQL Fetch Rows
DB 커넥션Total DB Connections, Active DB Connections
GCMinor GC Count/Time, Major GC Count/Time

상태 및 정보 수집

카테고리수집 항목
WAS 상태Active/Inactive, Last Boot Time, Uptime
Agent 정보WAS Name, Agent Version, WAS Group
Machine 정보Host Name, OS, Kernel Version
환경Environment Variables, Command Line

트랜잭션 상세 수집

카테고리수집 항목
액티브 트랜잭션Txn Name, Class Method, State, Elapse Time, Client IP, CPU Time, Memory Used, Pool
트랜잭션 이력Start Time, Elapsed Time, SQL Exec Count, SQL Elapse Time, SQL Fetch Count, Remote Exec/Time, Exception

기타 수집 항목

카테고리수집 항목
Data SourceData Source Name, Class Name, Max/Active/Idle/Total Count
Thread DumpThread Name, Status, CPU Time, ID, Stack Trace
Heap DumpDump Name, Path, Size
LibrariesLibrary Name, Path, Version, Size, Last Modified
Loaded ClassClass Name, Type, Super Class, Interfaces, Resource
ConfigAgent Config Key/Value/Description
AlertRule Name, Alert Stat Name, Target, Last Triggered, Rule Type, Last Alert Level

12. 추가 주의사항

  1. Java Agent 설치 필수: WAS 모니터링을 위해서는 대상 WAS에 exem-java-agent가 설치되어야 합니다.
  2. TCP 통신: Java Agent는 TCP를 이용하여 Receiver(수집서버)와 통신하므로, 관련 포트가 방화벽에서 열려 있어야 합니다.
  3. WAS Group Range: 기본 그룹의 WAS Range는 그룹당 500으로 설정됩니다. 500개를 초과하는 경우 추가 그룹이 필요합니다.
  4. 실시간 vs 이력 데이터: WAS 메인 화면(WAS Status, WAS Map, WAS List)은 실시간 데이터만 조회 가능하며, Detail Slide의 Metric은 최근 5분, Transaction은 최근 10분 데이터를 기본으로 표시합니다.
  5. Trend Analysis 조회 범위: Performance Analysis의 Trend Analysis는 최대 7일, 최소 1분 범위로 조회 가능합니다.