목차 1.1. Java 애플리케이션모니터링 모니터링에이전트개요... 5 에이전트설치방식개요 javaagent + onetime attach 방식 javaagent 방식... 6 구성파일...

Similar documents
Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Infrastructure Monitoring Agent install Guide 이문서는와탭 APM 서비스사용자가에이전트설치를돕기위해작성된문서입니다. 이문서는와탭랩스의고유한자산으로재배포또는사용을위해서는 와탭랩스 에연락주시기바랍니다.

Microsoft Word - src.doc

Windows 8에서 BioStar 1 설치하기

[Brochure] KOR_TunA

Server Agent Guide

슬라이드 1

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Microsoft Word - Armjtag_문서1.doc

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

슬라이드 1

Install stm32cubemx and st-link utility

ICAS CADWorx SPLM License 평가판설치가이드

슬라이드 1

View Licenses and Services (customer)

untitled

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

.

SBR-100S User Manual

ISP and CodeVisionAVR C Compiler.hwp

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

OnTuneV3_Manager_Install

Windows Server 2012

Tibero Agent Guides

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

목차 1 전자정부프레임워크연동고려사항 실행환경 개발환경 어플리케이션배포 개발환경구성 Liberty profile 설치 Liberty profile v8.5.5 다운로드

chapter1,2.doc

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Apache install guide

슬라이드 1

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

.

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라

Cloud Friendly System Architecture

작성자 : 기술지원부 김 삼 수

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

JDK이클립스

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

슬라이드 1

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

슬라이드 1

OnTuneV3_Agent_Install

PowerPoint 프레젠테이션

MF5900 Series MF Driver Installation Guide

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

Chapter 1

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

Report Designer V3.0 사용설명서 2장

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

MF Driver Installation Guide

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

4S 1차년도 평가 발표자료

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

JEUS 서버 설정 가이드

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

NTD36HD Manual

Keil Flexlm 라이선스 설명서

Getting Started

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

BEA_WebLogic.hwp

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

Endpoint Protector - Active Directory Deployment Guide

JDBC 소개및설치 Database Laboratory

Report Designer V3.0 사용설명서 2장

슬라이드 1

System Recovery 사용자 매뉴얼

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

PowerPoint 프레젠테이션

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

Studuino소프트웨어 설치

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

단계

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

PowerPoint Template

Interstage4 설치가이드

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

CODESYS 런타임 설치과정

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

Page 1 / 솔루션소개 Magento Magento 는강력한기능을제공하는오픈소스쇼핑몰제작관리도구입니다. 커스터마이징가 능한글로벌쇼핑몰구축시에사용을권장하며, 자체마켓플레이스를보유하고있을정도 로다양한기능을유 / 무료로추가할수있습니다. 2. 설치버전 하기명시된

Backup Exec

Windows 10 General Announcement v1.0-KO

JAVA 플랫폼 개발 환경 구축 및 활용

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

PowerPoint 프레젠테이션

게시판 스팸 실시간 차단 시스템

vRealize Automation용 VMware Remote Console - VMware

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

Microsoft PowerPoint - 10Àå.ppt

Transcription:

목차 이문서는와탭 APM 서비스사용자가에이전트설치를돕기위해작성된문서입니다. 이문서는와탭랩스의고유한자산으로재배포또는사용을위해서는와탭랩스 (support@whatap.io) 에연락주시기바랍니다. 와탭 R2

목차 1.1. Java 애플리케이션모니터링... 5 1.1.1. 모니터링에이전트개요... 5 에이전트설치방식개요... 5 1.1.1.1.1. javaagent + onetime attach 방식... 5 1.1.1.1.2. javaagent 방식... 6 구성파일... 6 1.1.1.2.1. 공통구성파일... 6 1.1.1.2.2. javaagent + onetime attach 실행파일... 7 1.1.1.2.3. 유틸리티구성파일... 7 에이전트이름식별... 7 1.1.2. 에이전트설치 / 실행 / 업데이트 / 중지... 8 공통... 8 1.1.2.1.1. 프로젝트생성... 8 1.1.2.1.2. 라이선스발급... 9 1.1.2.1.3. 에이전트다운로드... 9 1.1.2.1.4. 에이전트업로드... 10 1.1.2.1.5. 자원수집가능여부확인... 10 javaagent + onetime attach 방식... 10 1.1.2.2.1. 사전확인... 11 1.1.2.2.2. 설치... 11 1.1.2.2.3. 실행... 11 javaagent 방식... 12 1.1.2.3.1. 설치... 12 1.1.2.3.1.1. Tomcat Linux 계열... 12 1.1.2.3.1.2. Tomcat Windows 계열... 13 1.1.2.3.2. 실행... 14 1.1.2.3.3. 업데이트... 15 1.1.2.3.4. 중지... 15 1.1.3. 로그 ( 준비중 )... 16 로그파일종류... 16 정상동작확인... 16 1.1.4. 애플리케이션서버별적용절차... 16 애플리케이션서버별 JVM 옵션설정위치... 16 SpringBoot... 16 Tomcat on Windows Service... 17 JBoss... 18 1.1.4.4.1. javaagent + onetime attach 방식... 18 1.1.4.4.2. javaagent 방식... 18 WebLogic... 20 WebSphere... 20 Jeus... 25 Jetty... 28 Resin... 29

목차 1.1.5. 설치에러대응... 30 방화벽설정확인... 30 1.1.5.1.1. 방화벽확인방법 (telnet 서버 IP 서버포트 )... 30 애플리케이션서비스포트가감지되지않는경우... 30 애플리케이션서버가 OSGi 프레임워크를사용하는경우... 31 1.1.5.3.1. JBoss AS 7.0 이상, JBoss EAP 6.0 이상... 31 1.1.5.3.2. WebSphere... 31 1.1.5.3.2.1. security.policy 권한추가... 32 히트맵에트랜잭션이표시되지않는경우... 32 1.1.5.4.1. IBM JDK... 32 logmanager 관련에러가발생하는경우... 32 1.1.5.5.1. JBoss AS 7.0 이상, JBoss EAP 6.0 이상... 32 MBeanServerBuilder 에러가발생하는경우... 33 1.1.5.6.1. JBoss 5.0 이하... 33 permission 오류가발생하는경우... 33 1.1.5.7.1. 권한일괄허용... 33 1.1.5.7.2. java.io.filepermission 오류가발생하는경우... 34 1.1.5.7.3. java.util.propertypermission 오류가발생하는경우... 34 Sigar library 를로딩하지못하는경우... 35 1.1.6. FAQ... 36 서버명을임의로부여하여관리하고싶은경우... 36 1.1.6.1.1. 애플리케이션명지정옵션... 36 1.1.6.1.2. 애플리케이션명패턴... 36 1.1.6.1.3. 애플리케이션명옵션적용예시... 37 1.1.7. 확장기능... 37 AES 256 암호화적용... 37 1.1.7.1.1. 설치... 37 1.1.7.1.2. 설정... 38 1.1.7.1.3. 재실행... 38 에이전트 Ping... 39 1.1.7.2.1. 실행... 39 1.1.7.2.2. 확인... 40 1.1.7.2.3. 애플리케이션서버... 40 1.1.8. 제약사항... 41 1.1.9. 호환성목록... 42 WAS... 42 1.1.9.1.1. Tomcat... 42 1.1.9.1.2. Jeus... 43 1.1.9.1.3. WebLogic... 43 1.1.9.1.4. WebSphere... 43 1.1.9.1.5. JBOSS... 44 1.1.9.1.6. Jetty... 45 DB... 46 1.1.9.2.1. Tomcat... 46

목차 1.1.9.2.2. Jeus... 46 1.1.9.2.3. WebLogic... 47 1.1.9.2.4. WebSphere... 47 1.1.9.2.5. JBoss... 47 1.1.9.2.6. Jetty... 47

1.1. Java 애플리케이션모니터링 1.1.1. 모니터링에이전트개요 와탭 Java 애플리케이션모니터링은 Java 기반웹애플리케이션서버모니터링서비스를제공합니다. 에이전트설치방식개요 와탭은사용자편의를위해 2 가지방식의에이전트설치방식을제공합니다. 사용자애플리케이션환경에따라 javaagent, javaagent+onetime attach 방식중택일하여에이전트를설치할수있습니다. 와탭은애플리케이션서버기동상태에서최초설치시에는 attach 방식을활용하고재기동이후 javaagent 방식을활용하는 javaagent+onetime attach 방식을권장합니다. IBM JDK 의경우 watcher 방식으로에이전트를실행시킬경우트랜잭션정보가수집되지않으므로 javaagent 방식으로에이전트를실행해야하는제약이있습니다. 1.1.1.1.1. javaagent + onetime attach 방식 애플리케이션서버부팅시에성능데이터수집을위한모듈을주입하는방식과실행중인애플리케이션서버에모듈을주입하는방식을혼용하는방식입니다. javaagent 방식과동일한설정을실행중인애플리케이션서버의실행스크립트에추가하여애플리케이션서버재기동시에도모니터링기능이유지되도록설정함과동시에, 실행중인애플리케이션서버에도모니터링기능을활성화합니다. attach.sh 가일회성으로애플리케이션서버프로세스를식별하고 Tracer 를활성화합니다. 애플리케이션서버재기동에민감한환경에 APM 모니터링을적용할경우유용한방식이며, 애플리케이션서버재기동이후에는와탭의권장방식으로모니터링이수행되는방식입니다. [Figure - 1] javaagent + onetime attach 방식 javaagent + onetime attach 적용법 - 애플리케이션서버실행스크립트에 JVM 옵션으로 -javaagent 옵션에 Tracer 의파일경로를추가합니다. - attach.sh 을실행하여실행중인애플리케이션서버에 Tracer 를활성화시킵니다. 5

1.1.1.1.2. javaagent 방식 애플리케이션서버부팅시에성능데이터수집을위한모듈을주입하는방식입니다. javaagent 적용법 [Figure - 2] javaagent 방식 애플리케이션서버실행스크립트에 JVM 옵션으로 -javaagent 옵션에 Tracer 의파일경로를추가합니다. 애플리케이션서버를재기동시 Tracer 가애플리케이션서버의하위프로세스로실행되어성능수집코드를주입합니다. - Tracer: 성능데이터수집을위한모듈 구성파일 와탭모니터링에이전트는모니터링정보를수집하여서버에전송하기위한 Tracer 와 watcher 방식활용시 Tracer 를애플리케이션에 attach 하기위한 Watcher 및에이전트를디버깅하기위한쉘스크립트파일로구성됩니다. 와탭모니터링에이전트를구성하는각파일의역할은다음과같습니다. 1.1.1.2.1. 공통구성파일 파일명 whatap.agent.tracer- #.#.#.jar whatap.conf 설명 Tracer - 웹애플리케이션서버프로세스에 Attach 되어정보를수집 / 서버로전송하는프로그램 애플리케이션서버의데이터를수집하는수집서버의주소와서버의프로젝트라이선스키가입력되는파일 [Table - 1] 공통구성파일 6

1.1.1.2.2. javaagent + onetime attach 실행파일 파일명 attach.sh(bat) 설명 실행중인애플리케이션서버에일회성으로 Tracer 를적용하기위한리눅스 (Windows) 계열 OS 용실행쉘스크립트 [Table - 2] javaagent + onetime attach 실행파일 1.1.1.2.3. 유틸리티구성파일 파일명 javaproc.sh(bat) resmon.sh(bat) proxy.conf proxy.sh(bat) ping.sh(bat) 설명실행중인자바프로세스들의 PID 와 JVM 옵션을확인하는리눅스 (Windows) 계열 OS 용실행쉘스크립트 CPU/Memory/Disk 정보추출을위한리눅스 (Windows) 계열 OS 용실행쉘스크립트소프트웨어프록시설정파일소프트웨어프록시실행을위한리눅스 (Windows) 계열 OS 용실행쉘스크립트서버와의통신확인을위한위한리눅스 (Windows) 계열 OS 용실행쉘스크립트 에이전트이름식별 [Table - 3] 유틸리티구성파일 와탭은모니터링정보수집대상인애플리케이션서버식별을위한정보로기본적으로애플리케이션서버로부터수집한정보를활용합니다. 기본적으로활용하는정보는애플리케이션서버종류, 애플리케이션서버의 IP, 서비스포트를조합하여애플리케이션서버를고유식별자로사용하게되며필요에따라사용자가지정한명칭을사용하거나패턴을변경하여사용하는것도가능합니다. 이때에는꼭고유한값이어야만합니다. 애플리케이션서버로부터추출한정보를활용하는이유는애플리케이션서버의정지, 단절또는에이전트문제로인한수집서버와에이전트의통신단절상태가복구되었을경우, 재접속된에이전트로부터송신되는정보가기존에이전트로부터송신된정보와의연속성을유지하기위해서입니다. 와탭이애플리케이션서버를식별하기위해사용하는기본패턴은다음과같습니다. default: {type}-{ip2}-{ip3}-{port} 마지막요소가 {port} 가아닌 {pid} 로나올경우애플리케이션서버의서비스포트가인식되지않은것으로애플리케이션의마지막항목에표시되는 PID( 프로세스 ID) 를참고하여설치문제에대응합니다. 7

1.1.2. 에이전트설치 / 실행 / 업데이트 / 중지 와탭 APM 모니터링서비스를사용하기위해서는모니터링대상애플리케이션서버에와탭 APM 모니터링에이전트를설치해야합니다. 와탭 APM 모니터링에이전트설치방법은 whatap.io 사이트에서압축된에이전트파일을다운로드받아서버임의의위치에압축을풀어실행하는것만으로설치가완료됩니다. 공통 1.1.2.1.1. 프로젝트생성 [Figure - 3] 프로젝트생성 서버를등록하기위해우선프로젝트를생성합니다. 추가버튼을선택하면아래와같이프로젝트생성창이나타납니다. PHP 아이콘을선택한뒤, 희망하는프로젝트명과데이터서버지역 (Region), 소속하게될그룹을선택한뒤프로젝트를생성합니다. 이후, 생성된프로젝트를클릭하여관리화면에진입합니다. [Figure - 4] 프로젝트생성선택 8

1.1.2.1.2. 라이선스발급 [Figure - 5] 라이선스발급 프로젝트관리화면에서는우선적으로라이선스를발급받습니다. 라이선스키는프로젝트별로귀속되기때문에, 유출되거나배포되어서는안됩니다. 반드시본인프로젝트에서버를등록할때에만이용하시기바랍니다. 1.1.2.1.3. 에이전트다운로드 [Figure - 6] 에이전트다운로드 라이선스를발급받은후에는 에이전트파일다운로드 버튼이활성화되었음을확인할수있습니다. 해당버튼을눌러와탭에이전트파일을다운로드받습니다. 다운로드가완료되면안에있는 whatap.conf 파일의설정을확인하여라이선스키와데이터수집서버주소가정상적으로들어가있는지를확인합니다. license={ 라이선스키 } whatap.server.host={ 수집서버정보 } wget 으로직접다운받을경우, whatap.conf 파일에라이선스키와데이터수집서버주소가정상적으로들어가지않습니다. 해당방식으로다운받을경우, 업로드후별도로라이선스키와데이터수집서버주소를넣어주시기바랍니다. 9

1.1.2.1.4. 에이전트업로드 애플리케이션서버가설치된서버에접속하고, 다운로드받은에이전트파일을업로드한후, 압축해제를합니다. $WHATAP_HOME 은와탭 APM 모니터링에이전트의설치경로를가리키며, 이후본문서에서이와같이기술합니다. 에이전트는수집서버주소로애플리케이션서버의성능정보를전송합니다. 그러므로방화벽에수집서버 IP 로의 TCP 아웃바운드포트 (6600) 이차단되어있으면안됩니다. 1.1.2.1.5. 자원수집가능여부확인 $WHATAP_HOME 경로로이동하여 CPU/Memory/Disk 정보추출가능여부를확인합니다. $./resmon.sh / / / / / / / / / _ \/ _ `// / / _ `/ _ \ / /_//_/\_,_//_/ \_,_/. / /_/ Just Tap, Always Monitoring WhaTap Agent version 0.3.7 20161107 cpu pcpu mem disk 120322 14.06 0.0 42.0 85.0 120325 14.06 0.0 42.0 85.0 이후절차는각각의설치방식에따라진행하면됩니다. 진행되는절차가상이하여다른작업방식을적용할경우에이전트가정상적으로작동되지않을수있으니반드시본매뉴얼을참고해주시기바랍니다. javaagent + onetime attach 방식 실행중애플리케이션서버에는 attach 방식으로모니터링기능을적용하고, 애플리케이션서버의재기동시점에 javaagent 방식을적용합니다. 실행상태의애플리케이션서버를재기동하지않고모니터링을수행하고, 애플리케이션서버재기동시에는권장설치방식으로모니터링기능을적용합니다. 본방식은 attach.sh(bat) 파일을실행하여적용하며, 실행파라미터로 PID( 프로세스 ID) 를사용합니다. 최초실행시 attach.sh(bat) 를실행하는과정을제외하고설치 / 실행 / 업데이트 / 종료절차는 javaagent 방식과동일합니다. 10

1.1.2.2.1. 사전확인 Linux 계열의경우 ps 명령을, Windows 계열의경우작업관리자를통해실행중인애플리케이션의프로세스 ID (PID) 를확인합니다. 예시. Tomcat 예시 (Linux, Web Application Server 종류별로상이할수있습니다 ) $ ps -ef grep tomcat grep -v 'grep' ec2-user 3058 1 1 06:11 pts/0 00:00:02 /home/ec2-user/jdk1.8.0_111/bin/java - Djava.util.logging.config.file=/home/ec2-user/apache-tomcat-7.0.72/conf/logging.properties - Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 - Djava.endorsed.dirs=/home/ec2-user/apache-tomcat-7.0.72/endorsed -classpath /home/ec2-user/apache-tomcat- 7.0.72/bin/bootstrap.jar:/home/ec2-user/apache-tomcat-7.0.72/bin/tomcat-juli.jar -Dcatalina.base=/home/ec2- user/apache-tomcat-7.0.72 -Dcatalina.home=/home/ec2-user/apache-tomcat-7.0.72 -Djava.io.tmpdir=/home/ec2- user/apache-tomcat-7.0.72/temp org.apache.catalina.startup.bootstrap start 1.1.2.2.2. 설치 javaagent 방식의설치와동일하게애플리케이션서버 JVM 옵션에 -javaagent 설정을추가합니다. -javaagent:$whatap_home/whatap.agent.tracer-#.#.#.jar 1.1.2.2.3. 실행 $WHATAP_HOME 경로하위에서사전확인과정에서확인한 PID 를파라미터로부여하여 attach.sh(bat) 을실행합니다. 에이전트정상동작확인절차는 javaagent 방식과동일합니다. $./attach.sh 3058 JAVA_HOME=/jdk1.8.0_111 / / / / / / / / / _ \/ _ `// / / _ `/ _ \ / /_//_/\_,_//_/ \_,_/. / /_/ Just Tap, Always Monitoring WhaTap Agent version 0.4.2 20161123 Admin: ec2-user PID: 3128 Java Path: /jdk1.8.0_111/jre Java Version: 1.8.0_111 AttachAgent Success : [3058] org.apache.catalina.startup.bootstrap start 11

javaagent 방식 본방식으로에이전트를구동하는경우해당애플리케이션서버의재부팅을필요로합니다. 1.1.2.3.1. 설치 애플리케이션서버 JVM 옵션에 -javaagent 설정을추가합니다. -javaagent:$whatap_home/whatap.agent.tracer-#.#.#.jar -javaagent 프로퍼티값은 $WHATAP_HOME/whatap.agent.tracer-#.#.#.jar 의절대경로입니다. 애플리케이션서버에따라별도의프로퍼티를추가해야하는경우도있으며, 이는 애플리케이션서버별적용절차 에서확인할수있습니다. 1.1.2.3.1.1. Tomcat Linux 계열 Tomcat 의경우웹애플리케이션서버를구동하는파일 ( 톰캣의경우 Catalina) 의상단에 JAVA_OPTS 를부여합니다. # JAVA_OPTS (Optional) Java runtime options used when any command # is executed. # Include here and not in CATALINA_OPTS all options, that # should be used by Tomcat and also by the stop process, # the version command etc. # Most options should go into CATALINA_OPTS. ########## WHATAP ############ JAVA_OPTS="${JAVA_OPTS} -javaagent:/whatap/whatap.agent.tracer-0.4.2.jar " ########## WHATAP ############ 항상 $WHATAP_HOME 디렉토리에설치된최상위버전의에이전트로기동하고자하는경우, 아래와같은스크립트를적용해줍니다. ########## WHATAP START ############ WHATAP_HOME=/whatap WHATAP_JAR=`ls ${WHATAP_HOME}/whatap.agent.tracer-*.jar sort tail -1` JAVA_OPTS="${JAVA_OPTS} -javaagent:${whatap_jar} " ########## WHATAP END ############ 12

1.1.2.3.1.2. Tomcat Windows 계열 rem JAVA_OPTS (Optional) Java runtime options used when any command rem is executed. rem Include here and not in CATALINA_OPTS all options, that rem should be used by Tomcat and also by the stop process, rem the version command etc. rem Most options should go into CATALINA_OPTS. rem ########## WHATAP ############ if x%java_opts% == x ( set JAVA_OPTS=-javaagent:C:\whatap\whatap.agent.tracer-0.4.2.jar ) else ( if x%java_opts:whatap=% == x%java_opts% ( set JAVA_OPTS=%JAVA_OPTS% -javaagent:c:\whatap\whatap.agent.tracer-0.4.2.jar ) ) rem ########## WHATAP ############ 항상 $WHATAP_HOME 디렉토리에설치된최상위버전의에이전트로기동하고자하는경우, 아래와같은스크립트를적용해줍니다. rem ########## WHATAP START ############ set WHATAP_HOME=C:\whatap for /f %%f in ('dir /b /on "%WHATAP_HOME%\whatap.agent.tracer-*.jar"') do set last=%%f set WHATAP_JAR=%last% set WHATAP_OPTS=-javaagent:"%WHATAP_HOME%\%WHATAP_JAR%" if "x%java_opts%"=="x" goto setwhatap set JAVA_OPTS_TMP=%JAVA_OPTS:"=% if not "x%java_opts_tmp:whatap=%"=="x%java_opts_tmp%" goto endwhatap :setwhatap set JAVA_OPTS=%JAVA_OPTS% %WHATAP_OPTS% :endwhatap rem ########## WHATAP END ############ 13

1.1.2.3.2. 실행 애플리케이션서버를기동또는재기동하고, 애플리케이션서버로그및에이전트로그를확인하여에이전트의정상기동여부를확인합니다. Nov 16, 2016 3:06:40 AM org.apache.catalina.startup.hostconfig deploydirectory INFO: Deployment of web application directory /var/lib/tomcat7/webapps/root has finished in 577 ms Nov 16, 2016 3:06:40 AM org.apache.coyote.abstractprotocol start INFO: Starting ProtocolHandler ["http-bio-8080"] Nov 16, 2016 3:06:40 AM org.apache.catalina.startup.catalina start INFO: Server startup in 3984 ms / / / / / / / / / _ \/ _ `// / / _ `/ _ \ / /_//_/\_,_//_/ \_,_/. / /_/ Just Tap, Always Monitoring WhaTap Agent version 0.3.9 20161115 서버에서정상적으로로그가올라온것을확인한뒤, 콘솔에정상적으로등록되어있는여부를확인하기위해해당프로젝트의 서버 메뉴에올라온해당애플리케이션서버의명칭을확인합니다. [Figure - 7] 어플리케이션목록 애플리케이션명은 {type}-{ip2}-{ip3}-{port] 의형태의식별 ID 가부여됩니다. 마지막요소가 {port} 가아닌 {pid} 인경우애플리케이션서버의서비스포트가인식되지않은것으로애플리케이션의마지막항목에표시되는 PID( 프로세스 ID) 를참조하여설치문제에대응합니다. 14

1.1.2.3.3. 업데이트 에이전트설치파일을다운로드받아압축을풀고, whatap.agent.tracer-#.#.#.jar 파일을 $WHATAP_HOME 폴더에복사합니다. 애플리케이션서버의 JVM 옵션의 -javaagent 설정을새로설치된 whatap.agent.tracer-#.#.#.jar 로수정하고, 애플리케이션서버를재기동합니다. 애플리케이션서버재기동시항상최상위버전으로적용하고자하는경우위 설치 섹션에서제시된스크립트를참조하여적용하면됩니다. 구버전의 whatap.agent.tracer-#.#.#.jar 파일을삭제하고자하는경우, 애플리케이션서버재기동이후에삭제하도록합니다. 1.1.2.3.4. 중지 애플리케이션서버 JVM 옵션의 -javaagent 설정을삭제하고, 애플리케이션서버를재기동합니다. 에이전트삭제를희망하는경우, 애플리케이션서버재기동이후에삭제하도록합니다. 15

1.1.3. 로그 ( 준비중 ) 로그파일종류 정상동작확인 1.1.4. 애플리케이션서버별적용절차 애플리케이션서버별 JVM 옵션설정위치 애플리케이션서버 SpringBoot Tomcat JBoss 5.0 이하 JBoss 7.0 이상 EAP 6.0 이상 WebLogic WebSphere Jeus7 Jeus6 Jetty 설정위치 java -javaagent:{whatap.agent.tracer-x.x.x.jar 의 full path} -jar {application jar} $CATALINA_HOME/bin/catalina.sh(bat) $JBOSS_HOME/bin/run.conf $JBOSS_HOME/bin/standalone.conf(domain.conf) $WEBLOGIC_HOME/user_projects/domains/ 사용자도메인 /bin/startweblogic.sh(bat) admin console 통해 1. Server > Server Types > WebSphere application servers > 서버선택 2. 서버 Configuration 탭 > Server Infrastructure 의 Java and Process Management > Process definition 선택 3. Additional Properties 의 Java Virtual Machine 선택 4. Generic JVM arguments 편집 $JEUS_HOME/domains/jeus_domain/config.xml $JEUS_HOME/config/$hostname/JEUSMain.xml watch_jetty.sh(bat) SpringBoot [Table - 4] 어플리케이션서버설정위치 jar 형태로패키징하여실행하는경우 jvm 옵션에 -javaagent 를추가합니다. java -javaagent:{whatap.agent.tracer-x.x.x.jar 의 full path} -jar {application jar} 16

Tomcat on Windows Service Windows 계열 OS 에 binary 로설치하여 SYSTEM 계정으로실행한경우, javaagent 방식으로 Tomcat 을실행합니다. Configure Tomcat 프로그램을실행하여 Java 탭선택 > Java Options 에 -javaagent 옵션을지정합니다. [Figure - 8] java 옵션지정 17

JBoss 1.1.4.4.1. javaagent + onetime attach 방식 1. javaagent 방식과동일하게 JVM 옵션을추가합니다. 예제. standalone.sh 설정추가예 #!/bin/sh ########## WHATAP ############ WHATAP_HOME=/home/ec2-user/whatap WHATAP_JAR=`ls ${WHATAP_HOME}/whatap.agent.tracer-*.jar sort tail -1` JAVA_OPTS="${JAVA_OPTS} -javaagent:${whatap_jar} -Djboss.modules.system.pkgs=whatap " ########## WHATAP ############ 2. JBOSS 의 PID( 프로세스 ID) 를확인합니다. $ ps -ef grep jboss grep -v 'grep' ec2-user 27757 27714 13 12:21 pts/2 00:00:03 /jdk1.7.0_79/bin/java -D[Standalone] -server - XX:+UseCompressedOops -XX:+TieredCompilation -Djboss.modules.system.pkgs=whatap - Dorg.jboss.boot.log.file=/jboss-as-7.1.1.Final/standalone/log/boot.log -Dlogging.configuration=file:/jbossas-7.1.1.Final/standalone/configuration/logging.properties -jar /jboss-as-7.1.1.final/jboss-modules.jar -mp /jboss-as-7.1.1.final/modules -jaxpmodule javax.xml.jaxp-provider org.jboss.as.standalone - Djboss.home.dir=/jboss-as-7.1.1.Final 3. attach.sh 스크립트를실행합니다. $./attach.sh 27757 JAVA_HOME=/jdk1.7.0_79 / / / / / / / / / _ \/ _ `// / / _ `/ _ \ / /_//_/\_,_//_/ \_,_/. / /_/ Just Tap, Always Monitoring WhaTap Agent version 0.4.5 20161207 Admin: ec2-user PID: 27848 Java Path: /jdk1.7.0_79/jre Java Version: 1.7.0_79 AttachAgent Success : [27757] /jboss-as-7.1.1.final/jboss-modules.jar -mp /jboss-as-7.1.1.final/modules - jaxpmodule javax.xml.jaxp-provider org.jboss.as.standalone -Djboss.home.dir=/jboss-as-7.1.1.Final 1.1.4.4.2. javaagent 방식 JVM 옵션에 -javaagent 및 -Djboss.modules.system.pkgs 에설정을추가합니다. 애플리케이션서버버전 JVM 옵션 공통 JBOSS 7.0 이상 EAP 6.0 이상 JVM 옵션의 -javaagent 에 Tracer 설정 JVM 옵션의 -Djboss.modules.system.pkgs 환경변수에 whatap prefix 추가 [Table - 5] javaagent 방식 18

예제. standalone.sh 설정추가예 #!/bin/sh ########## WHATAP ############ WHATAP_HOME=/home/ec2-user/whatap WHATAP_JAR=`ls ${WHATAP_HOME}/whatap.agent.tracer-*.jar sort tail -1` JAVA_OPTS="${JAVA_OPTS} -javaagent:${whatap_jar} -Djboss.modules.system.pkgs=whatap " ########## WHATAP ############ -Djboss.modules.system.pkgs=whatap 미설정시에러메세지 11:38:46,148 ERROR [org.apache.catalina.core.containerbase.[jboss.web].[default-host].[/].[default]] (http-- 0.0.0.0-8080-1) Servlet.service() for servlet default threw exception: java.lang.classnotfoundexception: whatap.agent.trace.tracemain from [Module "javax.servlet.api:main" from local module loader @67d7d474 (roots: /jboss-as-7.1.1.final/modules)] 19

WebLogic javaagnet 방식적용시의설정예시를제시합니다. 설정위치 $WEBLOGIC_HOME/user_projects/domains/ 사용자도메인 /bin/startweblogic.sh(bat) -javaagent 프로퍼티설정을추가합니다. $WEBLOGIC_HOME 은 WebLogic 설치경로를가리킵니다. 설정예 [Figure - 9] WebLogic 특정인스턴스만적용하기위해서는 $SERVER_NAME 을분기하여야합니다. #vi startweblogic.sh ########## WHATAP ############ WHATAP_HOME=/home/weblogic/whatap WHATAP_JAR=`ls ${WHATAP_HOME}/whatap.agent.tracer-*.jar sort tail -1` if [ "${SERVER_NAME}" = "Production" -o "${SERVER_NAME}" = "Reduce" -o "${SERVER_NAME}" = "Run"] ; then JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:${whatap_jar} " fi ########## WHATAP ############ WebSphere 에이전트방식만지원하며, Web Console 을통한설정방법을제시합니다. 1. 먼저웹브라우저를통해 admin console 에로그인합니다. 20

[Figure - 10] WebSphere Servers > Server Type > WebSphere application servers 메뉴를통해에이전트를설치할서버를선택합니다. [Figure - 11] 에이전트설치서버선택 2. 선택된서버 Configuration 탭에 Server Infrastructure 의 Java and Process Management > Process definition 메뉴를선택합니다. 21

[Figure - 12] Process definaition 선택 22

3. Additional Properties 의 Java Virtual Machine 메뉴를선택합니다. [Figure - 13] java virtual machine 메뉴선택 4. WEBSHERE 의서비스포트를확인합니다. [Figure - 14] 서비스포트확인 23

5. Configuration 탭의 Generic JVM arguments 에 -javaagent 와 -Dwhatap.port 를추가합니다. [Figure - 15] Configuration 텝 리눅스계열 -javaagent:/home/wasadmin/whatap/whatap.agent.tracer-#.#.#.jar -Dwhatap.port=9443 윈도우계열 -javaagent:c:\whatap\whatap.agent.tracer-#.#.#.jar -Dwhatap.port=9443 24

Jeus javaagent 방식을적용하는경우, 다음절차를통해설치합니다. 1. Jeus 설정파일에서 JVM 옵션을설정합니다 설정파일위치 Jeus7 $JEUS_HOME/domains/jeus_domain/config.xml 에서 jvm-option 에 -javaagent 옵션을추가합니다. Jeus6 $JEUS_HOME/config/$hostname/JEUSMain.xml 에서 command-option 에 -javaagent 옵션을추가합니다. - $JEUS_HOME 은 JEUS 설치경로를가리킵니다. 예제. Jeus 7 예시 [Table - 6] Jeus JVM 옵션... <domain> <servers> <server> <name>server1</name> <jvm-config> <jvm-option> -Xmx1024m -XX:MaxPermSize=128m -javaagent:/whatap/whatap.agent.tracer-0.8.1.jar </jvm-option> </jvm-config> </server> </servers> </domain>... 25

Jeus 6 예시 2. 애플리케이션서버를재기동시킵니다. [Figure - 16] Jeus 예시 [Figure - 17] 애플리케이션재가동 3. 애플리케이션서버로그와에이전트로그를통해에이전트가정상적으로기동하였는지, 에러가발생하지않았는지확인합니다. 로그파일위치 에이전트 JEUS6 JEUS7 $WHATAP_HOME/logs/whatap-{SERVER_NAME}-{DATE}.log $JEUS_HOME/logs/$NODE_NAME/JeusServer.log $JEUS_HOME/domains/$HOST_NAME/servers/$NODE_NAME/logs/JeusServer.log [Table - 7] 로그파일위치 26

JEUS7 예시 ($JEUS_HOME/domains/$HOST_NAME/servers/$NODE_NAME/logs/JeusServer.log) [Figure - 18] Jeus7 예시 4. 에이전트가애플리케이션서버의종류와애플리케이션서버의서비스 container 명을인식했는지확인합니다. 와탭사이트에서 whatap.name 과 whatap.type 을확인합니다. whatap.io 사이트에로그인 > APM 제품선택 > 프로젝트의 Application Servers 메뉴선택 > 설치한 JEUS 서버 > Boot Environment 메뉴선택을통해확인합니다. whatap.type 에는애플리케이션서버의종류가명시되어야하며, whatap.name 의마지막요소가 container 이름이어야합니다. [Figure - 19] container 명인식확인 27

Jetty JVM 옵션에 -javaagent 와 -Dwhatap.port 를추가합니다. Jetty 실행스크립트 $JETTY_HOME/bin/jetty.sh 파일에 JVM 파일옵션을추가합니다. - 이후본문서에서 $JETTY_HOME 은 Jetty 설치경로를가리킵니다. [Figure - 20] Jetty 설치경로 java 실행옵션에설정 - $JETTY_HOME/bin 경로로이동후, 하기옵션을적용하여 Jetty 를기동합니다. $ java -javaagent:/home/vagrant/whatap/whatap.agent.tracer-0.3.0.jar -Dwhatap.port=8080 -jar start.jar & 28

Resin javaagent 방식을적용하는경우, 다음절차를통해설치합니다. 1. Resin 설정파일에서 JVM 옵션을설정합니다. 설정파일위치 Resin 4.x $RESIN_HOME/conf/resin.properties 에서 jvm-arg 를추가하여 -javaagent 옵션을설정합니다. 예제. Resin4.x 예시 [Table - 8] Resin 설정파일위치 ( 중략 ) <resin xmlns="http://caucho.com/ns/resin"> <cluster id="web-tier"> <server-default> <jvm-arg>-xmx1024m -XX:MaxPermSize=128m -javaagent:/whatap/whatap.agent.tracer- #.#.#.jar</jvm-arg> </server-default>... </cluster> </resin> ( 중략 ) 2. 애플리케이션서버를재기동시킵니다. 3. 애플리케이션서버로그와에이전트로그를통해에이전트가정상적으로기동되었는지에러가발생하지않았는지확인합니다. 로그파일위치 에이전트 RESIN4.x $WHATAP_HOME/logs/whatap-{SERVER_NAME}-{DATE}.log $RESIN_HOME/log/jvm-app-#.log [Table - 9] Resin 로그파일위치 29

1.1.5. 설치에러대응 방화벽설정확인 와탭서버에대한 TCP 아웃바운드방화벽이설정되어있으면모니터링정보를서버로전송할수없으므로방화벽차단을해제해야합니다. 1.1.5.1.1. 방화벽확인방법 (telnet 서버 IP 서버포트 ) telnet 명령수행시하기와같은접속관련정보가표시되어야정상입니다. $ telnet 52.193.60.176 6600 Trying 52.193.60.176... Connected to 52.193.60.176. Escape character is '^]'. 수집서버정보는와탭웹사이트에서해당프로젝트의관리 > 에이전트설치메뉴에서확인할수있습니다. 애플리케이션서비스포트가감지되지않는경우 모니터링대상은인식하였으나서비스포트를감지하지못하는경우, 에이전트는와탭서버로포트대신 PID( 프로세스 ID) 를전송합니다. 이는와탭사이트의모니터링대상서버목록을통해포트가감지되지않은서버를 PID 로식별하여조치할수있도록하기위함입니다. 서비스포트감지에실패한애플리케이션서버확인을위하여와탭사이트의하기경로를통해애플리케이션서버정보를확인합니다. 해당프로젝트의서버메뉴 > 해당서버의 More 버튼 > Boot Environment 선택 Tomcat 예시 [Figure - 21] Tomcat 예시 이런경우아래와같이애플리케이션서버실행스크립트에명시된 JVM 옵션에 whatap.port 시스템프로퍼티를추가한후애플리케이션서버를재기동합니다. JAVA_OPTS="${JAVA_OPTS} -Dwhatap.port=8080 " 애플리케이션서버별 JVM 옵션설정파일은 애플리케이션서버별적용절차 에서확인할수있습니다. 30

애플리케이션서버가 OSGi 프레임워크를사용하는경우 7.0 이상버전의 JBOSS AP, 6.x 버전이상의 JBOSS EAP, WebSphere 같이 OSGI 프레임워크구조의애플리케이션서버실행파일의 JVM 옵션에에이전트패키지 prefix(whatap) 을등록합니다. OSGI 애플리케이션에서에이전트클래스참조를위해추가하는설정입니다. 1.1.5.3.1. JBoss AS 7.0 이상, JBoss EAP 6.0 이상 JBOSS.EAP 7.0 예시 $JBOSS_HOME/bin/standalone.conf(domain.conf) 파일에 prefix 를등록합니다. [Figure - 22] JBOSS.EAP.7.0 예시 1.1.5.3.2. WebSphere Default 로서브컨테이너라이브러리의상호참조가허용되어있는경우별도의설정이필요하지않습니다. 서브컨테이너라이브러리의상호참조가허용되지않는오류가발생하는경우, 와탭패키지자체가로딩되지않으므로, 하기설정을 JVM Option 에추가합니다. -Dcom.ibm.ws.classloader.server.alwaysAllowedPackages=whatap - Default 로 * 로지정되어있는경우는별도의설정을필요로하지않습니다. - 설정위치는 WebSphere 를참조합니다. 필요에따라하기의설정을적용합니다. (java 프로세스를먼저확인하여 -Dorg.osgi.framework.bootdelegation 가 * 로지정된경우는설정하지않습니다.) OSGi 컨테이너로 Eclipse Equinox 를활용하므로, 와탭패키지를 OSGi bootdelegation 시스템프로퍼티에추가합니다. -Dorg.osgi.framework.bootdelegation=...,whatap.* - Default 로 * 로지정되어있는경우는별도의설정을필요로하지않습니다. - 설정위치는 WebSphere 를참조합니다. 31

1.1.5.3.2.1. security.policy 권한추가 $WEBSPHERE_HOME/properties/server.policy 또는 $WEBSPHERE_PROFILE_HOME/properties/server.policy 파일에아래와같이권한을추가합니다. grant codebase "file:$whatap_home/-" { permission java.security.allpermission; }; 1.1.5.4.1. IBM JDK 히트맵에트랜잭션이표시되지않는경우 IBM JDK 의경우 watcher 방식으로에이전트를실행시킬경우트랜잭션정보가수집되지않으므로 javaagent 방식으로에이전트를실행해야합니다. logmanager 관련에러가발생하는경우 1.1.5.5.1. JBoss AS 7.0 이상, JBoss EAP 6.0 이상 $WHATAP_HOME/logs/whatap-{SERVER_NAME}-{DATE}.log 파일의 whatap.error 에해당에러가출력된경우하기 JVM 옵션을설정합니다. -Djava.util.logging.manager 에 LogManager package 명설정 -Xbootclassloader 에 JBoss log manager JAR file 설정 설정추가예 [Figure - 23] logmanager 설정추가예 32

MBeanServerBuilder 에러가발생하는경우 1.1.5.6.1. JBoss 5.0 이하 $WHATAP_HOME/logs/whatap-{SERVER_NAME}-{DATE}.log 파일의 whatap.error 에해당에러가출력된경우하기 JVM 옵션을설정합니다. -Djboss.platform.mbeanserver 를 true 로설정합니다. 설정추가예 [Figure - 24] MBeanSereverBuilser 설정추가예 permission 오류가발생하는경우 Java Security Policy 관련오류가발생하는경우, $JAVA_HOME/jre/lib/security/java.policy 파일에권한설정을추가합니다. 1.1.5.7.1. 권한일괄허용 최소한의권한설정을적용하지않고, 모든권한을일괄적용하고자하는경우, {JAVA_HOME}/jre/lib/security/java.policy 파일에하기의설정을추가합니다. grant { permission java.security.allpermission; }; 33

1.1.5.7.2. java.io.filepermission 오류가발생하는경우 [Figure - 25] Java.io.FilePermission 오류 $JAVA_HOME/jre/lib/security/java.policy 파일에하기의설정을추가합니다. grant {... }; permission java.io.filepermission { 오류메세지에서확인된패키지경로 }, "read" 1.1.5.7.3. java.util.propertypermission 오류가발생하는경우 [Figure - 26] Java.util.PropertryPermission 오류 $JAVA_HOME/jre/lib/security/java.policy 파일에하기의설정을추가합니다. grant {... }; permission java.util.propertypermission { 오류메세지에서확인된패키지경로 }, "read" 34

Sigar library 를로딩하지못하는경우 $WHATAP_HOME/lib1/*.so 파일에실행권한이부여되어있는지확인합니다. 미부여시에는하기명령을통해실행권한을부여합니다. $ sudo chmod +x *.so [Figure - 27] Siger library AIX 7 에서 $WHATAP_HOME/lib1 하위에 libsigar-ppc64-aix-7.so 파일이존재하지않아오류가발생한경우, sigar-ppc64-aix-5.so 파일을복제하여 sigar-ppc64-aix-7.so 파일로복제하여주시기바랍니다. 35

1.1.6. FAQ 서버명을임의로부여하여관리하고싶은경우 에이전트는애플리케이션서버종류와애플리케이션서버의 IP, 서비스포트를사용하여자동으로서버명을부여합니다. 자동으로부여된이름대신직접애플리케이션서버별로이름을부여하고싶은경우, 애플리케이션서버의 JVM 옵션으로애플리케이션명을명시적으로지정할수있습니다. 1.1.6.1.1. 애플리케이션명지정옵션 우선순위옵션설정위치설명 1 -Dwhatap.name JVM Option 어플리케이션명패턴을지정합니다. default : {type}-{ip2}-{ip3}-{port} 2 -Dwhatap.oname JVM Option 어플리케이션명을고정값으로지정합니다. 1.1.6.1.2. 애플리케이션명패턴 [Table - 10] 애플리키에션지정옵션 프로젝트에등록된애플리케이션서버별로동일한이름이사용되면안되므로서버명을고정으로사용해서는안됩니다. Internal ip address 로인해서버 ip 가중복되는경우는애플리케이션서버명을그룹단위로패턴화하여적용할수있습니다. 패턴옵션 설명 type ipn port pid 어플리케이션서버유형 ip address 의 N 번째자리어플리케이션서비스포트어플리케이션프로세스 ID [Table - 11] 애플리케이션명패턴 36

1.1.6.1.3. 애플리케이션명옵션적용예시 Jetty 예시 JVM 옵션에 -Dwhatap.name=sale1-192-168-111 를지정한예시입니다. 예시. [Figure - 28] Jetty 예시 Jetty 및에이전트실행후, 와탭사이트의하기경로에서등록한이름으로서버가등록된것을확인할수있습니다. whatap.io 사이트에로그인 > APM 제품선택 > 프로젝트의 Application Servers 메뉴선택 [Figure - 29] Jetty 예시 1.1.7. 확장기능 AES 256 암호화적용 와탭 APM 에이전트는수집된데이터를암호화하여서버로전송합니다. 데이터의중요도나설정에따라이를변경할수있습니다. 기본적으로 XOR 연산과 AES 알고리즘을통한암호화를사용하며평문을 128 비트단위로나누어암호화, 복호화를수행하며, 사용자의설정에따라 256 비트까지확장할수있습니다. 1.1.7.1.1. 설치 기본적으로 JCE 는 128 비트를지원하고있기때문에 AES 256 비트를적용하기위해서는아래패치를통해 256 비트까지확장해서사용할수있게해야합니다. 기본적인환경에서 AES 256 적용시다음과같은오류발생 37

Unsupported keysize or algorithm parameters. ## 혹은, Illegal key size or default parameters. Java 7 - http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html Java 6 - http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html Java 5 - http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat- 419418.html#jce_policy-1.5.0-oth-JPR Java 1.42 - http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#7503- jce-1.4.2-oth-jpr 위의파일을다운로드한후 $JAVA_HOME/jre/lib/security 에파일을덮어씁니다. 1.1.7.1.2. 설정 와탭 APM 에이전트가설치된디렉토리에서 whatap.conf 파일에아래와같은설정을추가합니다. cypher_level=256 설정을추가합니다. license=[ 라이선스키 ] whatap.server.host=52.78.209.94/52.78.224.235 cypher_level=256 1.1.7.1.3. 재실행 설정을추가한후 WAS 를재기동합니다. 38

에이전트 Ping 모니터링기능을적용하기앞서 Tracer 와서버간의통신에문제가없는지확인하기위한기능을제공합니다. 사용자는 ping.sh 를실행하여에이전트를통해가상의모니터링정보를서버로송신할수있으며, whatap.io 사이트에정보가정상송신되는지의여부를확인할수있습니다. 1.1.7.2.1. 실행 $./ping.sh JAVA_HOME=/jdk1.8.0_111 / / / / / / / / / _ \/ _ `// / / _ `/ _ \ / /_//_/\_,_//_/ \_,_/. / /_/ Just Tap, Always Monitoring WhaTap Agent version 0.4.5 20161207 20161208 09:02:25.003 SEND PING DATA 20161208 09:02:25.510 SEND PING DATA ( 생략 ) 39

1.1.7.2.2. 확인 에이전트가설치된서버와수집서버간의통신이정상적으로수행되었다면 whatap.io 사이트에서하기와같은화면을확인할수있습니다. 대시보드 가상의액티브트랜잭션수가 30 으로나타납니다. [Figure - 30] 에이전트대시보드 1.1.7.2.3. 애플리케이션서버 서버로데이터를송신중인가상의에이전트가 NET-PING-{PID} 의애플리케이션명으로등록되어있는것을확인할수있습니다. [Figure - 31] 에이전트어플리키에션서버리스트 40

1.1.8. 제약사항 whatap.io 사이트에서프로젝트생성시, 지역 (Region) 은중복선택이불가하며복수의지역 (Region) 을활용하는경우별도의프로젝트를생성해야합니다. Cloud 환경과같이복수의지역 (Region) 에서버가존재하는경우, 네트워크 latency 등성능정보수집상의제약사항을회피하기위하여지역 (Region) 단위로수집서버를위치시켜야합니다. 와탭은고객요구사항에부응하기위하여지역 (Region) 별로수집서버를구축합니다. 와탭 APM 모니터링은에이전트의식별을위한용도로에이전트의 IP 주소와 Port 정보를활용하기때문에사용자환경의모니터링대상애플리케이션서버가동일 IP, 동일 Port 를사용하는경우와탭서버에서해당서버인스턴스를구분할수없게됩니다. 서버인스턴스가동적으로확장되는환경이아니라면 서버명을임의로부여하여관리하고싶은경우 를참조하여애플리케이션식별을위한명칭을직접지정하는방식을통해우회할수있습니다. 와탭에서는현재모니터링대상애플리케이션이 internal address 또는네트워크가상화로인해중복된 IP 를사용할경우, 서버명을임의로부여하여관리하고싶은경우 를참고하여별도의애플리케이션명패턴을활용합니다. IBM JDK 의경우 watcher 방식으로에이전트를실행시킬경우트랜잭션정보가수집되지않으므로 javaagent 방식만을지원합니다. JVM Optimization 을저해하여성능저하를유발할가능성으로인해코드주입을제한하고있습니다. 41

1.1.9. 호환성목록 WAS Java 버전별로다양한 WAS 에서와탭에이전트호환성테스트를수행한결과입니다. 1.1.9.1.1. Tomcat WAS Ver. java se6 (jdk1.6.0) java se7 (jdk1.7.0_80) java se8 (jdk1.8.0_91) tomcat6 ok ok ok tomcat7 ok ok ok tomcat8 not ok ok ok tomcat9 not ok not ok ok [Table - 12] Tomcat WAS Ver. open jdk6 (1.6.0_45) open jdk7 (1.7.0_80) open jdk8 (1.8.0_91) tomcat6 ok ok ok tomcat7 ok ok ok tomcat8 not ok ok ok tomcat9 not ok not ok ok [Table - 13] Tomcat WAS Ver. ibm-java-x86_64-60 ibm-java-x86_64-71 ibm-java-x86_64-80 tomcat6 ok ok ok tomcat7 ok ok ok tomcat8 not ok ok ok tomcat9 not ok not ok ok [Table - 14] Tomcat 42

1.1.9.1.2. Jeus WAS Ver. java se6 (jdk1.6.0) java se7 (jdk1.7.0_80) java se8 (jdk1.8.0_91) jeus6 ok ok not ok jeus7 ok ok not ok [Table - 15] Jeus WAS Ver. open jdk6 (1.6.0_45) open jdk7 (1.7.0_80) open jdk8 (1.8.0_91) jeus6 ok ok not ok jeus7 ok ok not ok [Table - 16] Jeus WAS Ver. ibm-java-x86_64-60 ibm-java-x86_64-71 ibm-java-x86_64-80 jeus6 ok ok not ok jeus7 [Table - 17] Jeus 1.1.9.1.3. WebLogic 업데이트예정 1.1.9.1.4. WebSphere WAS Ver. ibm-java-x86_64-60 8.5.5.10 ok [Table - 18] WebSphere 43

1.1.9.1.5. JBOSS JDK 6 이상버전에서지원되는 JBOSS Comunity, EAP, Wildfly 의모든버전을지원합니다. WAS Ver. java se6 (jdk1.6.0) java se7 (jdk1.7.0_80) java se8 (jdk1.8.0_91) jboss EAP 7.0 (standalone) not ok not ok ok jboss EAP 6.1.1 (standalone) not ok ok not ok jboss EAP 6.2 (standalone) not ok ok ok jboss EAP 6.3 (standalone) not ok ok ok jboss EAP 6.4 (standalone) not ok ok ok jboss EAP 7.0 (domain) not ok not ok ok jboss AS 5.1.0 (default) ok ok ok [Table - 19] JBOSS WAS Ver. open jdk6 (1.6.0_45) open jdk7 (1.7.0_80) open jdk8 (1.8.0_91) jboss EAP 7.0 (standalone) not ok not ok ok jboss EAP 6.1.1 (standalone) not ok ok not ok jboss EAP 6.2 (standalone) not ok ok ok jboss EAP 6.3 (standalone) not ok ok ok jboss EAP 6.4 (standalone) not ok ok ok jboss EAP 7.0 (domain) not ok not ok ok jboss AS 5.1.0 (default) ok ok ok [Table - 20] JBOSS WAS Ver. ibm-java-x86_64-60 ibm-java-x86_64-71 ibm-java-x86_64-80 jboss EAP 7.0 (standalone) not ok not ok ok jboss EAP 6.1.1 (standalone) not ok ok not ok jboss EAP 6.2 (standalone) not ok ok ok 44

WAS Ver. ibm-java-x86_64-60 ibm-java-x86_64-71 ibm-java-x86_64-80 jboss EAP 6.3 (standalone) not ok ok ok jboss EAP 6.4 (standalone) not ok ok ok jboss EAP 7.0 (domain) jboss AS 5.1.0 (default) ok ok ok 1.1.9.1.6. Jetty [Table - 21] JBOSS WAS Ver. java se6 (jdk1.6.0) java se7 (jdk1.7.0_80) java se8 (jdk1.8.0_91) Jetty 8.1.21 not ok ok ok Jetty 9.2.18 not ok ok ok Jetty 9.3.12 not ok not ok ok [Table - 22] Jetty WAS Ver. ibm-java-x86_64-60 ibm-java-x86_64-71 ibm-java-x86_64-80 Jetty 8.1.21 not ok ok ok Jetty 9.2.18 not ok ok ok Jetty 9.3.12 not ok not ok ok [Table - 23] Jetty 45

DB 와탭에이전트가 WAS 가제공하는 Connection pool 을사용하는웹애플리케이션의 DB 트랜잭션프로파일링기능여부에대해검증한결과입니다. 1.1.9.2.1. Tomcat DB JDBC Driver 화일명 JDBC Ver. JDK Ver. 호환성 Mysql mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok MariaDB mariadb-java-client-1.4.6.jar 1.4.6 JDK 1.7.0_80 ok PostgreSQL postgresql-9.4.1209.jre7.jar 9.4.1209 JDK 1.7.0_80 ok AWS aurora mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok Oracle ojdbc6-11.2.0.2.0.jar 11.2.0.2.0 JDK 1.7.0_80 ok DB2 db2jcc.jar, db2jcc_license_cu.jar 1.4.2 JDK 1.7.0_80 ok [Table - 24] Tomcat 1.1.9.2.2. Jeus DB JDBC Driver 화일명 JDBC Ver. JDK Ver. 호환성 Mysql mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok MariaDB mariadb-java-client-1.4.6.jar 1.4.6 JDK 1.7.0_80 ok PostgreSQL postgresql-9.4.1209.jre7.jar 9.4.1209 JDK 1.7.0_80 ok AWS aurora mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok Oracle ojdbc6-11.2.0.2.0.jar 11.2.0.2.0 JDK 1.7.0_80 ok DB2 db2jcc.jar, db2jcc_license_cu.jar 1.4.2 JDK 1.7.0_80 ok [Table - 25] Jeus 46

1.1.9.2.3. WebLogic DB JDK Ver. 호환성 Mysql JDK 1.8.0_91 ok 1.1.9.2.4. WebSphere [Table - 26] WebLogic DB JDBC Driver 화일명 JDBC Ver. JDK Ver. 호환성 Mysql mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok Oracle ojdbc6-11.2.0.2.0.jar 11.2.0.2.0 JDK 1.7.0_80 ok 1.1.9.2.5. JBoss [Table - 27] WebSphere DB JDBC Driver 화일명 JDBC Ver. JDK Ver. 호환성 Mysql mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok MariaDB mariadb-java-client-1.4.6.jar 1.4.6 JDK 1.7.0_80 ok PostgreSQL postgresql-9.4.1209.jre7.jar 9.4.1209 JDK 1.7.0_80 ok AWS aurora mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok Oracle ojdbc6-11.2.0.2.0.jar 11.2.0.2.0 JDK 1.7.0_80 ok DB2 db2jcc.jar, db2jcc_license_cu.jar 1.4.2 JDK 1.7.0_80 ok [Table - 28] JBOSS 1.1.9.2.6. Jetty DB JDBC Driver 화일명 JDBC Ver. JDK Ver. 호환성 Mysql mysql-connector-java-5.1.39-bin.jar 5.1.39 JDK 1.7.0_80 ok Oracle ojdbc6-11.2.0.2.0.jar 11.2.0.2.0 JDK 1.7.0_80 ok [Table - 29] Jetty 47

Thank you support@whatap.io ( 주 ) 와탭랩스 www.whatap.io 서울특별시강남구테헤란로 69 길 5 유기타워 11F (06160)