본문으로 건너뛰기

Docker 환경 설치

Docker 컨테이너 기반으로 실행하는 Go 애플리케이션에 와탭 모니터링 에이전트를 적용하고 컨테이너 이미지를 패키징하는 과정을 다음과 같이 안내합니다.

에이전트 다운로드

Go 애플리케이션 도커 이미지 빌드 시 whatap-agent 패키지를 설치하세요.

x64
RUN wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/x86_64/whatap-agent.tar.gz
RUN tar -xvzf whatap-agent.tar.gz -C /

에이전트 설정

사용자 애플리케이션 실행 경로에 와탭의 액세스 키, 서버 IP 주소 정보를 입력한 whatap.conf 파일을 생성하세요. 특정 경로를 사용할 경우 WHATAP_HOME 환경변수로 설정할 수 있습니다.

whatap.conf
RUN echo "accesskey={액세스 키}" >> whatap.conf
RUN echo "whatap.server.host={수집 서버 IP 주소}" >> whatap.conf
노트

액세스 키가 Docker Public 상태의 이미지에 노출되지 않도록 주의하세요.

WHATAP_HOME 환경변수 설정하기

whatap.conf 파일 경로를 WHATAP_HOME 환경변수로 설정할 수 있습니다. WHATAP_HOME 경로를 우선 생성하세요. 애플리케이션 실행 문구 앞에 WHATAP_HOME 설정을 추가합니다.

mkdir ./whatap_home
echo "license={액세스 키}" >> ./whatap_home/whatap.conf
echo "whatap.server.host={수집 서버 IP 주소}" >> ./whatap_home/whatap.conf

# run application
WHATAP_HOME=./whatap_home ./app

Go 라이브러리 설정하기

Go 애플리케이션 소스 코드에 github.com/whatap/go-api 패키지를 추가하세요.

go get github.com/whatap/go-api

trace.Init(), trace.Shutdown() 함수로 초기화 및 종료를 설정하세요. trace.Start(), trace.End() 함수로 트랜잭션의 시작 종료를 설정하세요.

Go
import "github.com/whatap/go-api/trace"

func main(){
trace.Init(nil)
//It must be executed before closing the app.
defer trace.Shutdown()

ctx, _ := trace.Start(context.Background(), "Start Tx")

...

trace.End(ctx, err)
}
노트

라이브러리 설정에 대한 자세한 내용은 다음 문서를 참조하세요.

컨테이너 환경변수 설정

Docker 빌드 후 쿠버네티스 환경 내 컨테이너 환경변수를 설정하세요. 애플리케이션 배포 yaml 파일에 다음 내용을 추가하세요.

env:
- name: NODE_IP
valueFrom: {fieldRef: {fieldPath: status.hostIP}}
- name: NODE_NAME
valueFrom: {fieldRef: {fieldPath: spec.nodeName}}
- name: POD_NAME
valueFrom: {fieldRef: {fieldPath: metadata.name}}

다음 예시를 참조하세요.

apiVersion: v1
kind: Pod
metadata:
name: # Pod Name
labels: # Pod Labels
spec:
containers:
env:
- name: NODE_IP
valueFrom: {fieldRef: {fieldPath: status.hostIP}}
- name: NODE_NAME
valueFrom: {fieldRef: {fieldPath: spec.nodeName}}
- name: POD_NAME
valueFrom: {fieldRef: {fieldPath: metadata.name}}
노트

환경변수 역할

  • NODE_IP: 현재 파드가 호스팅된 노드(Node)의 IP 주소를 수집합니다.

  • NODE_NAME: 현재 파드가 실행 중인 노드의 이름을 수집합니다.

  • POD_NAME: 현재 파드의 이름을 수집합니다.

에이전트 실행

애플리케이션 시작 명령어 앞에 추가로 whatap-agent 시작 명령어를 추가하세요.

sh -c "/usr/whatap/agent/whatap-agent start && [애플리케이션 시작 명령어]"

다음 명령어를 실행해 와탭 서비스가 정상 실행되었는지 확인하세요. 애플리케이션 서버가 실행되면 에이전트가 모니터링 정보를 수집하기 시작합니다.

ps -ef | grep whatap_agent

에이전트 설치 확인

에이전트를 제대로 설치했는지 확인하려면 대시보드 > 애플리케이션 서비스 대시보드 메뉴로 이동하세요.

다운로드한 파일을 직접 설치한 다음, 대시보드 메뉴에서 에이전트를 확인할 수 없다면 다음 사항을 확인하세요.

  • 컨테이너에서 ps -ef | grep whatap_agent 명령어를 실행해 에이전트 옵션을 적용했는지 확인하세요.

  • 컨테이너의 WHATAP_HOME/logs 또는 애플리케이션 실행 경로의 logs 디렉터리를 확인하세요. 에이전트 로그는 logs/whatap-{boot or install}-yyyymmdd.log 형식의 파일명으로 출력됩니다.