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 JEUS | 7.x 이상 |
| Oracle WebLogic | 12.x 이상 |
| Apache Jakarta Tomcat | 8.x 이상 |
| IBM WebSphere | 8.5.x 이상 |
| Red Hat JBoss | 7.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-agent는 TCP를 이용하여 Receiver(수집서버)와 통신합니다.
참고 문서: Java Agent 필요 Port

3. WAS 모니터링 메인 화면
메뉴 경로: Application > Application > WAS
전체 WAS 관점의 기본 모니터링 화면으로, 다음 구성 요소로 이루어져 있습니다.

| 구성 요소 | 설명 |
|---|---|
| Global Time | 모니터링 재생 여부 선택 (실시간 데이터만 조회 가능) |
| Filters | WAS 그룹 기반으로 필터 항목 선택 |
| WAS Status | WAS의 상태별 개수 표시 |
| WAS Map | 모니터링 대상별 상태를 헥사 맵으로 표시 |
| WAS List | WAS 목록을 Grid 형태로 표시 |
참고 문서: WAS
4. WAS Status (상태 카드)
WAS의 상태별 개수를 카드 형태로 보여줍니다.

| 상태 | 설명 |
|---|---|
| Total | 전체 WAS 개수 |
| Active | Active 상태의 WAS 개수 (정상 운영 중) |
| Inactive | Inactive 상태의 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) | 트랜잭션 거래 경과 시간 (초 단위) |
| Status | WAS 상태 (Active/Inactive) |
| Alert | 마지막 발생된 알람 정보 |
| Information | WAS 정보 |
- 헥사 클릭 시 해당 WAS의 Detail Slide가 열립니다.
참고 문서: WAS Map
6. WAS List (목록)
WAS 목록을 Grid 형태로 보여줍니다.

| 컬럼 | 설명 |
|---|---|
| WAS Name | WAS의 이름 (클릭 시 Detail Slide 오픈) |
| Status | WAS 상태 (Active/Inactive) |
| WAS CPU Usage (%) | WAS의 CPU 사용률 |
| TPS | 트랜잭션 초당 처리량 |
| Active Txn Count | 실시간 수행 중인 트랜잭션 개수 |
| Txn Elapsed Time (sec) | 트랜잭션 거래 경과 시간 (초 단위) |
| Last Boot Time | WAS가 기동된 시점 |
| Uptime | WAS 기동 이후 경과시간 |
| Information | WAS 정보 |
참고 문서: WAS List
7. WAS Detail Slide (상세 슬라이드)
WAS Map이나 WAS List에서 특정 WAS를 클릭하면 Detail Slide가 열립니다. 총 12개 탭으로 구성되어 있습니다.

참고 문서: WAS Detail Slide
7.1 Information (정보) 탭
WAS의 기본 정보를 확인하는 화면입니다.

| 영역 | 수집 항목 |
|---|---|
| Agent | WAS Name, Agent Version, WAS Group Name, WAS Group ID, Last Boot Time, Uptime |
| Machine | Host Name, OS, Kernel Version, Agent Version |
| Environment | 환경변수 (복사 기능 지원) |
| Command Line | 커맨드 라인 (복사 기능 지원) |
참고 문서: Information
7.2 Metric (지표) 탭
WAS의 주요 성능 지표를 차트로 모니터링하는 화면입니다. Default 최근 5분 데이터를 표시합니다.

WAS Stat 수집 지표:
| 지표명 | 설명 | 단위 |
|---|---|---|
| WAS CPU Usage | WAS CPU 사용률 | % |
| TPS | 트랜잭션 초당 처리량 | 건/초 |
| Concurrent Users | 동시 접속 사용자 수 | 명 |
| Active Transactions | 실시간 수행 중인 트랜잭션 개수 | 건 |
| Transaction Elapse Time | 트랜잭션 처리까지 걸린 시간 | 초 |
| SQL Exec Count | SQL 실행 횟수 | 건 |
| SQL Elapse Time | SQL 처리 시간 | 초 |
| WAS Free Memory | WAS 가용 메모리 | 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 사용률을 계산합니다:
- Java JMX API를 통해
OperatingSystemMXBean객체를 호출 getProcessCpuLoad()메서드를 사용하여 현재 JVM 프로세스의 CPU 사용률(0.0 ~ 1.0) 수집- 반환 값에 100을 곱하여 백분율(%) 형태로 변환
- CPU 전체 코어(Core) 100%를 기준으로 계산
7.3 Actives (액티브 트랜잭션) 탭
실시간으로 수행 중인 액티브 트랜잭션 목록을 확인하는 화면입니다.

Tree Grid 수집 항목:
| 항목 | 설명 |
|---|---|
| Txn Name | 트랜잭션 이름 |
| WAS Name | WAS의 이름 |
| Class Method | 트랜잭션의 클래스 메소드 |
| State | 트랜잭션의 상태 |
| Elapse Time (sec) | 트랜잭션의 경과 시간 (초 단위) |
| Elapse Time Ratio | 트랜잭션의 경과 시간 비율 (%) |
| Pool | DB 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 Count | SQL 실행 횟수 |
| SQL Elapse Time (sec) | SQL 처리 시간 |
| SQL Fetch Count | SQL 쿼리로부터 데이터를 가져온 횟수 |
| 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 Option | GC 옵션 텍스트 (복사 기능 지원) |
| JVM Heap Size | JVM 힙 전체 크기 |
| JVM Free Heap | JVM 가용 힙 메모리 |
| Eden Used Size | Eden 영역 사용 크기 |
| Old Used Size | Old 영역 사용 크기 |
| Minor GC Count | Minor GC 발생 횟수 |
| Major GC Count | Major GC 발생 횟수 |
| Minor GC Time | Minor GC 소요 시간 |
| Major GC Time | Major 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 | 스레드가 생성되었지만 실행되지 않은 상태 |
| Runnable | CPU를 점유하고 작업을 수행 중인 상태 |
| 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의 설정 정보를 확인하는 화면입니다.

수집 항목:
| 항목 | 설명 |
|---|---|
| Key | Agent config 옵션 명 |
| Value | Agent config 옵션 값 |
| Description | Agent config 설명 |
참고 문서: Config
7.12 Alert (알람) 탭
해당 WAS에 설정된 알람 규칙과 발생 이력을 확인하는 화면입니다.

수집 항목:
| 항목 | 설명 |
|---|---|
| Rule Name | 룰의 이름 |
| Alert Stat Name | Alert 이름 |
| Target | Alert 발생 타겟 |
| 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 Name | WAS 이름 |
| Alias | WAS 추가 이름 (변경 가능) |
| IP | IP 정보 |
| OS | OS 정보 |
| APP Version | 애플리케이션 버전 정보 |
| Status | WAS 연결 상태 |
| 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 | 연결이 끊어졌을 때 알람 수신 여부 |
| Unmanaged | WAS 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)
| 카테고리 | 지표 |
|---|---|
| CPU | WAS 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 |
| SQL | SQL Exec Count, SQL Elapse Time, SQL Fetch Rows |
| DB 커넥션 | Total DB Connections, Active DB Connections |
| GC | Minor 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 Source | Data Source Name, Class Name, Max/Active/Idle/Total Count |
| Thread Dump | Thread Name, Status, CPU Time, ID, Stack Trace |
| Heap Dump | Dump Name, Path, Size |
| Libraries | Library Name, Path, Version, Size, Last Modified |
| Loaded Class | Class Name, Type, Super Class, Interfaces, Resource |
| Config | Agent Config Key/Value/Description |
| Alert | Rule Name, Alert Stat Name, Target, Last Triggered, Rule Type, Last Alert Level |
12. 추가 주의사항
- Java Agent 설치 필수: WAS 모니터링을 위해서는 대상 WAS에 exem-java-agent가 설치되어야 합니다.
- TCP 통신: Java Agent는 TCP를 이용하여 Receiver(수집서버)와 통신하므로, 관련 포트가 방화벽에서 열려 있어야 합니다.
- WAS Group Range: 기본 그룹의 WAS Range는 그룹당 500으로 설정됩니다. 500개를 초과하는 경우 추가 그룹이 필요합니다.
- 실시간 vs 이력 데이터: WAS 메인 화면(WAS Status, WAS Map, WAS List)은 실시간 데이터만 조회 가능하며, Detail Slide의 Metric은 최근 5분, Transaction은 최근 10분 데이터를 기본으로 표시합니다.
- Trend Analysis 조회 범위: Performance Analysis의 Trend Analysis는 최대 7일, 최소 1분 범위로 조회 가능합니다.