목차 이문서는와탭 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)