Vault はサーバ内部のカウンタやレイテンシなどを telemetry として公開できます。代表的な取り込み先は Prometheus(Pull)と StatsD(Push)です。本稿では両者の使い分け、設定の落とし穴、HA 構成での注意をまとめます。
受験対策としては、telemetry スタンザの主要オプション、/v1/sys/metrics のフォーマット指定、Prometheus スクレイプの典型例、StatsD のポート/プロトコル前提が頻出です。
Vault は server 設定の telemetry スタンザにより観測データのエクスポートを有効化します。Prometheus 互換の出力は HTTP 経由で /v1/sys/metrics?format=prometheus から取得できます。StatsD は UDP ベースでメトリクスを送信します。
本稿は OSS Vault を前提に、安定的に使われるオプションと一般的な運用パターンに絞って解説します。バージョン差異がある環境では、必ず運用中の Vault ドキュメントと設定可能なキーを確認してください。
最小の疎通確認(Prometheus 形式での取得)
curl -s https://vault.example.com:8200/v1/sys/metrics?format=prometheus \
--cacert /etc/ssl/certs/ca.pem | head -50Prometheus は Pull、StatsD は Push。ネットワークの方向・到達性、ラベル/タグ表現、重複抑止のアプローチが異なります。Vault クラスタを監視する際は、active/standby ノードの扱いと TLS/防火壁設計を先に固めると、後工程の調整が減ります。
| 項目 | Prometheus(Pull) | StatsD(Push) | 運用インパクト |
|---|---|---|---|
| 収集方向 | 監視側が取りに行く | Vault から送る | 到達性の担保対象が逆転 |
| プロトコル | HTTP(S) | UDP 8125 など | UDP 落ち・順序入替の考慮 |
| メタデータ | ラベル(key=value) | タグは拡張系のみ(DogStatsD等) | 高カーディナリティ制御が肝 |
| HA 時の重複 | スクレイプ先の制御で抑止 | 送信元の制御で抑止 | Active/Standby の運用設計が必要 |
| ダッシュボード | Grafana などと親和性高 | 集約先(Graphite/Datadog等)に依存 | 可視化基盤に合わせる |
データフロー(概念図)
HA での典型ターゲット例(Consul サービスディスカバリを想定)
# Prometheus 側でサービス解決を使う場合のイメージ(抜粋)
scrape_configs:
- job_name: 'vault'
metrics_path: /v1/sys/metrics
params:
format: ['prometheus']
scheme: https
tls_config:
ca_file: /etc/prometheus/ca.pem
static_configs:
- targets: ['vault-1.example.com:8200','vault-2.example.com:8200','vault-3.example.com:8200']Vault 側では telemetry スタンザで出力形式や送信先を有効化します。Prometheus 連携だけなら HTTP エンドポイントでの出力を維持するため、保持期間(prometheus_retention_time)とホスト名ラベル抑止(disable_hostname)を設定するのが実務上の無難な初手です。
StatsD を併用する場合は statsd_address を追加します。環境の観測基盤が確立済み(Datadog/Graphite など)であれば、移行コストを抑えられます。
vault.hcl(抜粋): Prometheus と StatsD を同時に有効化
telemetry {
# Prometheus 形式の保持時間(例: 24h)
prometheus_retention_time = "24h"
# ホスト名をラベルに含めないことでカーディナリティを抑制
disable_hostname = true
# StatsD 送信(必要な場合のみ有効化)
# 一般的な既定ポートは 8125/udp
statsd_address = "127.0.0.1:8125"
}
# 反映: systemd の場合
# sudo systemctl reload vaultPrometheus からは /v1/sys/metrics に対して format=prometheus を付けてスクレイプします。TLS を終端しない構成は避け、最小限でも CA 検証を行います。HA 環境では全ノードをターゲットにするか、サービスディスカバリで動的に解決するのが一般的です。
重複計上や切替時のブレを抑えるため、recording rules で統計を安定化させる運用が現実的です(例: rate の窓幅をやや長めに)。
Prometheus の scrape_configs(最小例)
scrape_configs:
- job_name: 'vault'
scheme: https
metrics_path: /v1/sys/metrics
params:
format: ['prometheus']
tls_config:
ca_file: /etc/prometheus/ca.pem
# server_name を指定して SNI/証明書のCN/SANを検証
server_name: vault.example.com
static_configs:
- targets: ['vault.example.com:8200']
Vault は telemetry で statsd_address を指定すると、内部メトリクスを UDP で送信します。取り込み先は Graphite/Datadog/Telegraf など。DogStatsD のようなタグ拡張に依存する場合は、対応するエージェントを選択します。
UDP はロスを前提に設計されているため、ネットワーク混雑や再起動時のスパイクを考慮し、アラート閾値はヒステリシスや複合条件で安定化させると良いです。
StatsD 取り込み(Telegraf 経由 Graphite などの例)
# Telegraf の statsd 入力例(telegraf.conf 抜粋)
[[inputs.statsd]]
service_address = ":8125"
delete_gauges = false
delete_counters = false
# 必要に応じて metric_separator / templates を調整
# Vault 側(前掲 vault.hcl)で statsd_address を 127.0.0.1:8125 に設定運用では、メトリクスの可用性・正確性・遅延の3点を監視観点に入れます。Prometheus は scrape 成功率とメトリクス数のドリフト、StatsD は受信レートとドロップの兆候(取り込み側のログ/内部メトリクス)を監視すると実害を早期に検知できます。
試験では、/v1/sys/metrics のフォーマット指定、telemetry の主要キー、Pull/Push の設計差を確実に押さえると得点源になります。
トラブルシュートの小ネタ
# 1) Prometheus 形式で応答するか
curl -vk https://vault.example.com:8200/v1/sys/metrics?format=prometheus | head -20
# 2) ポート到達性(StatsD/UDP)
sudo tcpdump -ni any udp port 8125 -vv -c 5
# 3) ラベル過多の抑制(設定再確認)
# telemetry.disable_hostname=true を適用後、ダッシュボードの時系列を比較Ops
問題 1
Vault のテレメトリを Prometheus で収集する際の推奨設定として、運用の安定性に最も直接的に寄与するものはどれか。
正解: A
disable_hostname=true はメトリクスのラベル数(特にホスト名由来)を抑制し、TSDB の負荷・ダッシュボードの安定性に寄与します。prometheus_retention_time=0 は指標欠落の原因になり得ます。/v1/sys/health はヘルスチェック用でメトリクスではありません。StatsD と Prometheus は併用可能で、要件に応じて使い分けます。
Vault の /v1/sys/metrics は常に Prometheus 形式で返りますか?
いいえ。リクエストで format=prometheus を指定するか、Accept ヘッダに応じて形式が切り替わります。Prometheus からは metrics_path と params で format=prometheus を指定するのが確実です。
HA 構成ではどのノードをスクレイプすべきですか?
一般的には全ノードをターゲットに含め、Prometheus 側で同一系列の重複が発生しないようラベル設計や集約に配慮します。サービスディスカバリで自動登録し、TLS と到達性を担保するのが実務での定石です。
StatsD と Prometheus を同時に有効化すると負荷は増えますか?
送信・出力処理が増えるため一定のオーバーヘッドは発生しますが、適切なサンプリングや保持窓の調整、ネットワーク品質の確保により多くの環境で実用的に運用されています。観測要件に合わせて両立は可能です。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Vault のコア概念を最短距離で理解する:Secret / Auth / Policy / Token
HashiCorp Vault Associate レベルで押さえるべきコア概念(Secret Engine、Auth ...
Vault Operations Professional: 上位資格としての範囲を実務目線で押さえる
HashiCorp Vault Operations Professional(Ops Pro)の出題範囲を、Assoc...
Vaultにおけるパスベースのルーティング: マウントとAPI構造を読み解く
HashiCorp Vaultのパスベースのルーティングを、マウント設計とAPIパスの観点から整理。Associateレ...
Vault Tokens の基礎: 認証の起点となる概念
HashiCorp Vault におけるトークンの役割、種類、ライフサイクル、ポリシー連携、設計パターンをAssocia...
Vault のトークン種類を正しく使い分ける: service / batch 実践
HashiCorp Vault Associate 向けの試験対策と実務運用を両立させた、service トークンと b...