- 'データベース'
- '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 ファイルをコピーします
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 を再起動します
現在は ConfigMap 方式で収集器設定を注入する方法 により、収集器を有効化できます。
メトリクス¶
以下のすべてのデータ収集では、既定で host という名前のグローバル tag(tag 値は DataKit が配置されているホスト名)が追加されます。設定では [inputs.prom.tags] で他のタグも指定できます:
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 ファイルをコピーします
注意: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"