본문으로 건너뛰기

Docker 환경 설치

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

노트

EKS Fargate는 지원 예정입니다.

에이전트 다운로드

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

Red Hat/CentOS
RUN rpm -Uvh https://repo.whatap.io/centos/5/noarch/whatap-repo-1.0-1.noarch.rpm
RUN yum install -y whatap-agent

에이전트 설정

사용자 애플리케이션 실행 경로에 와탭의 액세스 키, 서버 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 형식의 파일명으로 출력됩니다.