반응형

APM 이란.

Application Performance Management의 약자로서 Application 성능을 관리하는 서비스입니다. 
과거 APM은 Apache + PHP + MySQL의 줄임말로 많이 사용되었으나 현재에는 Application 성능을 관리하는 툴(Tool)로 많이 사용하고 있습니다. 

오늘은 APM 솔루션 중 Intermax을 설치 및 설정, 그리고 클라우드 환경에서 Auto-Scale되는 서버에 기등록된 정보와 충돌이 발생하지 않게 설정하는 방법을 공유하고자 합니다. 

APM 설치

Intermax는 datadog과 달리 agent을 설치하는 방식이 아닌 jar 파일을 서버에 업로드해 java의 모듈에서 구동되는 방식으로 설치가 됩니다. intermax jar 파일이 서버에 업로드가 된 상태를 전제로 내용을 시작하도록 하겠습니다. 

java을 통해 Application을 구동하는 방식은 크게 두 가지로 구분됩니다.
첫째, tomcat 혹은 jboss와 같은 미들웨어(M/W)을 사용하는 방식이 있습니다. 이러한 미들웨어는 기본적인 라이브러리를 다양하게 제공하기 때문에 대다수의 기업에서 많이 사용하고 있는 방식입니다.  

둘째, jar 명령어를 통해 Application을 구동하는 방식입니다. 제가 경험한 바로는 Front-End 보다 Back-end애소 많이 사용하는 방석이며, 특히 api 서비스에서 많이 사용하고 있습니다. 

다행히, intermax은 두 방식에서 모두 구동이 가능하며, 설정하는 방법도 동일하기 때문에 큰 어려움 없이 설치할 수 있습니다. 
이제 본격적으로 어떤 설정을 해야하는지 말씀 드리겠습니다. 

JAVA_OPTS="$JAVA_OPT #JSSE_OPTS -Xverify:none -Djspd.wasid=<number> -javaagent:<intermax jar path>"

tomcat 혹은 jboss 의 catalina.sh에 들어가 위 내용을 붙여 놓고 서비스 재기동을 하면 intermax가 정상적으로 구동됩니다. 
(물론!! 서비스가 올라올 때, error가 발생해 java가 제대로 기동되지 않으면 intermax도 기동되지 않습니다.)

[intermax 프로세스 확인]
ps -ef | grep intermax

jar 명령어를 사용해서 Application을 구동하는 방식에서는 아래와 같이 옵션 값을 명령어에 추가해주시면 됩니다. 

-Xverify:none -Djspd.wasid=<number> -javaagent:<intermax jar path>"

Auto Scale 서버에 intermax 설치

위 방법을 통해 intermax 설치가 되었다면 트래픽이 몰리면서 자동으로 확장되는 Auto Scale된 서버에서도 Application 성능 모니터링이 되어야하는 부분에 대해서 고민하게 됩니다. 

위 방식으로 진행하게 되면 Scale Out된 서버는 모니터링 툴에서 정상적으로 보이지 않게 됩니다. 그 이유는 "-Djspd.wasid=<number>" 때문입니다. intermax에서는 서버가 모니터링 툴과 연동될 때, 임의의 id값을 가지고 등록이 됩니다. 그렇기 때문에 동일한 id값이 있으면 정상적으로 연동이 되지 않아 모니터링이 불가능하게 됩니다. 

이 부분을 해결하기 위해서는 위 설정을 조금 변경해야 합니다. 
물론 intermax jar 버전이 Auto Scale되었을 때, 자동으로 동일한 id값이 아닌 값으로 지정되는 패치가 되어 있는 버전이여야 합니다.

답은 매우 간단합니다. "-Djspd.wasid=<number>"의 내용만 삭제하면 됩니다. 

[catalina.sh]
JAVA_OPTS="$JAVA_OPT $JSSE_OPTS -Xverify:none -javaagent:<intermax jar path>"
[jar 명령어]
-Xverify:none -javaagent:</intermax jar path>

제 머리속에 있는 지식을 풀어서 쓰다 보니 글이 장황하게 작성되었지만 핵심은 매우 간단합니다. 

  1. intermax 설치 파일을 서버에 업로드 한다.
  2. java 구동을 위한 설정 파일 혹은 명령어에 아래 내용을 추가한다. 
    • Auto-Scale 없는 서버
      JAVA_OPTS="$JAVA_OPT $JSSE_OPTS -Xverify:none -Djspd.wasid= -javaagent:</intermax jar path>" 혹은 -Xverify:none -Djspd.wasid= -javaagent:</intermax jar path> 명렁어 추가
    • Auto-Scale 되는 서버​ 
      JAVA_OPTS="$JAVA_OPT $JSSE_OPTS -Xverify:none -javaagent:<intermax jar path>"​ 혹은 -Xverify:none -javaagent:<intermax jar path>
  3. Application 재기동​

여기 까지 APM 솔루션 중, intermax 설치 및 설정에 대해 간단하게 정리했습니다. 

내용을 읽어주셔서 감사합니다.
  

 

반응형

'IT기술 > ETC' 카테고리의 다른 글

[ETC][HTTP] Error Code  (0) 2022.05.16

+ Recent posts