Apache CouchDB の統合では、ノードへのリクエスト数やノードからのレスポンスなど、トラフィック関連の指標が収集されます。また、開いているオペレーション数などのデータベース指標も収集します。この統合では、一般的な CouchDB ログとアクセスログを収集して JSON ペイロードを生成します。結果には、user、host、level、message のフィールドが含まれます。
Apache CouchDB の詳細については、couchdb.apache.org/ をご覧ください。
前提条件
CouchDB のログと指標を収集して取り込むには、Ops エージェント バージョン 2.11.0 以降をインストールする必要があります。
このレシーバは、Apache CouchDB バージョン 2.3.x および 3.1 以降をサポートしています。
CouchDB 用に Ops エージェントを構成する
Ops エージェントの構成のガイドに従って、CouchDB インスタンスからログと指標を収集するために必要な要素を追加して、エージェントを再起動します。
構成の例
次のコマンドは、CouchDB のログと指標を収集して取り込み、Linux で Ops エージェントを再起動するための構成ファイルを作成します。
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
receivers:
couchdb:
type: couchdb
service:
pipelines:
couchdb:
receivers:
- couchdb
metrics:
receivers:
couchdb:
type: couchdb
username: usr
password: pwd
service:
pipelines:
couchdb:
receivers:
- couchdb
EOF
sudo service google-cloud-ops-agent restart
ログの収集を構成する
CouchDB からログを取り込むには、CouchDB が生成するログのレシーバを作成し、新しいレシーバのパイプラインを作成する必要があります。couchdb
ログのレシーバを構成するには、次のフィールドを指定します。
フィールド | デフォルト | 説明 |
---|---|---|
type |
値は couchdb を指定してください。 |
|
include_paths |
[/var/log/couchdb/couchdb.log] |
各ファイルのテーリングで読み込むファイルシステムのパスのリスト。パスには、/var/log/couchdb*/*.log のように、ワイルドカード(* )を使用できます。 |
exclude_paths |
include_paths の照合で除外するファイルシステム パスのパターンのリスト。 |
|
wildcard_refresh_interval |
60s |
include_paths のワイルドカード ファイルのパスの更新間隔。時間を指定します(例: 30s 、2m )。このプロパティは、ログファイルのローテーションがデフォルトの間隔よりも速く、ロギングのスループットが高い場合に有用です。1 秒の倍数にする必要があります。 |
ログの内容
couchdb
ログの logName
は、構成で指定されたレシーバ ID から取得されます。LogEntry
内の詳細なフィールドは、次のとおりです。
フィールド | タイプ | 説明 |
---|---|---|
httpRequest.serverIp |
文字列 | サーバーの IP アドレス。 |
httpRequest.remoteIp |
文字列 | クライアント IP アドレス。 |
httpRequest.requestMethod |
文字列 | HTTP メソッド。 |
httpRequest.responseSize |
文字列(int64 ) |
レスポンス サイズ |
httpRequest.status |
数値 | HTTP ステータス コード。 |
jsonPayload.remote_user |
文字列 | リクエストの認証済みユーザー名。 |
jsonPayload.pid |
数値 | プロセス ID。 |
jsonPayload.message |
文字列 | ログ メッセージ。 |
jsonPayload.status_message |
文字列 | ステータス コード メッセージ。 |
jsonPayload.node |
文字列 | ノードのインスタンス名。 |
jsonPayload.host |
文字列 | ホスト インスタンス名。 |
jsonPayload.path |
文字列 | リクエストパス。 |
jsonPayload.remote_user |
文字列 | ユーザー ID(省略可)。 |
severity |
文字列(LogSeverity ) |
ログエントリ レベル(変換済み)。 |
timestamp |
文字列(Timestamp ) |
エントリがログに記録された時刻。 |
ログエントリに空白や欠落しているフィールドは含まれません。
指標の収集を構成する
CouchDB から指標を収集するには、CouchDB 指標を表示するレシーバを作成し、新しいレシーバ用のパイプラインを作成する必要があります。CouchDB 指標のレシーバを構成するには、次のフィールドを指定します。
フィールド | デフォルト | 説明 |
---|---|---|
type |
値は couchdb を指定してください。 |
|
stub_status_url |
http://localhost:5984 |
CouchDB によって公開される URL。 |
username |
サーバーへの接続に使用するユーザー名。 | |
password |
サーバーへの接続に使用するパスワード。 | |
collection_interval |
60s |
time.Duration 値(例: 30s 、5m )。 |
モニタリング対象
次の表に、Ops エージェントが CouchDB インスタンスから収集する指標の一覧を示します。
指標タイプ | |
---|---|
種類、タイプ モニタリング対象リソース |
ラベル |
workload.googleapis.com/couchdb.average_request_time
|
|
GAUGE 、DOUBLE gce_instance |
|
workload.googleapis.com/couchdb.database.open
|
|
GAUGE 、INT64 gce_instance |
|
workload.googleapis.com/couchdb.database.operations
|
|
CUMULATIVE 、INT64 gce_instance |
operation
|
workload.googleapis.com/couchdb.file_descriptor.open
|
|
GAUGE 、INT64 gce_instance |
|
workload.googleapis.com/couchdb.httpd.bulk_requests
|
|
CUMULATIVE 、INT64 gce_instance |
|
workload.googleapis.com/couchdb.httpd.requests
|
|
CUMULATIVE 、INT64 gce_instance |
http_method
|
workload.googleapis.com/couchdb.httpd.responses
|
|
CUMULATIVE 、INT64 gce_instance |
http_status_code
|
workload.googleapis.com/couchdb.httpd.views
|
|
CUMULATIVE 、INT64 gce_instance |
view
|
ダッシュボードの例
サンプルの Cloud Monitoring ダッシュボードを使用して、この統合からの指標を表示できます。サンプル ダッシュボードのインストールの手順を行い、サンプル ライブラリから CouchDB GCE の概要ダッシュボードをインポートして、Apache CouchDB の指標を表示するチャートを表示します。構成を確認する
ログ エクスプローラと Metrics Explorer を使用して、CouchDB レシーバが正しく構成されていることを確認できます。Ops エージェントがログと指標の収集を開始するまでに 1~2 分かかる場合があります。
ログが取り込まれていることを確認するには、ログ エクスプローラに移動し、次のクエリを実行して CouchDB のログを表示します。
resource.type="gce_instance"
logName=("projects/PROJECT_ID/logs/couchdb")
指標が取り込まれていることを確認するには、Metrics Explorer に移動し、[MQL] タブで次のクエリを実行します。
fetch gce_instance
| metric 'workload.googleapis.com/couchdb.database.operations'
| align rate(1m)
| every 1m