SlideShare a Scribd company logo
1 of 10
Download to read offline
Tomcat monitoring using
javamelody
Table of Contents
1. JavaMelody 소개 및 설치 ................................................................................................... 4
1.1. JavaMelody 개요 및 활용 방안........................................................................................ 4
기대 효과 ...................................................................................................................... 4
제공 지표(Indicators) ........................................................................................................ 4
요구 조건 ...................................................................................................................... 4
1.2. JavaMelody 설치 ........................................................................................................ 5
Jar 파일 복사.................................................................................................................. 5
web.xml 파일 변경 ........................................................................................................... 5
서버 모니터링 ................................................................................................................. 5
PDF 리포트 생성 .............................................................................................................. 6
추가 기능 ...................................................................................................................... 6
JavaMelody 모니터링.............................................................................................................. 7
모니터링 초기화면 .............................................................................................................. 7
세부 모니터링 항목 ............................................................................................................. 8
Document Overview
 Purpose
본 문서는 아파치 톰캣(Apache Tomcat) 서버를 오픈소스 모니터링 도구인 JavaMelody 를 이용해 모니터링하는
방안을 포함하고 있다.
 Scope
Servlet Container 의 성능 및 자원을 모니터링 하기 위한 도구에 대한 대한 소개 및 설치, 활용 방안.
1. JavaMelody 소개 및 설치
Open source J2EE application monitoring 도구인 javamelody 에 대한 소개 및 설치 방법을 설명한다.
1.1. JavaMelody 개요 및 활용 방안
JavaMelody 의 목적은 Java/Java EE 어플리케이션 서버를 품질(QA) 및 운영 환경에서 모니터링하는 것이다.
사용자의 요청을 시뮬레이션(simulation)하는 툴이 아니라, 실제 어플리케이션의 수행 성능을 측정하고 통계를
산출하는 작업을 수행한다. JavaMelody 는 오픈 소스이며, 프로파일링(profiling)이나 데이터베이스를 사용하지
않는 경량(lightweight) 모니터링 도구이다.
자바 멜로디(JavaMelody)의 홈페이지 주소는 ‘http://javamelody.googlecode.com/’ 이다.
기대 효과
JavaMelody 가 활용함으로써 얻을 수 있는 효과는 다음과 같다.
 평균 응답 시간 및 온라인 서비스의 실제 수행 횟수 제공
 성능 저하가 발생하는 문제들을 도출하여 심각한 문제가 발생하기 이전에 의사결정을 지원
 응답 시간 측정을 통한 정확한 최적화 지원
 응답 지연의 근본 원인 파악 지원
 최적화 작업의 수행 성과를 측정 가능
제공 지표(Indicators)
요약 챠트(summary charts)를 통해 다음과 같은 지표들을 시간의 흐름에 따라 표현한다.
 수행 횟수, 평균 수행 시간, HTTP 요청 오류 발생 비율, SQL 수행 횟수
 JSF/JSP/struts actions/EJB/Spring/Guice 비즈니스 메소드 수행 횟수
 자바 메모리
 자바 CPU
 사용자 세션 수행
 JDBC 연결 수
일간, 주간, 월간, 연간 혹은 지정 기간 동안의 데이터 변화를 챠트에 출력할 수 있다.
요구 조건
JavaMelody 를 설치 및 사용하기 위해서는 다음과 같은 최소 사양이 필요하다.
 Java
: 최소 버전 1.5 이상, heap dump, memory histogram, stack trace 및 system load average 를 산출하기
위해서는 1.6 이상의 버전이 필요.
 Servlet Container
: servlet API 2.4 (java EE 1.4) 이상을 지원하는 서블릿 컨테이너(Servlet container)
(Tomcat 5.5 이상, jBoss 4 이상, WebLogic 9 이상)
 JRobin 자바 라이브러리 (jar)
: 챠트(chart) 출력을 위해 필수
 iText v2.1.x 자바 라이브러리 (jar)
: PDF 파일 출력을 위해 필요. (옵션)
 웹 브라우저
: 성능 리포트를 조회 하기 위해 크롬(chrome), 파이어폭스(firefox), 혹은 인터넷 익스플로러(version 9
이상) 필요.
1.2. JavaMelody 설치
설치에 필요한 시간은 10 분 이내에 불과하며, 2 개의 jar 파일을 복사하고 필요하다면 XML 10 라인 정도만
추가하면 된다. (환경 설정은 필요 없으며, 제반 환경 정보는 자동으로 수집된다. 기본 설치 후 추가 기능은 필요에
따라 추후에 설정을 변경하면 된다.
Jar 파일 복사
javamelody.zip 압축 파일을 해제한 후, javamelody.jar 및 jrobin-x.jar 파일을 모니터하고자 하는 웹
어플리케이션의 WEB-INF/lib 폴더에 복사하다. 혹은 Maven 을 사용한다면 javamelody-core
의존성(dependency)을 웹 어플리케이션의 pom.xml 파일에 추가한다.
web.xml 파일 변경
Servlet API 3.0 호환 가능한 웹 어플리케이션 서버(Tomcat 7, glassfish version 3, jBoss 6 등)를 사용 중이라면
web.xml 파일을 수정할 필요 없이 서버를 재기동하면 JavaMelody 를 사용할 수 있다. 만일, Servlet API 3.0 호환
서버임에도 web.xml 파일 내에 version="3.0" 선언이 없거나, Servlet API 3.0 을 지원하지 않는 WAS 를 사용한다면
web.xml 에 다음 내용을 추가해야 한다.
<filter>
<filter-name>monitoring</filter-name>
<filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>monitoring</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>
만일, Servlet API 3.0 웹 어플리케이션 내에 위 설정을 추가했다면, <async-supported>true</async-supported>
속성을 추가해야 비동기 요청을 처리(support)할 수 있다.
서버 모니터링
war 를 배포한 후, 서버를 재기동 하면 웹 브라우저를 이용해 서버 모니터링을 시작할 수 있다. 웹 브라우저를
이용해 아래 URL 에 접속하면 된다.
http://<host>/<context>/monitoring
<host>는 웹 어플리케이션이 배포된 서버 주소이며 뒤에 포트 번호가 추가될 수 있다. (ex: localhost:8080)
<context> 는 웹 어플리케이션의 컨텍스트 명칭(context name)이다.
PDF 리포트 생성
HTML 뿐만 아니라 PDF 리포트를 생성하기 위해서는 iText v2.1.x (LGPL 혹은 MPL 라이센스이며, iText jar 파일
단독으로 사용할 수 있고 의존적인 jar 라이브러리는 없음)가 필요하다. javamelody.zip 파일 내의 src/test/test-
webapp/WEB-INF/lib/ 폴더에 있는 itext-2.1.7.jar 파일을 모니터 대상 웹 어플리케이션의 WEB-INF/lib 폴더에
복사하면 된다. iText 라이브러리를 추가한 후 WAS 를 재기동하면 HTML 리포트 상단에 PDF 링크가 추가된다.
추가 기능
JavaMelody 의 세부 기능을 활용하고자 할 경우에는 아래 웹 문서를 참조하면 된다.
https://code.google.com/p/javamelody/wiki/UserGuide
JavaMelody 모니터링
모니터링 초기화면
JavaMelody 모니터링 초기 화면 예시는 다음과 같다.
세부 모니터링 항목
모니터링 화면에 포함된 항목들은 다음과 같다.
1. 기본 정보
웹 페이지 최상단에 모니터링 정보 출력 시갂 및 machine name 이 출력된다.
2. 업데이트/PDF 다운로드/구갂 설정 등
모니터링 정보 업데이트, PDF 다운로드, 통계 구갂 설정 등의 버튼이 표시된다.
3. 차트(Charts)
사용 메모리, HTTP session, 스레드, JDBC 연결,분당 HTTP 요청 횟수, HTTP 평균 응답 시갂, 에러 횟수, 분당
SQL 수행 횟수, SQL 평균 처리 시갂, SQL 오류 건수 등의 통계 차트가 표시되며 각 차트를 클릭하면 큰
화면으로 조회할 수 있다.
4. HTTP 요청 통계
모티터링 대상 웹 어플리케이션 내에서 호출된 URL 들에 대한 통계가 테이블(표) 형태로 출력된다.
5. SQL 통계
지정된 기갂 동안 발생한 SQL 쿼리 통계가 출력된다.
6. HTTP 시스템 오류 통계
HTTP 시스템 오류 통계가 출력된다.
7. 시스템 오류 로그 통계
시스템 오류 로그에 대한 통계가 출력된다.
8. 실시갂 요청
실시갂으로 실행 중인 요청(request) 처리 내역이 출력된다.
9. 시스템 정보
WAS 가 실행 중인 장비에 대한 정보가 출력된다. ‘Details’ 링크를 클릭하면 보다 상세한 정보를 확인할 수
있다.
10. 스레드 정보
WAS 내에서 실행 중인 스레드 정보를 출력한다. ‘Details’ 링크를 클릭하면 보다 상세한 정보를 확인할 수
있다.

More Related Content

What's hot

[오픈소스컨설팅]Fault Tolerance Architecture by Netflix
[오픈소스컨설팅]Fault Tolerance Architecture by Netflix[오픈소스컨설팅]Fault Tolerance Architecture by Netflix
[오픈소스컨설팅]Fault Tolerance Architecture by NetflixJi-Woong Choi
 
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC [오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC Ji-Woong Choi
 
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble ShootingJi-Woong Choi
 
소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙Hong Hyo Sang
 
메이븐파헤치기(김우용)
메이븐파헤치기(김우용)메이븐파헤치기(김우용)
메이븐파헤치기(김우용)우용 김
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 
메이븐 기본 이해
메이븐 기본 이해메이븐 기본 이해
메이븐 기본 이해중선 곽
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨KwangSeob Jeong
 
Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015uEngine Solutions
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)SangIn Choung
 
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례형석 김
 
[21]변화의 시대 : 안드로이드 앱 어떻게 개발할 것인가?
[21]변화의 시대 : 안드로이드 앱 어떻게 개발할 것인가?[21]변화의 시대 : 안드로이드 앱 어떻게 개발할 것인가?
[21]변화의 시대 : 안드로이드 앱 어떻게 개발할 것인가?NAVER Engineering
 
Spring 4.x Web Application 살펴보기
Spring 4.x Web Application  살펴보기Spring 4.x Web Application  살펴보기
Spring 4.x Web Application 살펴보기Ji Heon Kim
 
CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드jSoboro
 

What's hot (20)

[오픈소스컨설팅]Fault Tolerance Architecture by Netflix
[오픈소스컨설팅]Fault Tolerance Architecture by Netflix[오픈소스컨설팅]Fault Tolerance Architecture by Netflix
[오픈소스컨설팅]Fault Tolerance Architecture by Netflix
 
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC [오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC
 
Maven
MavenMaven
Maven
 
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
 
소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙
 
메이븐파헤치기(김우용)
메이븐파헤치기(김우용)메이븐파헤치기(김우용)
메이븐파헤치기(김우용)
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
메이븐 기본 이해
메이븐 기본 이해메이븐 기본 이해
메이븐 기본 이해
 
Maven
MavenMaven
Maven
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015
 
Maven의 이해
Maven의 이해Maven의 이해
Maven의 이해
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
Springmvc
SpringmvcSpringmvc
Springmvc
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
 
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
 
[21]변화의 시대 : 안드로이드 앱 어떻게 개발할 것인가?
[21]변화의 시대 : 안드로이드 앱 어떻게 개발할 것인가?[21]변화의 시대 : 안드로이드 앱 어떻게 개발할 것인가?
[21]변화의 시대 : 안드로이드 앱 어떻게 개발할 것인가?
 
Spring 4.x Web Application 살펴보기
Spring 4.x Web Application  살펴보기Spring 4.x Web Application  살펴보기
Spring 4.x Web Application 살펴보기
 
CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드CLT 소스품질 Jenkins 사용가이드
CLT 소스품질 Jenkins 사용가이드
 
sdet수행 사례
sdet수행 사례sdet수행 사례
sdet수행 사례
 

Viewers also liked

Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안중선 곽
 
우분투 한국 커뮤니티 나눔모임 발표 2013-02-23
우분투 한국 커뮤니티 나눔모임 발표 2013-02-23우분투 한국 커뮤니티 나눔모임 발표 2013-02-23
우분투 한국 커뮤니티 나눔모임 발표 2013-02-23유명환 FunFun Yoo
 
운영체제 인트로
운영체제 인트로운영체제 인트로
운영체제 인트로Junnie Jobs
 
[제5회 KCD] 한국에서 커뮤니티를 운영한다는 건...
[제5회 KCD] 한국에서 커뮤니티를 운영한다는 건...[제5회 KCD] 한국에서 커뮤니티를 운영한다는 건...
[제5회 KCD] 한국에서 커뮤니티를 운영한다는 건...유명환 FunFun Yoo
 
창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료유명환 FunFun Yoo
 
문돌이가 가르치는 웹 프론트엔드 기초 2차시
문돌이가 가르치는 웹 프론트엔드 기초 2차시문돌이가 가르치는 웹 프론트엔드 기초 2차시
문돌이가 가르치는 웹 프론트엔드 기초 2차시동현 조
 
Intranet query tuning (example)
Intranet query tuning (example)Intranet query tuning (example)
Intranet query tuning (example)중선 곽
 
[Codebakery 일반동아리] IoT의 개념 및 분야, 전망
[Codebakery 일반동아리] IoT의 개념 및 분야, 전망[Codebakery 일반동아리] IoT의 개념 및 분야, 전망
[Codebakery 일반동아리] IoT의 개념 및 분야, 전망동현 조
 
사칙연산 프로그램
사칙연산 프로그램사칙연산 프로그램
사칙연산 프로그램중선 곽
 
Scale up and scale out
Scale up and scale outScale up and scale out
Scale up and scale out중선 곽
 
숫자 구분자 처리 (Digit group separators)
숫자 구분자 처리 (Digit group separators)숫자 구분자 처리 (Digit group separators)
숫자 구분자 처리 (Digit group separators)중선 곽
 
Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??유명환 FunFun Yoo
 
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문중선 곽
 
Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2중선 곽
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?유명환 FunFun Yoo
 
프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정중선 곽
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)중선 곽
 
문돌이가 가르치는 웹 프론트엔드 1차시
문돌이가 가르치는 웹 프론트엔드 1차시문돌이가 가르치는 웹 프론트엔드 1차시
문돌이가 가르치는 웹 프론트엔드 1차시동현 조
 
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례MinWoo Byeon
 

Viewers also liked (20)

Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안
 
우분투 한국 커뮤니티 나눔모임 발표 2013-02-23
우분투 한국 커뮤니티 나눔모임 발표 2013-02-23우분투 한국 커뮤니티 나눔모임 발표 2013-02-23
우분투 한국 커뮤니티 나눔모임 발표 2013-02-23
 
운영체제 인트로
운영체제 인트로운영체제 인트로
운영체제 인트로
 
[제5회 KCD] 한국에서 커뮤니티를 운영한다는 건...
[제5회 KCD] 한국에서 커뮤니티를 운영한다는 건...[제5회 KCD] 한국에서 커뮤니티를 운영한다는 건...
[제5회 KCD] 한국에서 커뮤니티를 운영한다는 건...
 
창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료
 
Hello std.io 유명환_20140125
Hello std.io 유명환_20140125Hello std.io 유명환_20140125
Hello std.io 유명환_20140125
 
문돌이가 가르치는 웹 프론트엔드 기초 2차시
문돌이가 가르치는 웹 프론트엔드 기초 2차시문돌이가 가르치는 웹 프론트엔드 기초 2차시
문돌이가 가르치는 웹 프론트엔드 기초 2차시
 
Intranet query tuning (example)
Intranet query tuning (example)Intranet query tuning (example)
Intranet query tuning (example)
 
[Codebakery 일반동아리] IoT의 개념 및 분야, 전망
[Codebakery 일반동아리] IoT의 개념 및 분야, 전망[Codebakery 일반동아리] IoT의 개념 및 분야, 전망
[Codebakery 일반동아리] IoT의 개념 및 분야, 전망
 
사칙연산 프로그램
사칙연산 프로그램사칙연산 프로그램
사칙연산 프로그램
 
Scale up and scale out
Scale up and scale outScale up and scale out
Scale up and scale out
 
숫자 구분자 처리 (Digit group separators)
숫자 구분자 처리 (Digit group separators)숫자 구분자 처리 (Digit group separators)
숫자 구분자 처리 (Digit group separators)
 
Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??
 
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문
 
Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?
 
프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
 
문돌이가 가르치는 웹 프론트엔드 1차시
문돌이가 가르치는 웹 프론트엔드 1차시문돌이가 가르치는 웹 프론트엔드 1차시
문돌이가 가르치는 웹 프론트엔드 1차시
 
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
오픈 소스 도구를 활용한 성능 테스트 방법 및 사례
 

Similar to Tomcat monitoring using_javamelody

How to build a web server on Linux.
How to build a web server on Linux.How to build a web server on Linux.
How to build a web server on Linux.은석 김은석
 
톰캣 운영 노하우
톰캣 운영 노하우톰캣 운영 노하우
톰캣 운영 노하우jieunsys
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3Ji-Woong Choi
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 
[오픈소스컨설팅] Configuring JBoss EWS(Tomcat) with IIS Web Server
[오픈소스컨설팅] Configuring JBoss EWS(Tomcat) with IIS Web Server[오픈소스컨설팅] Configuring JBoss EWS(Tomcat) with IIS Web Server
[오픈소스컨설팅] Configuring JBoss EWS(Tomcat) with IIS Web ServerJi-Woong Choi
 
ibatis_khhan
ibatis_khhanibatis_khhan
ibatis_khhanohgamja3
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodedpTablo
 
톰캣 #10-모니터링
톰캣 #10-모니터링톰캣 #10-모니터링
톰캣 #10-모니터링GyuSeok Lee
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)Yu Yongwoo
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Sourcecho hyun jong
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)Ji-Woong Choi
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
Java9 특징 훑어보기
Java9 특징 훑어보기Java9 특징 훑어보기
Java9 특징 훑어보기duriepark 유현석
 
Application Monitoring 신규 기능 소개 (서영일)
Application Monitoring 신규 기능 소개 (서영일)Application Monitoring 신규 기능 소개 (서영일)
Application Monitoring 신규 기능 소개 (서영일)WhaTap Labs
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)Hankyo
 

Similar to Tomcat monitoring using_javamelody (20)

How to build a web server on Linux.
How to build a web server on Linux.How to build a web server on Linux.
How to build a web server on Linux.
 
톰캣 운영 노하우
톰캣 운영 노하우톰캣 운영 노하우
톰캣 운영 노하우
 
Oracle History #8
Oracle History #8Oracle History #8
Oracle History #8
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
[오픈소스컨설팅] Configuring JBoss EWS(Tomcat) with IIS Web Server
[오픈소스컨설팅] Configuring JBoss EWS(Tomcat) with IIS Web Server[오픈소스컨설팅] Configuring JBoss EWS(Tomcat) with IIS Web Server
[오픈소스컨설팅] Configuring JBoss EWS(Tomcat) with IIS Web Server
 
Ibatis
IbatisIbatis
Ibatis
 
ibatis_khhan
ibatis_khhanibatis_khhan
ibatis_khhan
 
RHAMT 소개
RHAMT 소개RHAMT 소개
RHAMT 소개
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
톰캣 #10-모니터링
톰캣 #10-모니터링톰캣 #10-모니터링
톰캣 #10-모니터링
 
자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)자바 서블릿과 세션 (Java Servlet, Session)
자바 서블릿과 세션 (Java Servlet, Session)
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Source
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
 
Internship backend
Internship backendInternship backend
Internship backend
 
Java9 특징 훑어보기
Java9 특징 훑어보기Java9 특징 훑어보기
Java9 특징 훑어보기
 
Using AdoRepository
Using AdoRepositoryUsing AdoRepository
Using AdoRepository
 
Application Monitoring 신규 기능 소개 (서영일)
Application Monitoring 신규 기능 소개 (서영일)Application Monitoring 신규 기능 소개 (서영일)
Application Monitoring 신규 기능 소개 (서영일)
 
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)
 

More from 중선 곽

자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조중선 곽
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정중선 곽
 
Test driven development short lesson
Test driven development   short lessonTest driven development   short lesson
Test driven development short lesson중선 곽
 
Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)중선 곽
 
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드중선 곽
 
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드중선 곽
 
컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷중선 곽
 
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문중선 곽
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해중선 곽
 
Apache ZooKeeper 소개
Apache ZooKeeper 소개Apache ZooKeeper 소개
Apache ZooKeeper 소개중선 곽
 
객체지향 철학 그리고 5대 개념
객체지향 철학 그리고 5대 개념객체지향 철학 그리고 5대 개념
객체지향 철학 그리고 5대 개념중선 곽
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법중선 곽
 
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리중선 곽
 
소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해중선 곽
 
Effective java 1 and 2
Effective java 1 and 2Effective java 1 and 2
Effective java 1 and 2중선 곽
 
지식경영 이해
지식경영 이해지식경영 이해
지식경영 이해중선 곽
 
Continue break goto_에_대한_고찰
Continue break goto_에_대한_고찰Continue break goto_에_대한_고찰
Continue break goto_에_대한_고찰중선 곽
 
폰노이만 머신 이해
폰노이만 머신 이해폰노이만 머신 이해
폰노이만 머신 이해중선 곽
 

More from 중선 곽 (18)

자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 
Test driven development short lesson
Test driven development   short lessonTest driven development   short lesson
Test driven development short lesson
 
Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)Db 진단 및 튜닝 보고 (example)
Db 진단 및 튜닝 보고 (example)
 
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드
 
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드
 
컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷컴퓨터 네트워크와 인터넷
컴퓨터 네트워크와 인터넷
 
서버 아키텍쳐 입문
서버 아키텍쳐 입문서버 아키텍쳐 입문
서버 아키텍쳐 입문
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
 
Apache ZooKeeper 소개
Apache ZooKeeper 소개Apache ZooKeeper 소개
Apache ZooKeeper 소개
 
객체지향 철학 그리고 5대 개념
객체지향 철학 그리고 5대 개념객체지향 철학 그리고 5대 개념
객체지향 철학 그리고 5대 개념
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
 
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
 
소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해소프트웨어의 동작 방식 이해
소프트웨어의 동작 방식 이해
 
Effective java 1 and 2
Effective java 1 and 2Effective java 1 and 2
Effective java 1 and 2
 
지식경영 이해
지식경영 이해지식경영 이해
지식경영 이해
 
Continue break goto_에_대한_고찰
Continue break goto_에_대한_고찰Continue break goto_에_대한_고찰
Continue break goto_에_대한_고찰
 
폰노이만 머신 이해
폰노이만 머신 이해폰노이만 머신 이해
폰노이만 머신 이해
 

Tomcat monitoring using_javamelody

  • 2. Table of Contents 1. JavaMelody 소개 및 설치 ................................................................................................... 4 1.1. JavaMelody 개요 및 활용 방안........................................................................................ 4 기대 효과 ...................................................................................................................... 4 제공 지표(Indicators) ........................................................................................................ 4 요구 조건 ...................................................................................................................... 4 1.2. JavaMelody 설치 ........................................................................................................ 5 Jar 파일 복사.................................................................................................................. 5 web.xml 파일 변경 ........................................................................................................... 5 서버 모니터링 ................................................................................................................. 5 PDF 리포트 생성 .............................................................................................................. 6 추가 기능 ...................................................................................................................... 6 JavaMelody 모니터링.............................................................................................................. 7 모니터링 초기화면 .............................................................................................................. 7 세부 모니터링 항목 ............................................................................................................. 8
  • 3. Document Overview  Purpose 본 문서는 아파치 톰캣(Apache Tomcat) 서버를 오픈소스 모니터링 도구인 JavaMelody 를 이용해 모니터링하는 방안을 포함하고 있다.  Scope Servlet Container 의 성능 및 자원을 모니터링 하기 위한 도구에 대한 대한 소개 및 설치, 활용 방안.
  • 4. 1. JavaMelody 소개 및 설치 Open source J2EE application monitoring 도구인 javamelody 에 대한 소개 및 설치 방법을 설명한다. 1.1. JavaMelody 개요 및 활용 방안 JavaMelody 의 목적은 Java/Java EE 어플리케이션 서버를 품질(QA) 및 운영 환경에서 모니터링하는 것이다. 사용자의 요청을 시뮬레이션(simulation)하는 툴이 아니라, 실제 어플리케이션의 수행 성능을 측정하고 통계를 산출하는 작업을 수행한다. JavaMelody 는 오픈 소스이며, 프로파일링(profiling)이나 데이터베이스를 사용하지 않는 경량(lightweight) 모니터링 도구이다. 자바 멜로디(JavaMelody)의 홈페이지 주소는 ‘http://javamelody.googlecode.com/’ 이다. 기대 효과 JavaMelody 가 활용함으로써 얻을 수 있는 효과는 다음과 같다.  평균 응답 시간 및 온라인 서비스의 실제 수행 횟수 제공  성능 저하가 발생하는 문제들을 도출하여 심각한 문제가 발생하기 이전에 의사결정을 지원  응답 시간 측정을 통한 정확한 최적화 지원  응답 지연의 근본 원인 파악 지원  최적화 작업의 수행 성과를 측정 가능 제공 지표(Indicators) 요약 챠트(summary charts)를 통해 다음과 같은 지표들을 시간의 흐름에 따라 표현한다.  수행 횟수, 평균 수행 시간, HTTP 요청 오류 발생 비율, SQL 수행 횟수  JSF/JSP/struts actions/EJB/Spring/Guice 비즈니스 메소드 수행 횟수  자바 메모리  자바 CPU  사용자 세션 수행  JDBC 연결 수 일간, 주간, 월간, 연간 혹은 지정 기간 동안의 데이터 변화를 챠트에 출력할 수 있다. 요구 조건 JavaMelody 를 설치 및 사용하기 위해서는 다음과 같은 최소 사양이 필요하다.  Java : 최소 버전 1.5 이상, heap dump, memory histogram, stack trace 및 system load average 를 산출하기 위해서는 1.6 이상의 버전이 필요.  Servlet Container : servlet API 2.4 (java EE 1.4) 이상을 지원하는 서블릿 컨테이너(Servlet container) (Tomcat 5.5 이상, jBoss 4 이상, WebLogic 9 이상)
  • 5.  JRobin 자바 라이브러리 (jar) : 챠트(chart) 출력을 위해 필수  iText v2.1.x 자바 라이브러리 (jar) : PDF 파일 출력을 위해 필요. (옵션)  웹 브라우저 : 성능 리포트를 조회 하기 위해 크롬(chrome), 파이어폭스(firefox), 혹은 인터넷 익스플로러(version 9 이상) 필요. 1.2. JavaMelody 설치 설치에 필요한 시간은 10 분 이내에 불과하며, 2 개의 jar 파일을 복사하고 필요하다면 XML 10 라인 정도만 추가하면 된다. (환경 설정은 필요 없으며, 제반 환경 정보는 자동으로 수집된다. 기본 설치 후 추가 기능은 필요에 따라 추후에 설정을 변경하면 된다. Jar 파일 복사 javamelody.zip 압축 파일을 해제한 후, javamelody.jar 및 jrobin-x.jar 파일을 모니터하고자 하는 웹 어플리케이션의 WEB-INF/lib 폴더에 복사하다. 혹은 Maven 을 사용한다면 javamelody-core 의존성(dependency)을 웹 어플리케이션의 pom.xml 파일에 추가한다. web.xml 파일 변경 Servlet API 3.0 호환 가능한 웹 어플리케이션 서버(Tomcat 7, glassfish version 3, jBoss 6 등)를 사용 중이라면 web.xml 파일을 수정할 필요 없이 서버를 재기동하면 JavaMelody 를 사용할 수 있다. 만일, Servlet API 3.0 호환 서버임에도 web.xml 파일 내에 version="3.0" 선언이 없거나, Servlet API 3.0 을 지원하지 않는 WAS 를 사용한다면 web.xml 에 다음 내용을 추가해야 한다. <filter> <filter-name>monitoring</filter-name> <filter-class>net.bull.javamelody.MonitoringFilter</filter-class> </filter> <filter-mapping> <filter-name>monitoring</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>net.bull.javamelody.SessionListener</listener-class> </listener> 만일, Servlet API 3.0 웹 어플리케이션 내에 위 설정을 추가했다면, <async-supported>true</async-supported> 속성을 추가해야 비동기 요청을 처리(support)할 수 있다. 서버 모니터링 war 를 배포한 후, 서버를 재기동 하면 웹 브라우저를 이용해 서버 모니터링을 시작할 수 있다. 웹 브라우저를 이용해 아래 URL 에 접속하면 된다. http://<host>/<context>/monitoring <host>는 웹 어플리케이션이 배포된 서버 주소이며 뒤에 포트 번호가 추가될 수 있다. (ex: localhost:8080) <context> 는 웹 어플리케이션의 컨텍스트 명칭(context name)이다.
  • 6. PDF 리포트 생성 HTML 뿐만 아니라 PDF 리포트를 생성하기 위해서는 iText v2.1.x (LGPL 혹은 MPL 라이센스이며, iText jar 파일 단독으로 사용할 수 있고 의존적인 jar 라이브러리는 없음)가 필요하다. javamelody.zip 파일 내의 src/test/test- webapp/WEB-INF/lib/ 폴더에 있는 itext-2.1.7.jar 파일을 모니터 대상 웹 어플리케이션의 WEB-INF/lib 폴더에 복사하면 된다. iText 라이브러리를 추가한 후 WAS 를 재기동하면 HTML 리포트 상단에 PDF 링크가 추가된다. 추가 기능 JavaMelody 의 세부 기능을 활용하고자 할 경우에는 아래 웹 문서를 참조하면 된다. https://code.google.com/p/javamelody/wiki/UserGuide
  • 7. JavaMelody 모니터링 모니터링 초기화면 JavaMelody 모니터링 초기 화면 예시는 다음과 같다.
  • 8. 세부 모니터링 항목 모니터링 화면에 포함된 항목들은 다음과 같다. 1. 기본 정보 웹 페이지 최상단에 모니터링 정보 출력 시갂 및 machine name 이 출력된다. 2. 업데이트/PDF 다운로드/구갂 설정 등 모니터링 정보 업데이트, PDF 다운로드, 통계 구갂 설정 등의 버튼이 표시된다. 3. 차트(Charts) 사용 메모리, HTTP session, 스레드, JDBC 연결,분당 HTTP 요청 횟수, HTTP 평균 응답 시갂, 에러 횟수, 분당 SQL 수행 횟수, SQL 평균 처리 시갂, SQL 오류 건수 등의 통계 차트가 표시되며 각 차트를 클릭하면 큰 화면으로 조회할 수 있다.
  • 9. 4. HTTP 요청 통계 모티터링 대상 웹 어플리케이션 내에서 호출된 URL 들에 대한 통계가 테이블(표) 형태로 출력된다. 5. SQL 통계 지정된 기갂 동안 발생한 SQL 쿼리 통계가 출력된다. 6. HTTP 시스템 오류 통계 HTTP 시스템 오류 통계가 출력된다. 7. 시스템 오류 로그 통계 시스템 오류 로그에 대한 통계가 출력된다. 8. 실시갂 요청 실시갂으로 실행 중인 요청(request) 처리 내역이 출력된다. 9. 시스템 정보
  • 10. WAS 가 실행 중인 장비에 대한 정보가 출력된다. ‘Details’ 링크를 클릭하면 보다 상세한 정보를 확인할 수 있다. 10. 스레드 정보 WAS 내에서 실행 중인 스레드 정보를 출력한다. ‘Details’ 링크를 클릭하면 보다 상세한 정보를 확인할 수 있다.