콘텐츠로 이동

Spring Boot 프로젝트 외장 Tomcat 시나리오 분산 추적 관측 가능성


개요

기업마다 Java 생태계를 사용하여 자체 엔터프라이즈 프레임워크를 구축할 때 사용하는 기술 스택이 다를 수 있습니다. 예를 들어 마이크로서비스 프레임워크의 경우, 일부 기업은 Spring Boot + Spring Cloud를 사용하고, 다른 기업은 Spring Boot + Dubbo를 사용합니다.
Guance는 다양한 APM 도구를 지원하며, 마이크로서비스 분산 추적을 Guance에 연결할 수 있으므로 필요에 따라 적합한 APM 도구를 선택할 수 있습니다.

일반적으로 구축된 마이크로서비스는 Jar 방식으로 실행됩니다. 이 문서에서는 이러한 마이크로서비스를 war 패키지로 빌드하여 Tomcat에 배포하고, 분산 추적 데이터를 Guance에 연결하는 방법을 중점적으로 설명합니다. 기존 war 패키지 프로젝트의 경우에도 연결 방식은 동일합니다.

SkyWalking 시나리오

전제 조건

  • 클라우드 호스트(Centos 7.9)
  • JDK 설치
  • Zookeeper 설치
  • Guance 계정
  • Tomcat 2개 배포, 배포 경로 /usr/local/df-demo/tomcat8080/usr/local/df-demo/tomcat8081
  • 클라우드 호스트에 <DataKit 설치> 완료

작업 단계

Warning

현재 예제는 DataKit 버전 1.4.9, Spring Cloud 3.1.1, Spring Boot 2.6.6, Dubbo 2.7.15, Zookeeper 3.7.1, JDK 1.8, Tomcat 9.0.48을 사용하여 테스트했습니다

1 DataKit 설정

1.1 http_api 수정(선택 사항)

/usr/local/datakit/conf.d/datakit.conf 파일을 편집하여 http_api의 listen 값을 0.0.0.0:9529로 설정합니다. 이렇게 하면 다른 호스트에서 이 호스트의 9529 포트에 정상적으로 액세스할 수 있습니다.
다른 호스트에서 DataKit에 액세스할 필요가 없는 경우에는 수정하지 않아도 됩니다.

image

1.2 SkyWalking 수집기 활성화

호스트에 로그인하여 sample 파일을 복사하고 skywalking 수집기를 활성화합니다.

cd /usr/local/datakit/conf.d/skywalking
cp skywalking.conf.sample skywalking.conf

DataKit을 재시작합니다.

systemctl restart datakit

2 APM 연결

2.1 SkyWalking 다운로드

apache-skywalking-java-agent-8.11.0을 다운로드하고 압축을 푼 후 파일 이름을 agent로 변경하여 호스트의 /usr/local/df-demo/tomcat8080/usr/local/df-demo/tomcat8081 디렉토리에 업로드합니다.

2.2 Tomcat 설정

/usr/local/df-demo/tomcat8080/bin/catalina.sh 파일을 수정하고 다음 내용을 추가합니다.

export  CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/df-demo/tomcat8080/agent/skywalking-agent.jar  -Dskywalking.agent.service_name=tomcat-customer  -Dskywalking.collector.backend_service=localhost:11800"

image

파라미터 설명:

  • -Dskywalking.agent.service_name: 서비스 이름
  • -Dskywalking.collector.backend_service: 분산 추적 보고를 위한 DataKit 주소 + Skywalking 수집기 포트

/usr/local/df-demo/tomcat8081/bin/catalina.sh 파일을 수정하고 다음 내용을 추가합니다.

export  CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/df-demo/tomcat8081/agent/skywalking-agent.jar  -Dskywalking.agent.service_name=tomcat-provider  -Dskywalking.collector.backend_service=localhost:11800"

Tomcat을 시작합니다.

 cd /usr/local/df-demo/tomcat8080/bin
 ./startup.sh
 cd /usr/local/df-demo/tomcat8081/bin
 ./startup.sh
2.3 프로젝트 배포

war 패키지 다운로드하여 skywalking 디렉토리에서 consumer.warprovider.war를 가져옵니다.

  • provider.war/usr/local/df-demo/tomcat8081/webapps 디렉토리에 배치합니다.
  • consumer.war/usr/local/df-demo/tomcat8080/webapps 디렉토리에 배치합니다.

3 분산 추적 관측 가능성

브라우저에서 http://192.168.0.100:8080/consumer/ping에 액세스합니다. 여기서 IP는 호스트 주소입니다.
Guance」-「애플리케이션 성능 모니터링(APM)」에 로그인하면 tomcat-customertomcat-provider 서비스를 확인할 수 있습니다.
분산 추적을 클릭하면 플레임 그래프, 스팬 목록, 호출 관계 등을 볼 수 있습니다.

image

image

문서 평가

이 페이지가 도움이 되었나요?