コンテンツにスキップ
  • 'データベース'
  • 'PROMETHEUS' dashboard:
  • desc: 'CouchBase 内蔵ビュー by Exporter' path: 'dashboard/ja/couchbase_prom'

monitor: - desc: 'CouchBase モニター' path: 'monitor/ja/couchbase_prom'


CouchBase

収集器は CouchBase インスタンスから、データ使用量のメモリやディスク、現在の接続数など、さまざまなメトリクスを取得し、メトリクスをGuance に収集して、CouchBase のさまざまな異常を監視・分析できるようにします。

収集器設定

前提条件

バージョン情報

CouchBase Version:7.2.0 CouchBase Exporter Version: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

パラメータ説明:

|                            |                     |                                                    |                                                 |
| -------------------------- | ------------------- | -------------------------------------------------- | ----------------------------------------------- |
| environment variable       | argument            | description                                        | default                                         |
|                            | -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 パスのデータを優先してデバッグします
# output = "/abs/path/to/file"
> 
## 収集データサイズの上限、単位はバイト
# 収集データをローカルファイルへ出力する場合、この上限を設定できます
# 収集データのサイズがこの上限を超えると、収集されたデータは破棄されます
# 収集データサイズの上限の既定値は 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"

Cluster metrics

ラベル

name description
bucket bucket name
host host name which installed nginx
instance host

メトリクス

name description
cluster_rebalance_status Rebalancing 状態

完全なメトリクスは以下を参照してください:アドレス

Node metrics

ラベル

name description
bucket bucket name
host host name which installed nginx
instance host

メトリクス

name description
node_stats_couch_docs_data_size ノード内の CouchBase ドキュメントデータサイズ
node_stats_get_hits get hits の数
node_uptime_seconds ノード稼働時間
node_status CouchBase ノードの状態

完全なメトリクスは以下を参照してください:アドレス

Bucket metrics

ラベル

name description
bucket bucket name
host host name which installed nginx
instance host

メトリクス

name description
bucket_ram_quota_percent_used バケットで使用されているメモリの割合
bucket_ops_per_second 1 秒あたりの操作数
bucket_item_count バケット内のアイテム数
bucketstats_curr_connections 現在のバケット接続数
bucketstats_delete_hits delete hits
bucketstats_disk_write_queue ディスク書き込みキューの深さ
bucketstats_ep_bg_fetched 1 秒あたりのディスク読み取り回数
bucketstats_ep_mem_high_wat 自動 eviction 用のメモリ使用上限水位

完全なメトリクスは以下を参照してください:アドレス

XDCR metrics

ラベル

name description
bucket bucket name
host host name which installed nginx
instance host

メトリクス

完全なメトリクスは以下を参照してください:アドレス

ログ

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]]
  ## Required
  ## File names or a pattern to tail.
  logfiles = [
    "/opt/couchbase/var/lib/couchbase/logs/couchdb.log",
  ]

  ## glob filteer
  ignore = [""]

  ## Your logging source, if it's empty, use 'default'.
  source = "couchdb"

  ## Add service tag, if it's empty, use $source.
  service = "couchdb"

  ## Grok pipeline script name.
  pipeline = ""

  ## optional status:
  ##   "emerg","alert","critical","error","warning","info","debug","OK"
  ignore_status = []

  ## optional encodings:
  ##    "utf-8", "utf-16le", "utf-16le", "gbk", "gb18030" or ""
  character_encoding = ""

  ## The pattern should be a regexp. Note the use of '''this regexp'''.
  ## regexp link: https://golang.org/pkg/regexp/syntax/#hdr-Syntax
  # multiline_match = '''^\S'''

  auto_multiline_detection = true
  auto_multiline_extra_patterns = []

  ## Removes ANSI escape codes from text strings.
  remove_ansi_escape_codes = false

  ## If the data sent failure, will retry forevery.
  blocking_mode = true

  ## If file is inactive, it is ignored.
  ## time units are "ms", "s", "m", "h"
  ignore_dead_log = "1h"

  ## Read file from beginning.
  from_beginning = false

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

フィードバック

このページは役に立ちましたか?