본문으로 건너뛰기

에이전트 설치

주의

OpenTelemetry 모니터링은 베타 버전으로 예기치 않은 오류가 발생할 수 있습니다. 중요한 데이터나 운영 환경에서는 사용하는 것을 권장하지 않습니다. 피드백이나 문제점이 발생하면 지원 팀(support@whatap.io)으로 문의하세요.

OpenTelemetry 에이전트 설치 가이드는 OpenTelemetry Collector와 연동하여 애플리케이션, 컨테이너, 클라우드 환경의 모니터링 데이터를 수집하고 전송하는 방법을 설명합니다.
이 문서에서는 OpenTelemetry 에이전트 최신 버전 다운로드, 리눅스 환경 설치, Docker 및 Kubernetes 배포 설정, 그리고 와탭 모니터링 서비스 연동 절차를 단계별로 안내합니다.

에이전트 다운로드​

다음 명령어를 실행해 OpenTelemetry Collector가 설치된 인스턴스에 에이전트를 다운로드하세요.

# 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

에이전트 기본 설정​

에이전트 설정을 위해서는 와탭 프로젝트의 액세스 키와 수집 서버 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
docker-compose.yaml
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 예제입니다.

otelcol-whatap-deploy.yaml
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
otelcol-whatap-deploy.yaml
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를 설정하세요.

otel-collector-config.yaml
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 설치와 관련한 자세한 내용은 다음 링크를 참조하세요.

기타 플랫폼​

Tyk Gateway​

Tyk Gateway의 OpenTelemetry 기능을 활성화한 다음 OpenTelemetry Collecotr를 통해서 트랜잭션 정보를 확인할 수 있습니다.

  1. OpenTelemetry Collector를 Tyk Gateway에 연결합니다.
tyk.conf
{
"log_level": "debug" ,
"listen_port": 8081,

...

"opentelemetry": {
"enabled": true,
"endpoint": "111.222.333.444:4317",
}
}
  1. 연결된 OpenTelemetry Collector에 whatap-otel 에이전트가 연결되면 트레이스 정보를 수집합니다.

Kong Gateway​

Kong Gateway의 내장 OpenTelemetry 플러그인을 설정하면 OpenTelemetry Collector를 통해 트랜잭션 정보를 확인할 수 있습니다.

OpenTelemetry 플러그인에서 OpenTelemetry Collector의 endpoint를 지정합니다. Collector에 Whatap-otel 에이전트가 연결되면 trace 정보가 수집됩니다.

  1. kong.conf

    trace 설정을 활성화 합니다.

    tracing_instrumentations = all
    tracing_sampling_rate = 1
  2. OpenTelemetry 플러그인 설정

    OpenTelemetry Collector의 endpoint URL을 등록합니다.

    Collector의 OTLP receiver 기본 설정은 아래와 같습니다.

    • 기본 설정 예시

      traces_endpoint: http://otelcollector:4318/v1/traces
      logs_endpoint: http://otelcollector:4318/v1/logs
    • kong.yaml 설정 예시

      plugins:
      - name: opentelemetry
      config:
      traces_endpoint: http://otelcollector:4318/v1/traces
      logs_endpoint: http://otelcollector:4318/v1/logs
      resource_attributes:
      service.name: kong-otel

    • Admin API로 플러그인 설정 예시

      curl -X POST http://localhost:8001/services/plugins \
      --header "accept: application/json" \
      --header "Content-Type: application/json" \
      --data '
      {
      "name": "opentelemetry",
      "config": {
      "traces_endpoint": "http://otelcollector:4318/v1/traces",
      "logs_endpoint": "http://otelcollector:4318/v1/logs",
      "resource_attributes": {
      "service.name": "kong-dev"
      }
      }
      }
      '
  • 지원 버전: Kong Gateway 3.3.x 이상
정보

설정에 대한 자세한 내용은 다음 링크를 참조하세요.

모니터링 시작하기​

  • 모든 설정을 완료한 다음 애플리케이션 서버를 다시 시작하면 에이전트가 정보를 수집하기 시작합니다. 대시보드 > 애플리케이션 대시보드 메뉴로 이동해 수집된 데이터를 실시간으로 모니터링하세요.

  • 에이전트 설정에 대한 자세한 내용은 다음 문서를 확인하세요.