콘텐츠로 이동
  • '데이터베이스'
  • 'PROMETHEUS' dashboard:
  • desc: 'CouchBase Exporter 내장 뷰' path: 'dashboard/ko/couchbase_prom'

monitor: - desc: 'CouchBase 모니터' path: 'monitor/ko/couchbase_prom'


CouchBase

수집기는 CouchBase 인스턴스에서 메모리와 디스크 사용량, 현재 연결 수 등 다양한 지표를 수집하여 Guance으로 전송하고, CouchBase의 다양한 이상 상황을 모니터링하고 분석하는 데 도움을 줍니다.

수집기 설정

사전 조건

버전 정보

CouchBase 버전:7.2.0 CouchBase Exporter 버전:blakelead/couchbase-exporter:latest

CouchBase Exporter 설치

CouchBase용 클라이언트 수집기인 CouchBase Exporter를 사용하며, 수집기 문서는 여기를 참고합니다.

참고: 본문에서 사용하는 사용자 비밀번호는 CouchBase Server의 사용자 비밀번호입니다

docker run -d  --name cbexporter                      --publish 9191:9191                      --env EXPORTER_LISTEN_ADDR=:9191                      --env EXPORTER_TELEMETRY_PATH=/metrics                      --env EXPORTER_SERVER_TIMEOUT=10s                      --env EXPORTER_LOG_LEVEL=debug                      --env EXPORTER_LOG_FORMAT=json                      --env EXPORTER_DB_URI=http://172.17.0.92:8091                      --env EXPORTER_DB_TIMEOUT=10s                      --env EXPORTER_DB_USER=Administrator                      --env EXPORTER_DB_PASSWORD=pwd1234                      --env EXPORTER_SCRAPE_CLUSTER=true                      --env EXPORTER_SCRAPE_NODE=true                      --env EXPORTER_SCRAPE_BUCKET=true                      --env EXPORTER_SCRAPE_XDCR=false                      blakelead/couchbase-exporter:latest

매개변수 소개:

|                            |                     |                                                    |                                                 |
| -------------------------- | ------------------- | -------------------------------------------------- | ----------------------------------------------- |
| 환경 변수                   | 인자                | 설명                                               | 기본값                                          |
|                            | -config.file        | 데이터를 로드할 구성 파일                           |                                                 |
| EXPORTER_LISTEN_ADDR       | -web.listen-address | HTTP 요청을 수신할 주소                             | :9191                                           |
| EXPORTER_TELEMETRY_PATH    | -web.telemetry-path | 메트릭을 노출할 경로                               | /metrics                                        |
| EXPORTER_SERVER_TIMEOUT    | -web.timeout        | 서버 읽기 타임아웃(초)                              | 10s                                             |
| EXPORTER_DB_URI            | -db.uri             | CouchBase 클러스터 주소                            | [http://127.0.0.1:8091](http://127.0.0.1:8091/) |
| EXPORTER_DB_TIMEOUT        | -db.timeout         | CouchBase 클라이언트 타임아웃(초)                  | 10s                                             |
| EXPORTER_TLS_ENABLED       | -tls.enabled        | true이면 클러스터와의 TLS 통신을 활성화             | false                                           |
| EXPORTER_TLS_SKIP_INSECURE | -tls.skip-insecure  | true이면 인증서를 검증하지 않음                     | false                                           |
| EXPORTER_TLS_CA_CERT       | -tls.ca-cert        | 클러스터 루트 인증서                                |                                                 |
| EXPORTER_TLS_CLIENT_CERT   | -tls.client-cert    | 클라이언트 인증서                                   |                                                 |
| EXPORTER_TLS_CLIENT_KEY    | -tls.client-key     | 클라이언트 개인 키                                  |                                                 |
| EXPORTER_DB_USER           | *not allowed*       | 관리자 사용자 이름                                  |                                                 |
| EXPORTER_DB_PASSWORD       | *not allowed*       | 관리자 비밀번호                                     |                                                 |
| EXPORTER_LOG_LEVEL         | -log.level          | 로그 수준: info,debug,warn,error,fatal              | error                                           |
| EXPORTER_LOG_FORMAT        | -log.format         | 로그 형식: text, `json`                             | text                                            |
| EXPORTER_SCRAPE_CLUSTER    | -scrape.cluster     | false이면 클러스터 메트릭을 수집하지 않음          | true                                            |
| EXPORTER_SCRAPE_NODE       | -scrape.node        | false이면 노드 메트릭을 수집하지 않음               | true                                            |
| EXPORTER_SCRAPE_BUCKET     | -scrape.bucket      | false이면 버킷 메트릭을 수집하지 않음               | true                                            |
| EXPORTER_SCRAPE_XDCR       | -scrape.xdcr        | false이면 `xdcr` 메트릭을 수집하지 않음             | false                                           |
|                            | -help               | 명령행 도움말                                       |                                                 |

설정 적용

  • DataKit Prom 플러그인을 활성화하고 sample 파일을 복사합니다
/usr/local/datakit/conf.d/prom
cp prom.conf.sample couchbase-prom.conf
  • couchbase-prom.conf 설정 파일을 수정합니다
[[inputs.prom]]
## Exporter URLs
urls = [""]

## url 요청 오류 무시
ignore_req_err = false

## 수집기 별칭
source = "zookeeper"

## 수집 데이터 출력 소스
# 이 항목을 설정하면 수집한 데이터를 중앙으로 보내지 않고 로컬 파일에 기록할 수 있습니다
# 이후 `datakit --prom-conf /path/to/this/conf` 명령으로 로컬에 저장된 메트릭 집합을 바로 디버깅할 수 있습니다
# 이미 url을 로컬 파일 경로로 설정했다면 `--prom-conf`는 output 경로의 데이터를 우선 디버깅합니다
> 
## 수집 데이터 최대 크기, 단위는 바이트
# 데이터를 로컬 파일로 출력할 때 수집 데이터 최대 크기를 설정할 수 있습니다
# 수집 데이터 크기가 이 한도를 초과하면 수집된 데이터는 버려집니다
# 수집 데이터 최대 크기의 기본값은 32MB입니다
# max_file_size = 0

## 메트릭 유형 필터, 선택값은 counter, gauge, histogram, summary입니다
# 기본적으로 counter와 gauge 유형의 메트릭만 수집합니다
# 비어 있으면 필터링하지 않습니다
metric_types = ["counter", "gauge"]

## 메트릭 이름 필터
# 정규식을 지원하며 여러 개를 설정할 수 있고, 그중 하나만 만족해도 됩니다
# 비어 있으면 필터링하지 않습니다
# metric_name_filter = ["cpu"]

## 메트릭 집합 이름 접두사
# 이 항목을 설정하면 메트릭 집합 이름에 접두사를 추가할 수 있습니다
measurement_prefix = ""

## 메트릭 집합 이름
# 기본적으로 메트릭 이름을 밑줄 "_" 기준으로 분리하고, 분리 후 첫 번째 필드를 메트릭 집합 이름으로, 나머지 필드를 현재 메트릭 이름으로 사용합니다
# measurement_name을 설정하면 메트릭 이름을 분리하지 않습니다
# 최종 메트릭 집합 이름에는 measurement_prefix 접두사가 추가됩니다
# measurement_name = "prom"

## 수집 간격 "ns", "us" (or "µs"), "ms", "s", "m", "h"
interval = "10s"

## tags 필터링, 여러 tag를 설정할 수 있습니다
# 일치하는 tag는 무시됩니다
# tags_ignore = ["xxxx"]

## TLS 설정
tls_open = false
# tls_ca = "/tmp/ca.crt"
# tls_cert = "/tmp/peer.crt"
# tls_key = "/tmp/peer.key"

## 사용자 정의 인증 방식, 현재는 Bearer Token만 지원합니다
# token과 token_file: 둘 중 하나만 설정하면 됩니다
# [inputs.prom.auth]
# type = "bearer_token"
# token = "xxxxxxxx"
# token_file = "/tmp/token"

## 사용자 정의 메트릭 집합 이름
# prefix를 포함한 메트릭을 하나의 메트릭 집합으로 묶을 수 있습니다
# 사용자 정의 메트릭 집합 이름 설정은 measurement_name 설정 항목보다 우선합니다
#[[inputs.prom.measurements]]
#  prefix = "cpu_"
#  name = "cpu"

# [[inputs.prom.measurements]]
# prefix = "mem_"
# name = "mem"

## 사용자 정의 Tags
[inputs.prom.tags]
#some_tag = "some_value"
# more_tag = "some_other_value"
  • DataKit 재시작
systemctl restart datakit

현재는 ConfigMap 방식으로 수집기 설정을 주입하여 수집기를 활성화할 수 있습니다.

메트릭

아래의 모든 데이터 수집에는 기본적으로 host라는 전역 tag(tag 값은 DataKit가 설치된 호스트 이름)가 추가되며, 설정에서 [inputs.prom.tags]를 통해 다른 태그를 지정할 수도 있습니다:

[inputs.prom.tags]
#some_tag = "some_value"
# more_tag = "some_other_value"

클러스터 메트릭

태그

name description
bucket 버킷 이름
host nginx가 설치된 호스트 이름
instance 호스트

메트릭

name description
cluster_rebalance_status Rebalancing 상태

전체 메트릭은 여기를 참조하세요

노드 메트릭

태그

name description
bucket 버킷 이름
host nginx가 설치된 호스트 이름
instance 호스트

메트릭

name description
node_stats_couch_docs_data_size 노드의 CouchBase 문서 데이터 크기
node_stats_get_hits get hits 수
node_uptime_seconds 노드 가동 시간
node_status CouchBase 노드 상태

전체 메트릭은 여기를 참조하세요

버킷 메트릭

태그

name description
bucket 버킷 이름
host nginx가 설치된 호스트 이름
instance 호스트

메트릭

name description
bucket_ram_quota_percent_used 버킷이 사용하는 메모리 비율
bucket_ops_per_second 초당 작업 수
bucket_item_count 버킷 내 항목 수
bucketstats_curr_connections 현재 버킷 연결 수
bucketstats_delete_hits 삭제 hit 수
bucketstats_disk_write_queue 디스크 쓰기 큐 깊이
bucketstats_ep_bg_fetched 초당 디스크 읽기 수
bucketstats_ep_mem_high_wat 자동 evictions를 위한 메모리 사용량 최고 수위

전체 메트릭은 여기를 참조하세요

XDCR 메트릭

태그

name description
bucket 버킷 이름
host nginx가 설치된 호스트 이름
instance 호스트

메트릭

전체 메트릭은 여기를 참조하세요

로그

CouchBase 로그를 수집하려면 다음과 같이 합니다:

  • DataKit log 플러그인을 활성화하고 sample 파일을 복사합니다
/usr/local/datakit/conf.d/log
cp logging.conf.sample couchbase-logging.conf

주의: CouchBase 로그를 수집하려면 DataKit가 CouchBase가 설치된 호스트에 반드시 설치되어 있어야 합니다.

  • couchbase-prom.conf 설정 파일을 수정합니다
# {"version": "1.9.2", "desc": "do NOT edit this line"}

[[inputs.logging]]
  ## 필수
  ## 추적할 파일 이름 또는 패턴.
  logfiles = [
    "/opt/couchbase/var/lib/couchbase/logs/couchdb.log",
  ]

  ## glob 필터
  ignore = [""]

  ## 로그 소스입니다. 비어 있으면 'default'를 사용합니다.
  source = "couchdb"

  ## service 태그를 추가합니다. 비어 있으면 $source를 사용합니다.
  service = "couchdb"

  ## Grok 파이프라인 스크립트 이름.
  pipeline = ""

  ## 선택 가능한 status:
  ##   "emerg","alert","critical","error","warning","info","debug","OK"
  ignore_status = []

  ## 선택 가능한 인코딩:
  ##    "utf-8", "utf-16le", "utf-16le", "gbk", "gb18030" or ""
  character_encoding = ""

  ## 패턴은 정규식이어야 합니다. '''이 정규식''' 사용에 유의하세요.
  ## regexp link: https://golang.org/pkg/regexp/syntax/#hdr-Syntax
  # multiline_match = '''^\S'''

  auto_multiline_detection = true
  auto_multiline_extra_patterns = []

  ## 텍스트 문자열에서 ANSI 이스케이프 코드를 제거합니다.
  remove_ansi_escape_codes = false

  ## 데이터 전송에 실패하면 영구적으로 재시도합니다.
  blocking_mode = true

  ## 파일이 비활성 상태이면 무시됩니다.
  ## 시간 단위는 "ms", "s", "m", "h"입니다.
  ignore_dead_log = "1h"

  ## 파일을 처음부터 읽습니다.
  from_beginning = false

  [inputs.logging.tags]
  # some_tag = "some_value"
  # more_tag = "some_other_value"

문서 평가

이 페이지가 도움이 되었나요?