Java

에이전트 업데이트

관리 | 에이전트 업데이트 메뉴를 선택 후 최신 버전 또는 최신 버전으로 모든 에이전트에 다운로드 버튼을 클릭합니다.

다운로드된 에이전트는 애플리케이션을 다시 시작하면 자동으로 적용됩니다.

Screenshot 2020 12 04 test 14737   Application Monitoring1
Figure 1. 관리 - 에이전트 업데이트

에이전트 삭제

애플리케이션 서버 JVM 옵션의 -javaagent 설정을 삭제 후 애플리케이션 서버를 다시 시작합니다. 이후 $WHATAP_HOME 을 삭제합니다.

에이전트 롤백

관리 | 에이전트 업데이트 메뉴를 선택 후 다른 버전들 버튼을 클릭합니다.

agent rollback 1
Figure 2. 관리 - 에이전트 롤백 1

롤백을 원하는 버전을 선택한 후 선택된 버전으로 모든 에이전트에 다운로드 혹은 선택된 버전 버튼을 이용하여 롤백을 원하는 서버들만 롤백합니다.

agent rollback 2
Figure 3. 관리 - 에이전트 롤백 2

이후 에이전트 설치할 때 수정했던 스크립트에 WHATA_JAR 설정을 롤백을 원하는 버전으로 바꿔야 합니다.

10.27.00
Figure 4. 관리 - agent-2.0_25으로 롤백

적용된 에이전트는 애플리케이션을 다시 시작하면 자동으로 적용됩니다.

MSA 업무 그룹 구분

Auto Scale Out 환경에서 자동 등록된 에이전트의 IP / Port / Pid 정보만을 가지고 업무 단위의 정보를 인지하기 어려운 경우가 있습니다.

이 경우 okind 속성을 부여하면 쉽게 식별이 가능합니다.

전형적인 Docker 환경의 모습입니다.
  • 각 에이전트는 잘게 쪼개어 놓은 MSA (Micro Service Architecture) 구성 요소입니다.

  • 에이전트들은 자동으로 Scale In/Out 됩니다.

  • 어떤 IP를 가진 서버에서 어떤 pid로 애플리케이션이 시작할지 예측할 수 없습니다.

이 경우 이름과 더불어 업무를 식별할 수 있는 whatap.okind 옵션을 사용해 okind 속성을 추가합니다.

JVM 옵션에 추가할 수 있습니다.

JAVA_OPTS
-Dwhatap.okind=mobile_ui

설정 파일에 추가할 수도 있습니다.

whatap.conf
whatap.okind=common_api
MSA 환경이라면 okind 속성을 추가해야만 와탭이 제공하는 다양한 기능을 활용할 수 있습니다.

Scale In에서 에이전트 자동 삭제

에이전트 이름을 자동 부여하면 Scale Out 시 운영자가 개입할 필요가 없습니다. 시스템을 자동으로 확장합니다.
반면 Auto Scale 환경에서 Scale In이 발생하면 정상적인 Shut down으로 인식돼야 합니다.

자동 삭제를 위해서는 서버에서 에이전트로부터 메시지를 받아야 합니다. 에이전트는 ${WHATAP_HOME}에 Java 프로세스의 whatap_{process id}.shutdown 파일이 나타나면 “SILENT_SHUTDOWN” 이벤트를 서버에 전송합니다. 전송은 5초 이내로 완료됩니다.

SILENT_SHUTDOWN 이벤트가 전송되고 1분 이내에 에이전트가 셧다운 되면 와탭 서버는 목록에서 해당 에이전트를 바로 제거합니다. inactive 이벤트도 발생시키지 않습니다.

Tomcat의 경우 shutdown.sh에 지정할 수 있습니다.

$TOMCAT_HOME/bin/shutdown.sh
touch $WHATAP_HOME/whatap_$CATALINA_PID.shutdown

AES 256 암호화 적용

와탭 APM 에이전트는 수집된 데이터를 암호화하여 서버로 전송합니다.
이를 위해 XOR 연산과 AES 암호화를 사용, 평문을 128비트 단위로 나누어 암복호화를 수행합니다.

보안을 강화해야 하면 256비트까지 확장할 수 있습니다.
기본적으로 JCE는 128비트를 지원합니다. AES 256 비트를 적용하기 위해서는 JCE 업데이트가 필요합니다.

기본 환경에서 AES 256 적용 시 오류
Unsupported keysize or algorithm parameters.
##혹은,
Illegal key size or default parameters.

링크에서 파일을 다운로드한 후 $JAVA_HOME/jre/lib/security에 파일을 덮어씁니다.

jce가 적용되었다면 ${WHATAP_HOME}/whatap.conf 파일에 아래 설정을 추가합니다.

cypher_level=256 설정을 추가합니다.
cypher_level=256

애플리케이션을 다시 시작한 후에 적용됩니다.