에이전트 설치 점검 가이드

제목 : Java Agent Checklist
작성자 : WhaTap Support
이메일 : support@whatap.io
날짜 : 2019-09-11
버전 : 1.0.1

설명 : 본 문서는 WhaTap Java Agent 설치 후 점검사항에 대한 가이드 입니다. 문서에 관한 문의는 support@whatap.io 로 연락 주시기 바랍니다.

본문 내용중 별도 제공 또는 요청시 로 표기된 항목은 support@whatap.io 로 연락 주시기 바랍니다.

본문은 설치 후 점검사항에 대한 가이드 입니다. 설치 과정중 발생하는 문제는 설치 에러 해결 을 통해 확인 할 수 있습니다.

1. 어플리케이션 서비스 확인

에이전트 설치 후 가장 먼저 확인해야 할 사항은 어플리케이션이 정상 기동되었는지 여부를 확인하는 것 입니다.
에이전트 설치 후에는 반드시 어플리케이션 로그를 통해 서비스 정상 여부를 확인해야 합니다.

Example 1. CheckPoint
  1. 에이전트 설치 과정에서 옵션에 오타, 잘못된 경로가 입력된 경우 어플리케이션이 기동 되지 않을 수 있습니다.

  2. 어플리케이션 실행 계정은 와탭 에이전트가 설치된 디렉토리에 RW권한이 있어야 합니다.

2. 에이전트 이름 확인

와탭 에이전트의 이름은 기본값으로 IP와 Port 의 조합으로 이루어 집니다.
IP와 Port의 조합으로 개별 어플리케이션을 식별 할 수 없다면 에이전트 네이밍 을 참고해 적절한 이름으로 고정하는 것이 필요합니다.

3. 데이터 수집여부 확인

서비스 요청이 있는 경우 히트맵에 표현되어야 합니다. 그리고 히트맵을 드래그 했을때 URL이 나와야 합니다.

Example 2. CheckPoint
  1. 에이전트 기동 이후에 방화벽이 오픈되었다면 URL과 같은 텍스트 데이터가 표현되지 않을 수 있습니다. 이 경우 에이전트를 재기동 해야 합니다.

  2. Servlet 기반의 어플리케이션이 아닌 경우 추가적인 EndPoint 설정을 하거나 기술지원 요청을 할 수 있습니다.

4. 시스템 자원 사용량 측정

메인프레임, 임베디드OS와 같은 특수한 환경에서는 CPU, Memory 사용량과 같은 시스템자원 사용량이 정상적 수집되지 않을 수 있습니다.
이 경우 JMX를 통해 시스템 자원 정보를 수집 할 수 있습니다.

JMX를 통해 시스템 자원을 수집하기 위해서는 에이전트 옵션을 추가 합니다.

whatap.conf
sigar_enabled=false

5. SQL 쿼리

히트맵을 드래그 했을때 실제 사용함에도 SQL 쿼리가 수집되지 않는다면 추가 설정을 필요로 합니다.

Example 3. CheckPoint
  1. 일반적인 JDBC 드라이버를 사용한 경우 해당 사항이 없습니다.

  2. 잘 사용되지 않거나 최신의 JDBC 드라이버인 경우 추가 설정(hook_jdbc_*_classes)이 필요 합니다. 기술지원 요청을 할 수 있습니다.

6. SQL 쿼리 파라미터

SQL 쿼리 파라미터를 모니터링 하기 위해서는 profile_sql_param_enabled 설정을 추가 합니다.
복호화키는 {에이전트 설치 위치}/paramkey.txt 에 6자리 문자열 이며 랜덤 값이 자동 생성됩니다. 변경을 원하는 경우 paramkey.txt 파일을 편집하여 원하는 문자열로 변경합니다.

Example 4. SQL 파라미터 모니터링 설정

profile_sql_param_enabled=true

7. DB ConnectionPool 추적

DB ConnectionPool 정보가 Active/Idle 모두 항상 0이라면 추가 설정을 필요로 합니다.
예) Liberty ConnectionPool

Example 5. CheckPoint
  1. 일반적인 DB ConnectionPool을 사용한 경우 해당 사항이 없습니다.

  2. 잘 사용되지 않는 DB ConnectionPool인 경우 추가 설정이 필요 합니다. 기술지원 요청을 할 수 있습니다.

8. 클라이언트 IP 추적 확인

히트맵을 드래그 했을때 클라이언트 IP가 방화벽 또는 L4로 항상 나타난다면 trace_http_client_ip_header_key 설정을 필요로 합니다.

Example 6. HTTPHeader 내 클라이언트IP 정보 추가

예) trace_http_client_ip_header_key=X-Forwarded-For

9. 사용자 수 추적 옵션 선택

서비스에 영향을 미치지 않으려는 목적으로 와탭의 사용자 구분 기본값은 IP 로 설정 되어있습니다.
정확도를 높이기 위해 다른 옵션 적용을 검토 할 수 있습니다.

서비스에서 쿠키를 다량 사용하는 경우 옵션 변경으로 인해 Cookie Overflow가 유발될 수 있습니다.

10. URL 정규화

URL이 정규화 되지 않은 경우 조회 성능 저하와 통계분석 어려움이 발생 할 수 있습니다.
URL이 정규화 되어 수집되지 않는 다면 관련 설정을 적용 합니다.

11. Java ThreadPool 카운트 추적

통계 - 카운터 에서 ThreadPool 관련 카운트가 0 으로 나타나는 경우 ThreadPool 정보를 가지고 있는 JMX MBean을 추가 등록하는 설정이 필요 합니다.

Example 7. CheckPoint
  1. 일반적인 ThreadPool을 사용한 경우 해당 사항이 없습니다.

  2. 잘 사용되지 않는 WAS인 경우 추가 설정이 필요 합니다. 기술지원 요청을 할 수 있습니다.

12. JVM 환경에 따른 제약

WhaTap Java Agent에서 제공되는 모든 기능은 JAVA6 ~ 8에서 온전히 동작 합니다. 하위/상위 버전의 JAVA는 사용상 제약이 있습니다.

Example 8. CheckPoint
  1. JAVA1.4환경은 별도 설치 파일로 제공됩니다. Stack 관련 기능이 동작하지 않습니다.

  2. JAVA5 에서는 Attach 기능, Heap Histogram 조회기능이 동작하지 않습니다.

  3. IBM JAVA5에 적용시 성능저하를 유발 할 수 있습니다. 요청시 whatap.agent.trace.ibm.x.x.x.jar 라는 별도 에이전트를 제공 해 드립니다.

  4. IBM JAVA 에서는 Attach 기능이 동작하지 않습니다.

  5. JDK가 아닌 JRE 사용 환경에서는 Attach 기능, Heap Histogram 조회기능이 동작하지 않습니다.

  6. JDK9 이상 환경 에이전트는 별도로 제공해 드리고 있습니다. 필요한 경우 support@whatap.io 로 문의 주세요.

13. 기타

설치 / 사용중 문의사항이 있는 경우 주저하지 말고 support@whatap.io 로 문의 주시기 바랍니다.