Skip to main content

개요

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까지의 지수를 통해 한눈에 파악할 수 있습니다.

APDEX란?

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 Average1분, 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.xx86_64
CentOS7.x / 8.xx86_64
Rocky Linux8.x / 9.xx86_64
AlmaLinux8.x / 9.xx86_64
운영체제 선택 가이드
  • RHEL: 엔터프라이즈 환경, 장기 지원 필요 시
  • Rocky Linux / AlmaLinux: CentOS 대체, 커뮤니티 지원

시스템 요구 사양

최소 / 권장 사양
항목최소 환경권장 환경비고
CPU8 Core16 Core가상머신 코어 기준
Memory16 GB32 GB여유 메모리 확보 권장
Disk500 GB1 TB 이상SSD 권장
Network1 Gbps10 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 Tomcat7.x / 8.x / 9.x / 10.xJDK 7, 8, 11, 17, 21
JBoss EAP6.x / 7.x / 8.xJDK 8, 11, 17
WildFly10.x ~ 30.xJDK 8, 11, 17, 21
WebLogic12c / 14cJDK 8, 11
WebSphere8.5 / 9.xJDK 8, 11
Jetty9.x / 10.x / 11.xJDK 8, 11, 17, 21
JDK 버전 호환성
  • JDK 8: 모든 WAS에서 안정적 지원
  • JDK 11: 엔터프라이즈 표준, 장기 지원 (LTS)
  • JDK 17: 최신 LTS, 성능 개선
  • JDK 21: 최신 LTS, 최신 기능 지원

System Agent 지원 환경

운영체제버전아키텍처
LinuxRHEL/CentOS 6.x ~ 9.xx86_64
WindowsWindows Server 2012 R2 / 2016 / 2019 / 2022x64
WindowsWindows 10 / 11x64
AIXAIX 7.xPower (ppc64)
HP-UXHP-UX 11i v3 (11.31)Itanium (ia64)
SolarisSolaris 10 / 11SPARC, x86_64
Unix/Linux 계열 OS 지원
  • 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

에이전트 설치 방법

OPENMARU APM의 에이전트 설치는 두 가지 방법을 제공합니다:

1. Installer를 이용한 자동 설치 (권장)

OPENMARU Installer의 Provisioning 기능을 활용하면 에이전트가 자동으로 설치 및 구성됩니다.

장점:

  • 빠른 설치: 몇 분 내 완료
  • 자동 구성: 설정 파일 자동 생성
  • 오류 방지: 수동 설정 오류 최소화

설치 프로세스:

1. APM Server UI 접속
2. 에이전트 추가 → 자동 설치 스크립트 다운로드
3. 대상 서버에서 스크립트 실행
4. 에이전트 자동 설치 및 구성 완료
Provisioning 사용 조건
  • 대상 서버와 APM Server 간 네트워크 연결 가능
  • SSH 접속 가능 또는 스크립트 실행 권한 보유
  • 인터넷 연결 (에이전트 다운로드)

2. 수동 설치

Provisioning을 활용할 수 없는 경우 다음 장에서 안내하는 수동 설치 방법을 따라 설치할 수 있습니다.

수동 설치가 필요한 경우:

  • 보안 정책으로 자동 설치 불가능
  • 오프라인 환경 (인터넷 연결 불가)
  • 커스터마이징된 설치 구성 필요
  • 레거시 시스템 환경

수동 설치 절차:

1. 에이전트 패키지 다운로드
2. 대상 서버에 압축 해제
3. 설정 파일 수정 (agent.conf)
4. WAS 시작 옵션 수정 (-javaagent)
5. WAS 재시작
설치 방법 선택 가이드
  • 일반적인 경우: Installer를 이용한 자동 설치 권장
  • 이미 설치된 WAS연결하는 경우: 수동 설치
  • 쿠버네티스 환경 배포: OPENMARU Operator를 통한 자동 설치/업그레이드 권장

다음 단계

에이전트 설치에 대한 자세한 내용은 다음 장을 참조하세요: