본문으로 건너뛰기

OpenAgent 설정

OpenAgent는 Prometheus 엔드포인트에서 메트릭을 수집하여 와탭 서버로 전송하는 에이전트입니다. 에이전트 동작에 필요한 설정은 두 개의 파일로 분리되어 있습니다.

  • whatap.conf: 에이전트의 기본 설정(라이센스, 서버 주소, 로그 레벨 등)

  • scrape_config.yaml: 수집 타겟(Prometheus 엔드포인트) 정의

에이전트는 환경변수를 통해 설정 파일의 위치를 파악하고 로딩합니다. 별도 설정이 없는 경우 에이전트는 현재 실행 디렉터리에서 whatap.conf 파일을 찾습니다. 5초에 한 번씩 whatap.conf 파일의 변경 여부를 체크하고 리로딩하기 때문에, 에이전트를 재시작하지 않고도 대부분의 설정 변경 사항을 적용할 수 있습니다.

사용자의 편의성을 위해 와탭 모니터링 서비스에서도 에이전트 설정 기능을 제공하고 있습니다.

노트

OpenAgent 설치 방법은 OpenAgent 설치 문서를 참고하세요.

기본 설정

whatap.conf

OpenAgent는 최소한 라이센스 키와 서버 주소가 설정돼 있어야 동작합니다.

license=xxxxxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxxxxx
whatap.server.host=10.10.0.1
whatap.server.port=6600

# 로그 레벨: DEBUG(0), INFO(1), WARN(2), ERROR(3)
log_level=INFO
debug=false

OpenAgent는 동일한 설정 값을 여러 키 형식으로 받을 수 있도록 지원합니다. 환경변수와 whatap.conf 어느 쪽에도 설정할 수 있으며, 설정 파일 값이 우선 적용되고 없을 경우 환경변수 값을 사용합니다.

SettingKeyEnvironment VariableDefault
라이센스 키license, WHATAP_LICENSEWHATAP_LICENSE(필수)
서버 호스트whatap.server.host, WHATAP_HOSTWHATAP_HOST, WHATAP_SERVER_HOST(필수)
서버 포트whatap.server.port, WHATAP_PORTWHATAP_PORT, WHATAP_SERVER_PORT6600
에이전트 이름whatap.oname, app_nameWHATAP_ONAME자동 생성

설정 파일 경로

OpenAgent는 다음 환경변수를 사용해 설정 파일 위치와 에이전트 홈 디렉터리를 식별합니다.

  • WHATAP_HOME: whatap.conf 파일이 위치한 디렉터리. 기본값은 현재 디렉터리(.)
  • WHATAP_OPEN_HOME: OpenAgent의 실행 홈 디렉터리(로그 파일 등 저장 위치)

환경변수가 설정되지 않으면 에이전트가 실행 중인 디렉터리를 기준으로 whatap.conf 파일을 찾습니다.

export WHATAP_HOME=/app/whatap
export WHATAP_OPEN_HOME=/app/whatap
./openagent

서버 연결 및 데이터 전송

OpenAgent는 whatap.conf에 설정한 서버 주소로 TCP 세션을 연결합니다.

whatap.server.host=10.10.1.1
whatap.server.port=6600
  • TCP 세션을 연결하면 license를 이용해 서버로부터 통신 키를 전달 받습니다. 잘못된 license를 설정하면 서버는 세션을 종료합니다.
  • TCP 연결이 반복적으로 종료되면 방화벽 문제를 확인하거나 license 값이 올바른지 확인하세요.
  • TCP 세션을 연결하면 서버로부터 받은 비밀키를 기반으로 보안 통신으로 데이터를 전송합니다.
  • 여러 서버 주소를 / 또는 ,로 구분해 나열하면 장애 조치(failover)용으로 사용합니다.
whatap.server.host=10.10.1.1/10.10.1.2

로그 레벨 설정

로그는 log_level 또는 debug 설정으로 제어할 수 있습니다. 두 설정이 모두 있을 경우 log_level이 우선합니다.

log_level=INFO   # DEBUG(0) | INFO(1) | WARN(2) | ERROR(3)
debug=false # true로 설정하면 DEBUG 레벨로 동작

로그 레벨도 whatap.conf 리로딩 대상이므로 에이전트 재시작 없이 변경이 반영됩니다.

스크래핑 타겟 설정 (scrape_config.yaml)

OpenAgent의 핵심 동작인 Prometheus 엔드포인트 수집은 $WHATAP_HOME/scrape_config.yaml 파일로 정의합니다. 아래 3가지 타겟 타입을 지원합니다.

  1. PodMonitor: Pod 레이블 셀렉터를 이용한 동적 디스커버리 (쿠버네티스)
  2. ServiceMonitor: Service 레이블 셀렉터를 이용한 동적 디스커버리 (쿠버네티스)
  3. StaticEndpoints: 고정된 IP 주소와 포트를 직접 입력

scrape_config.yaml 파일은 수정 시 자동으로 변경사항이 감지되며 에이전트 재시작이 불필요합니다.

StaticEndpoints 기본 예제

features:
openAgent:
enabled: true
targets:
- targetName: dcgm-exporter
type: StaticEndpoints
enabled: true
endpoints:
- address: "192.168.49.2:30400"
path: "/metrics"
scheme: "http"
interval: "30s"
metricRelabelConfigs:
- source_labels: [__name__]
regex: "DCGM.*"
action: keep

PodMonitor 예제 (쿠버네티스)

features:
openAgent:
enabled: true
globalInterval: "60s"
globalPath: "/metrics"
targets:
- targetName: my-app-pod-metrics
type: PodMonitor
namespaceSelector:
matchNames: ["production"]
selector:
matchLabels:
app: my-app
endpoints:
- port: "web-metrics"
path: "/metrics"
interval: "15s"
scheme: "http"
timeout: "10s"

StaticEndpoints 설정 요소

OptionDescription
targetName타겟 식별자
type타겟 유형 ("StaticEndpoints")
addressIP:PORT 또는 HOSTNAME:PORT
path메트릭 경로 (기본값: /metrics)
scheme프로토콜 (http 또는 https, 기본값: http)
interval수집 주기 (기본값: 60s)
metricRelabelConfigs메트릭 재라벨링 설정

params 쿼리 파라미터 설정

HTTP 스크래핑 시 URL에 쿼리 파라미터를 추가할 수 있습니다. Azure Monitor Exporter 등 외부 서비스 연동 시 유용합니다.

Azure Monitor 스타일 예제

endpoints:
- address: "192.168.49.2:30400"
path: "/metrics"
scheme: "http"
interval: "30s"
params:
subscription: ["50d91b57-a280-45b5-8d7c-be8005662738"]
resourceGroup: ["WhaTap-Data-KR-MID"]
target: ["/subscriptions/50d91b57-a280-45b5-8d7c-be8005662738/resourceGroups/WhaTap-Data-KR-MID/providers/Microsoft.Sql/managedInstances/openmetrics-instance-01"]
metric: ["avg_cpu_percent,virtual_core_count,memory_usage_percent"]
interval: ["PT1M"]
aggregation: ["average"]

단순 파라미터 예제

params:
format: "prometheus"
version: "v1"
debug: true

메트릭 재라벨링 (metricRelabelConfigs)

프로메테우스의 metric_relabel_configs와 유사한 메트릭 재라벨링 기능을 제공합니다.

항목설명
source_labels소스 레이블 목록(배열)
separator소스 레이블 값 연결 구분자 (기본값: ;)
target_label대상 레이블
regex소스 레이블에 적용할 정규식
replacement대체 값 (정규식 캡처 그룹 참조 가능: ${1})
action수행 작업 (keep, drop, replace)

지원 작업 유형

  • keep: 정규식과 일치하는 메트릭만 유지
  • drop: 정규식과 일치하는 메트릭 제거
  • replace: 대상 레이블의 값을 대체값으로 변경

특수 레이블

  • __name__: 메트릭 이름을 나타내는 특수 레이블

재라벨링 예제

예제 1: 모든 메트릭 수집

metricRelabelConfigs:
- source_labels: [__name__]
regex: ".*"
action: keep

예제 2: 특정 메트릭만 유지

metricRelabelConfigs:
- source_labels: [__name__]
regex: "http_requests_total"
action: keep

결과: http_requests_total 메트릭만 유지되고 나머지는 제거됩니다.

예제 3: 정규식을 사용한 필터링

metricRelabelConfigs:
- source_labels: [__name__]
regex: "node_(cpu|memory).*"
action: keep

결과: node_cpunode_memory로 시작하는 메트릭만 유지됩니다.

예제 4: 레이블 이름 변경

metricRelabelConfigs:
- source_labels: [method]
target_label: http_method
replacement: "${1}"
action: replace

결과: method 레이블의 값을 http_method 레이블로 복사합니다.

예제 5: 여러 소스 레이블 조합

metricRelabelConfigs:
- source_labels: [__name__, status]
regex: "http_requests_total;(200|500)"
action: keep

결과: http_requests_total 메트릭 중 status가 200 또는 500인 메트릭만 유지됩니다.

예제 6: 정적 레이블 추가

metricRelabelConfigs:
- target_label: metric_src
replacement: "whatap-open-agent"
action: replace

결과: 모든 메트릭에 metric_src="whatap-open-agent" 레이블이 추가됩니다.

여러 OpenAgent 인스턴스의 설정 파일 관리

한 서버에서 여러 OpenAgent 인스턴스를 운영해야 할 경우, 각 인스턴스별로 홈 디렉터리를 분리하고 WHATAP_HOME 환경변수를 다르게 지정합니다.

# 인스턴스 A
WHATAP_HOME=/app/whatap/serviceA ./openagent standalone

# 인스턴스 B
WHATAP_HOME=/app/whatap/serviceB ./openagent standalone

각 홈 디렉터리에 별도의 whatap.confscrape_config.yaml을 배치하면 인스턴스별로 독립된 설정을 유지할 수 있습니다.

pprof 프로파일링 엔드포인트

성능 분석이 필요한 경우 pprof HTTP 서버를 통해 런타임 정보를 확인할 수 있습니다.

export PPROF_PORT=6060   # 기본값 6060
./openagent standalone

사용 가능한 엔드포인트는 다음과 같습니다.

  • http://localhost:6060/debug/pprof/profile - CPU 프로파일
  • http://localhost:6060/debug/pprof/heap - Heap 프로파일
  • http://localhost:6060/debug/pprof/goroutine - Goroutine 프로파일

서비스 화면에서 에이전트 설정하기

관리 > 에이전트 설정

모니터링 대상 서버에 위치한 whatap.conf 파일을 직접 수정하지 않고 와탭 모니터링 서비스에서 에이전트 설정 옵션을 추가하거나 수정, 삭제할 수 있습니다. 또한 설정 파일 다운로드 버튼을 클릭해 whatap.conf 파일을 다운로드할 수 있습니다.

  • 이 기능은 수정 권한을 가진 멤버만 이용할 수 있습니다. 수정 권한이 없는 멤버는 설정 내용을 조회만 할 수 있습니다.
  • 옵션값으로 설정할 수 있는 형식은 다음과 같습니다.
    • Boolean 형식의 값은 true 또는 false를 선택하세요.
    • 숫자 형식의 값은 숫자만 입력할 수 있습니다.
    • 텍스트(String) 형식의 값을 입력 또는 수정할 경우 옵션 설명을 자세히 확인하세요.

추가 또는 수정, 삭제한 옵션에 따라 에이전트를 재시작해야 할 수 있습니다. OpenAgent의 경우 대부분의 whatap.conf 값은 5초 이내 자동 리로딩됩니다.

옵션 추가하기

openagent 옵션 추가

  1. 에이전트 목록에서 옵션을 추가하려는 에이전트를 선택하세요.

  2. 옵션 작성에서 추가할 옵션 항목을 선택하세요.

    • 검색에서 추가할 옵션을 찾을 수 있습니다. 텍스트를 입력하면 일치하는 옵션을 필터링합니다.

    • 직접 입력을 선택하면 옵션 키와 값을 입력할 수 있습니다.

  3. 선택한 옵션 키에 대한 설명과 기본값을 확인한 다음 설정값을 입력하세요.

  4. 원하는 모든 옵션을 추가했으면 화면 오른쪽 위에 적용 버튼을 선택하세요.

주의

옵션값으로 아무것도 입력하지 않은 상태에서 적용 버튼을 선택하면 해당 옵션을 삭제합니다. 이미 추가한 옵션은 옵션 목록에서 선택할 수 없습니다. 애플리케이션 종류 및 에이전트 버전에 따라 적용할 수 있는 옵션 키는 다를 수 있습니다.

옵션 수정 또는 삭제하기

openagent 옵션 수정 또는 삭제

  1. 화면을 위/아래로 스크롤하거나 옵션 목록에서 수정 또는 삭제하려는 옵션을 선택하세요.

  2. 변경하려는 옵션에서 원하는 값을 선택하거나 수정하세요. 옵션을 삭제하려면 삭제 아이콘 버튼을 선택하세요.

  3. 변경한 사항을 적용하려면 적용 버튼을 선택하세요.

여러 에이전트에 동시 적용하기

프로젝트에 소속된 여러 개의 OpenAgent에 변경한 옵션을 동시에 적용할 수 있습니다.

  1. 화면 오른쪽 위에 다중 에이전트 적용 체크박스를 선택하면 각 옵션 항목에 체크박스가 생성됩니다.

  2. 동시에 적용하길 원하는 옵션의 체크박스를 선택하세요.

  3. 화면 오른쪽 위에 적용 버튼을 선택하세요.

  4. 에이전트 적용 창이 나타나면 변경한 옵션을 적용할 에이전트를 선택한 뒤 적용 버튼을 선택하세요.

에이전트 설정 옵션 안내

OpenAgent에서 사용할 수 있는 주요 whatap.conf 옵션은 다음과 같습니다.

OptionTypeDefaultDescription
license / WHATAP_LICENSEstring(필수)와탭 프로젝트 라이센스 키
whatap.server.host / WHATAP_HOSTstring(필수)와탭 수집 서버 주소. / 또는 ,로 여러 개 지정 가능
whatap.server.port / WHATAP_PORTinteger6600와탭 수집 서버 포트
whatap.oname / WHATAP_ONAMEstring자동 생성에이전트의 오브젝트 이름
app_namestring-whatap.oname 미설정 시 대체로 사용
debugbooleanfalse디버그 로그 활성화
log_levelstring / integerINFO로그 레벨 (DEBUG / INFO / WARN / ERROR 또는 0~3)
tag_counter_enabledbooleanfalseOpenMetrics 프로젝트를 별도 제품으로 사용할 때 활성화
scrape_intervalstring60s스크래핑 전역 기본 주기 (scrape_config.yaml의 globalInterval과 별개의 하위 호환 키)
scrape_timeoutstring-스크래핑 전역 기본 타임아웃

tag_counter_enabled 옵션은 OpenMetrics 프로젝트가 다른 와탭 제품과 연동되지 않고 별도 제품으로 운영되는 경우에만 true로 설정하세요. 기본 구성에서는 사용하지 않습니다.

노트

애플리케이션 종류 및 에이전트의 버전에 따라 적용할 수 있는 옵션 키는 다를 수 있습니다. 수집 타겟 설정과 관련된 옵션은 위의 스크래핑 타겟 설정 섹션을 참고하세요.