설치

와탭 Golang 애플리케이션 모니터링은 Golang 애플리케이션에 대한 모니터링 서비스를 제공합니다.

에이전트 설치 방식 개요

Golang 라이브러리

Golang 애플리케이션 소스코드에 whatap/go-api 를 추가하고 배포합니다.

go get -u github.com/whatap/go-api
import "github.com/whatap/go-api/trace"


func main(){

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

    ...

}

에이전트 설치

대상 애플리케이션에서 UDP 통신으로 데이터를 전달하고, 와탭 수집서버로 데이터를 전송하기 위해서는 같은 서버에 에이전트를 설치해야 합니다.
설치 방식은 패키지 설치로 가능합니다.

  • 와탭 저장소(Repository)를 설치합니다.

  • whatap-agent 리눅스 패키지를(yum, apt-get) 설치합니다.

에이전트는 whatap-agent 서비스(Service)로 실행됩니다.

golang system

RedHat/CentOS

패키지 저장소(Repository) 등록

와탭 저장소(Repository)를 등록합니다.

$ sudo rpm -Uvh http://repo.whatap.io/centos/5/noarch/whatap-repo-1.0-1.noarch.rpm

패키지 설치

아래 명령어를 통해 패키지를 설치합니다.

$ sudo yum install whatap-agent

Debian/Ubuntu

패키지 저장소(Repository) 등록

와탭 저장소(Repository)를 등록합니다.

$ wget http://repo.whatap.io/debian/release.gpg -O -|sudo apt-key add -
$ wget http://repo.whatap.io/debian/whatap-repo_1.0_all.deb
$ sudo dpkg -i whatap-repo_1.0_all.deb
$ sudo apt-get update

패키지 설치

$ sudo apt-get install whatap-agent

Amazon Linux

패키지 저장소(Repository) 등록

와탭 저장소(Repository)를 등록합니다.

$ sudo rpm --import http://repo.whatap.io/centos/release.gpg
$ echo "[whatap]" | sudo tee /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "name=whatap packages for enterprise linux" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "baseurl=http://repo.whatap.io/centos/latest/\$basearch" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "enabled=1" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null

패키지 설치

$ sudo yum install whatap-agent

Alpine Linux

whatap-agent.tar.gz을 다운받고 / 디렉토리 기준으로 압축을 해제합니다.
/usr/whatap/agent 디렉토리에 모니터링 설치 파일이 생성됩니다.

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

whatap-agent 실행

/usr/whatap/agent/whatap-agent
    Default restart
    Command start, stop, restart, version


## 버전 확인
# /usr/whatap/agent/whatap-agent version
0.8.5.20201209


## 실행 확인
# ps -elf | grep whatap
  103 root      0:05 ./whatap_agent_static -t=4

Dockerfile

whatap-agent.tar.gz 을 /usr/whatap/agent 디렉토리에 압축을 해제합니다. install.sh 스크립트를 통해서 설치합니다.

FROM alpine

RUN apk update && apk upgrade

# Install WhaTap Golang monitoring agent
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 /

Docker의 entrypoint에 whatap-agent 실행 명령어를 추가하여 container 실행 후에 whatap-agent 데몬이 시작될 수 있도록 설정합니다.

/usr/whatap/php/whatap-agent start

엑세스키 및 수집서버 설정

/usr/whatap/agent 이하에 whatap.conf 파일에 엑세스키와 수집서버 정보를 설정합니다.

$ echo "accesskey=[엑세스키]" >> /usr/whatap/agent/whatap.conf
$ echo "whatap.server.host=[수집서버 주소]" >> /usr/whatap/agent/whatap.conf
$ echo "app_name=[애플리케이션 이름]" >> /usr/whatap/agent/whatap.conf
$ echo "app_process_name=[애플리케이션 프로세스 이름]" >> /usr/whatap/agent/whatap.conf
accesskey

프로젝트의 엑세스 키입니다.

whatap.server.host

와탭 수집서버 주소 입니다.

app_name

애플리케이션 이름입니다. 문자열로 사용자 지정합니다.

app_process_name

모니터링 대상 애플리케이션의 프로세스 이름입니다. 지정된 프로세스 이름으로 메모리 사용량을 측정합니다.

whatap-agent 서비스 재시작

whatap-agent 서비스(Service)가 실행 중이지 않거나 오류가 발생한 경우 재시작합니다.

Redhat/CentOS

$ service whatap-agent restart

Debian/Ubuntu

$ sudo service whatap-agent restart

Amazon Linux

$ sudo service whatap-agent restart

Alpine Linux

$ /usr/whatap/agent/whatap-agent stop
$ /usr/whatap/agent/whatap-agent start

일시 중지

whatap-agent 서비스(Service) 중지

Redhat/CentOS

$ sudo service whatap-agent stop

Debian/Ubuntu

$ sudo service whatap-agent stop

Amazon Linux

$ sudo service whatap-agent stop

Alpine Linux

$ /usr/whatap/agent/whatap-agent stop

에이전트 삭제

Golang 애플리케이션의 소스코드에서 Whatap 라이브러리를 삭제합니다.

패키지 삭제

Redhat/CentOS

$ sudo yum remove whatap-agent

Debian/Ubuntu

$ sudo apt-get purge whatap-agent

Amazon Linux

$ sudo yum remove whatap-agent

Alpine Linux

$ /usr/whatap/agent/whatap-agent stop

/usr/whatap/agent 디렉토리 삭제

$ sudo rm -r /usr/whatap/agent