개요
OPENMARU APM은 Java 기반 웹 애플리케이션에 대한 실시간 모니터링을 제공함으로써 장애를 사전에 예방하고, 지속적인 성능 개선에 활용할 수 있는 APM(Application Performance Monitoring) 도구입니다.
OPENMARU APM은 Java 기반 웹 애플리케이션에 대한 실시간 동작 모니터링뿐만 아니라, 실시간 통계 분석 기법을 적용하여 문제를 사전에 판단할 수 있는 강력한 기능들을 제공합니다.
설치 가이드 소개
이 문서는 OPENMARU APM을 사용하여 웹 애플리케이션 서버(WAS)를 모니터링하고자 하는 사용자를 위한 설치 안내서입니다.
대상 독자
| 대상 | 설명 |
|---|---|
| 시스템 관리자 | APM Server 및 에이전트 설치 담당자 |
| DevOps 엔지니어 | CI/CD 파이프라인에 APM 통합 담당자 |
| 개발자 | 애플리케이션 성능 분석 및 최적화 담당자 |
| 운영팀 | 실시간 모니터링 및 장애 대응 담당자 |
문서의 목적
- OPENMARU APM 에이전트 설치 및 구성 방법 제공
- 웹 애플리케이션 모니터링을 통한 장애 원인 파악 가이드
- 성능 분석 및 최적화를 위한 모니터링 설정 방법
주요 기능
OPENMARU APM은 웹 애플리케이션 서버 모니터링을 위한 제품으로 다음과 같은 기능을 제공합니다.
성능 분석 및 모니터링
서비스 만족도 지수 (APDEX)
사용자 입장에서 서비스의 만족도를 하나의 숫자로 표현합니다. 서비스의 상황을 0~100까지의 지수를 통해 한눈에 파악할 수 있습니다.
Application Performance Index의 약자로, 애플리케이션 성능에 대한 사용자 만족도를 0~100점 사이의 하나의 숫자로 표현하는 산업 표준 지표입니다.
등급 구분:
- 94~100점: Excellent (탁월) - 거의 완벽한 성능
- 85~94점: Good (좋음) - 양호한 성능
- 70~85점: Fair (보통) - 허용 가능한 성능
- 50~70점: Poor (나쁨) - 개선 필요
- 0~50점: Unacceptable (수용 불가) - 즉각적인 조치 필요
응답 시간 기준:
- Satisfied (만족): T 이하 - 사용자가 집중하고 있음, 성능이 만족스러움
- Tolerating (허용): T ~ 4T - 사용자가 집중하기 어려움, 성능에 만족스럽지 못함
- Frustrated (불만): 4T 초과 - 사용자가 서비스 사용을 포기함, 서비스를 받아들일 수 없는 상태
APDEX 계산식: (Satisfied 요청 수 + (Tolerating 요청 수 ÷ 2)) ÷ 전체 요청 수 × 100
T(Threshold)는 WAS Agent 설정 파일에서 지정(기본값 3.0)할 수 있습니다.
T-Map (Transaction 분포도)
서비스 전체 응답 시간에 대해 직관적인 분석을 위해 트랜잭션들을 Heat-Map으로 표현하며, 선택한 셀에 대한 SQL 쿼리를 포함한 상세 프로파일링을 제공합니다.
주요 특징:
- 실시간 트랜잭션 시각화
- 응답 시간 분포 분석
- 느린 트랜잭션 즉시 식별
- 상세 SQL 쿼리 프로파일링
실시간 예측 (Forecast)
실시간 통계 분석을 통해 앞으로 몇 분 후에 관리자가 설정한 임계 값에 도달할 것이라는 예측 이벤트를 알려줍니다.
예측 지표:
- CPU 사용률 임계치 도달 예측
- 메모리 사용량 임계값 도달 예측
- 지연 트랜잭션 임계값 도달 예측
장애 분석 도구
WAS 장애 분석
WAS 의 장애 분석에서 가장 많이 사용되는 JVM Thread Dump 분석 도구를 제공합니다.
제공 기능:
- Thread Dump 자동 수집 및 분석
- Heap Dump 분석
- 실행 중인 SQL 쿼리 추적
- 트랜잭션 프로파일링
- Method 실행 통계
이상 징후 모니터링
통계 분석을 통해 평소와는 다른 이상 값이 감지되면 이벤트를 통해 알려줍니다.
감지 항목:
- 평균 응답 시간 급증
- 에러율 증가
- CPU/메모리 이상 사용 패턴
- 트래픽 급증 또는 급감
시스템 및 인프라 모니터링
OS 자원 모니터링
| 모니터링 항목 | 수집 지표 |
|---|---|
| CPU | 사용률, Core별 사용량, System/User Time |
| Memory | 사용량, 가용 메모리, Swap 사용량 |
| Disk | 사용률, I/O 성능, 읽기/쓰기 속도 |
| Network | 트래픽, 패킷 수, 에러율, 소켓 상태 |
| Load Average | 1분, 5분, 15분 평균 부하 |
웹 서버 모니터링
- 트래픽 분석: 실시간 트래픽 모니터링
- RPS (Requests Per Second): 초당 요청 수
- Active Connections: 활성 연결 수
- 응답 코드 분석: 2xx, 3xx, 4xx, 5xx 상태 코드 분석
이벤트 및 알림
정교한 이벤트 처리
모니터링 지표들에 대한 수집 값들의 통계 값으로 임계 값을 계산하기 때문에 꼭 필요한 경우에만 모니터링 이벤트가 발생합니다.
이벤트 처리 방식:
- 통계 기반 임계치: 평균, 표준편차 기반 동적 임계치
- 이벤트 필터링: 노이즈 제거 및 중요 이벤트 알림
- 알림 채널: Email, SMS, Webhook, Slack 등 다양한 알림 채널 지원
사용자 인터페이스
HTML5 기반 UI
모바일을 포함한 다양한 디바이스에서 사용할 수 있도록, HTML5 기반의 직관적인 사용자 인터페이스를 제공합니다.
특징:
- 반응형 디자인: 데스크톱, 태블릿, 모바일 지원
- 실시간 대시보드: WebSocket 기반 실시간 업데이트
- 커스터마이징: 사용자 정의 대시보드 구성 가능
- 다크 모드: 야간 모니터링을 위한 다크 테마 지원
시스템 구성
OPENMARU APM은 다음과 같은 컴포넌트로 구성됩니다:
아키텍처 개요

구성 요소
1. APM Server
역할: 데이터 수집, 가공, 저장 및 분석
주요 기능:
- 에이전트로부터 모니터링 데이터 수집
- 실시간 데이터 분석 및 통계 생성
- 이벤트 감지 및 알림 발송
- 데이터 저장 및 보존 정책 관리
- REST API 제공
기술 스택:
- 통신 프로토콜: WebSocket (양방향 실시간 통신)
- 데이터 저장: Time-series Database
- 처리 엔진: 실시간 스트림 처리
2. WAS Agent
역할: 웹 애플리케이션 서버(WAS) 모니터링
모니터링 항목:
- 트랜잭션 실행 시간 및 프로파일
- SQL 쿼리 실행 정보
- 외부 호출 (HTTP, REST API)
- JVM 메모리 사용량 (Heap, Non-Heap)
- Thread 상태 및 분석
- GC (Garbage Collection) 통계
지원 WAS:
- Apache Tomcat
- SpringBoot
- JBoss EAP / WildFly
- WebLogic
- JEUS
- Jetty
3. System Agent (SYS Agent)
역할: 시스템 자원 및 웹 서버 모니터링
모니터링 항목:
- OS 자원 (CPU, Memory, Disk, Network)
- 웹 서버 통계 (Apache, Nginx)
- 프로세스 정보
- 파일 시스템 사용량
플러그인:
- Apache 웹 서버 플러그인: Apache 통계 수집
- Nginx 플러그인: Nginx 통계 수집
4. UI (사용자 인터페이스)
역할: 모니터링 데이터 시각화 및 관리
제공 화면:
- 실시간 대시보드: 주요 지표 한눈에 보기
- 트랜잭션 분석: T-Map 및 상세 프로파일
- 통계 분석: 시간대별, 서비스별 통계
- 이벤트 관리: 이벤트 히스토리 및 알림 설정
- 설정 관리: 에이전트 및 임계치 설정
네트워크 구성
┌─────────────────┐
│ Web Browser │
│ (UI Access) │
└────────┬────────┘
│ HTTP(S)
▼
┌─────────────────┐
│ APM Server │
│ (Data Hub) │
└────┬──────┬─────┘
│ │ WebSocket
│ ├──────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌──────────┐
│ WAS │ │ Web │ │ System │
│ Agent │ │ Server │ │ Agent │
└─────────┘ └──────────┘ └──────────┘
지원 환경
APM Server 설치 지원 환경
OPENMARU APM Server는 RHEL, CentOS 운영체제 환경에서는 OPENMARU Installer를 이용하여 자동으로 설치할 수 있습니다.
지원 운영체제
| 운영체제 | 버전 | 아키텍처 |
|---|---|---|
| Red Hat Enterprise Linux (RHEL) | 7.x / 8.x / 9.x | x86_64 |
| CentOS | 7.x / 8.x | x86_64 |
| Rocky Linux | 8.x / 9.x | x86_64 |
| AlmaLinux | 8.x / 9.x | x86_64 |
- RHEL: 엔터프라이즈 환경, 장기 지원 필요 시
- Rocky Linux / AlmaLinux: CentOS 대체, 커뮤니티 지원
시스템 요구 사양
최소 / 권장 사양
| 항목 | 최소 환경 | 권장 환경 | 비고 |
|---|---|---|---|
| CPU | 8 Core | 16 Core | 가상머신 코어 기준 |
| Memory | 16 GB | 32 GB | 여유 메모리 확보 권장 |
| Disk | 500 GB | 1 TB 이상 | SSD 권장 |
| Network | 1 Gbps | 10 Gbps | 대규모 환경 시 |
시스템의 사양은 다음 요소에 크게 영향을 받습니다:
- 모니터링 대상 서버 수: 서버 수가 많을수록 더 많은 리소스 필요
- WAS 인스턴스 개수: 인스턴스당 데이터 수집량 증가
- 트랜잭션 처리량: TPS가 높을수록 더 많은 CPU/메모리 필요
- 데이터 보관 기간: 보관 기간이 길수록 더 많은 디스크 필요
사양 산정 예시:
- 소규모 (서버 10대, 인스턴스 20개): 8 Core, 16 GB, 500 GB
- 중규모 (서버 50대, 인스턴스 100개): 16 Core, 32 GB, 1 TB
- 대규모 (서버 100대 이상, 인스턴스 300개 이상): 32 Core, 64 GB, 2 TB 이상
네트워크 요구 사항
| 항목 | 요구 사항 |
|---|---|
| 포트 | 80 (HTTP/WebSocket) |
| 방화벽 | 에이전트 → 서버 방향 통신 허용 필요 |
에이전트 설치 지원 환경
WAS Agent 지 원 환경
| WAS | 버전 | JDK 버전 |
|---|---|---|
| Apache Tomcat | 7.x / 8.x / 9.x / 10.x | JDK 7, 8, 11, 17, 21 |
| JBoss EAP | 6.x / 7.x / 8.x | JDK 8, 11, 17 |
| WildFly | 10.x ~ 30.x | JDK 8, 11, 17, 21 |
| WebLogic | 12c / 14c | JDK 8, 11 |
| WebSphere | 8.5 / 9.x | JDK 8, 11 |
| Jetty | 9.x / 10.x / 11.x | JDK 8, 11, 17, 21 |
- JDK 8: 모든 WAS에서 안정적 지원
- JDK 11: 엔터프라이즈 표준, 장기 지원 (LTS)
- JDK 17: 최신 LTS, 성능 개선
- JDK 21: 최신 LTS, 최신 기능 지원
System Agent 지원 환경
| 운영체제 | 버전 | 아키텍처 |
|---|---|---|
| Linux | RHEL/CentOS 6.x ~ 9.x | x86_64 |
| Windows | Windows Server 2012 R2 / 2016 / 2019 / 2022 | x64 |
| Windows | Windows 10 / 11 | x64 |
| AIX | AIX 7.x | Power (ppc64) |
| HP-UX | HP-UX 11i v3 (11.31) | Itanium (ia64) |
| Solaris | Solaris 10 / 11 | SPARC, x86_64 |
- Linux: 대부분의 주요 배포판 지원 (RHEL, CentOS, AlmaLinux, RockyLinux 등)
- AIX: IBM Power 시스템 전용 Unix
- HP-UX: HP Integrity 서버 전용 Unix
- Solaris: Oracle SPARC 및 x86 시스템 지원
지원 웹 서버:
- Apache HTTP Server 2.2 / 2.4
- Nginx 1.x