에이전트 설치
OpenTelemetry 모니터링은 베타 버전으로 예기치 않은 오류가 발생할 수 있습니다. 중요한 데이터나 운영 환경에서는 사용하는 것을 권장하지 않습니다. 피드백이나 문제점이 발생하면 지원 팀(support@whatap.io)으로 문의하세요.
OpenTelemetry 에이전트 설치 가이드는 OpenTelemetry Collector와 연동하여
애플리케이션, 컨테이너, 클라우드 환경의 모니터링 데이터를 수집하고 전송하는 방법을 설명합니다.
이 문서에서는 OpenTelemetry 에이전트 최신 버전 다운로드, 리눅스 환경 설치, Docker 및 Kubernetes 배포 설정,
그리고 와탭 모니터링 서비스 연동 절차를 단계별로 안내합니다.
에이전트 다운로드
다음 명령어를 실행해 OpenTelemetry Collector가 설치된 인스턴스에 에이전트를 다운로드하세요.
- Red Hat/Centos
- Debian/Ubuntu
- Amazon Linux
- Alpine Linux
- Alpine Linux Docker
# Register package repository
$ sudo rpm -Uvh https://repo.whatap.io/centos/5/noarch/whatap-repo-1.0-1.noarch.rpm
# Install package
$ sudo yum install whatap-otel
# Register package repository
$ wget https://repo.whatap.io/debian/release.gpg -O -|sudo apt-key add -
$ wget https://repo.whatap.io/debian/whatap-repo_1.0_all.deb
$ sudo dpkg -i whatap-repo_1.0_all.deb
$ sudo apt-get update
# Install package
$ sudo apt-get install whatap-otel
# Register package repository
$ sudo rpm --import https://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=https://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
# Install package
$ sudo yum install whatap-otel
$ wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/x86_64/whatap-otel.tar.gz
$ tar -xvzf whatap-otel.tar.gz -C /
FROM alpine
RUN apk update && apk upgrade
# Install WhaTap Go monitoring agent
RUN wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/x86_64/whatap-otel.tar.gz
RUN tar -xvzf whatap-otel.tar.gz -C /
에이전트 기본 설정
에이전트 설정을 위해서는 와탭 프로젝트의 액세스 키와 수집 서버 IP 주소가 필요합니다. 와탭 모니터링 서비스에서 애플리케이션(Application) 제품의 프로젝트로 이동하세요. 관리 > 에이전트 설치 메뉴에서 액세스 키와 수집 서버 IP 주소를 확인하고 준비하세요.
whatap.conf 파일 설정하기
에이전트 설정(whatap.conf) 파일에 액세스 키와 수집 서버 IP 주소를 설정하세요.
echo "accesskey={ACCESS_KEY}" >> /usr/whatap/otel/whatap.conf
echo "whatap.server.host={COLLECTOR_SERVER_IP_ADDRESS}" >> /usr/whatap/otel/whatap.conf
환경 변수로 설정하기
환경 변수(Environment)로 액세스 키와 수집 서버 IP 주소를 설정할 수 있습니다.
WHATAP_ACCESSKEY={ACCESS_KEY}
WHATAP_SERVER_HOST={COLLECTOR_SERVER_IP_ADDRESS}
WHATAP_OTEL_GRPC_SERVER_PORT={gRPC_SERVER_LISTENING_PORT}
환경 변수와 whatap.conf 파일을 모두 설정한 경우, whatap.conf 파일의 설정값이 우선합니다.
Docker 설치
Opentelemetry Collector가 설치되어 있다면, Docker container로 whatap-otel을 실행하여 Collector의 데이터를 GRPC 6600 포트로 전달받을 수 있습니다.
docker pull whatap/whatap-otel
version: '3.7'
services:
whatap_otel:
image: whatap/whatap-otel:latest
environment:
WHATAP_ACCESSKEY: x605111111111-z11111111-x1111111111m
WHATAP_SERVER_HOST: 1.1.1.1/2.2.2.2
WHATAP_OTEL_GRPC_SERVER_PORT: 6600
otel_metric_server_enabled: true
otel_log_server_enabled: true
log_stdout_enabled: true
#debug_otel_grpc_server_enabled: true
ports:
- 6600:6600
Kubernates 설치
Opentelemetry Collector와 whatap-otel을 하나의 POD 안에 같이 생성하는 deployment 예제입니다.
metadata:
name: otel-collector-deploy
spec:
replicas: 1
selector:
matchLabels:
app: otel-collector
template:
metadata:
name: otel-collector-pod
labels:
app: otel-collector
spec:
containers:
- name: otel-collector
image: otel/opentelemetry-collector-contrib:0.106.0
ports:
- containerPort: 4317 # OTLP gRPC
- containerPort: 4318 # OTLP HTTP
volumeMounts:
- name: config-volume-otelcol
mountPath: /etc/otel/config.yaml
subPath: otel-collector-config.yaml
args: ["--config", "/etc/otel/config.yaml"]
- name: whatap-otel-agent
image: whatap/whatap-otel:latest
ports:
- containerPort: 6600
env:
- name: "WHATAP_ACCESSKEY"
value: "x605111111111-z11111111-x1111111111m"
- name: "WHATAP_SERVER_HOST"
value: "1.1.1.1/2.2.2.2"
- name: "otel_metric_server_enabled"
value: "true"
- name: "otel_log_server_enabled"
value: "true"
- name: "log_stdout_enabled"
value: "true"
- name: NODE_IP
valueFrom: {fieldRef: {fieldPath: status.hostIP}}
- name: NODE_NAME
valueFrom: {fieldRef: {fieldPath: spec.nodeName}}
- name: POD_NAME
valueFrom: {fieldRef: {fieldPath: metadata.name}}
- name: whatap.micro.enabled
value: "true"
volumes:
- name: config-volume-otelcol
configMap:
name: otelcol-config
apiVersion: v1
kind: ConfigMap
metadata:
name: otelcol-config
data:
otel-collector-config.yaml: |
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
otlp:
endpoint: "127.0.0.1:6600"
tls:
insecure: true
logging:
loglevel: debug
processors:
batch:
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp, logging]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlp, logging]
logs:
receivers: [otlp]
processors: [batch]
exporters: [otlp, logging]
Opentelemetry Collector 설정
whatap-otel로 데이터를 전달하도록 OTLP Exporter를 설정하세요.
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
processors:
batch:
exporters:
logging:
# otlp exporter에 whatap-otel을 대상으로 설정합니다.
otlp:
endpoint: 127.0.0.1:6600
tls:
insecure: true
service:
pipelines:
traces:
receivers:
- otlp
processors:
- batch
exporters:
- logging
- otlp
telemetry:
logs:
level: debug #activate debug mode
-
엔드포인트(
endpoint) 설정:127.0.0.1:6600로컬에 설치한 에이전트가 사용하는 기본 포트는 6600입니다.
-
tls.secure설정:insecure: true -
gzip 압축 설정을 기본 사용합니다. (gzip 사용)
OpenTelemetry Collector 설치와 관련한 자세한 내용은 다음 링크를 참조하세요.