Supported OS Linux Windows Mac OS

インテグレーションバージョン6.0.0

概要

このチェックは、Vault クラスターの健全性とリーダーの変更を監視します。

セットアップ

インストール

Vault チェックは Datadog Agent パッケージに含まれています。

バージョン 3.4.0 以降、この OpenMetrics ベースのインテグレーションには、最新モード (use_openmetrics: true) とレガシーモード (use_openmetrics: false) があります。すべての最新機能を利用するために、Datadog は最新モードを有効にすることを推奨します。最新モードには Python 3 が必要です。詳しくは、OpenMetrics ベースのインテグレーションにおける最新バージョニングとレガシーバージョニングを参照してください。

  1. Vault 構成で Prometheus メトリクスが有効になっていることを確認します。

  2. Vault チェックが正しく機能するには、Vault メトリクスへの未認証アクセスを有効にする (Vault バージョン 1.3.0 以降を使用) か、Vault クライアントトークンを提供する必要があります。

    • 未認証アクセスを有効にするには、Vault の unauthenticated_metrics_access 構成を true に設定します。これにより、/v1/sys/metrics エンドポイントへの未認証アクセスが許可されます。

      : /sys/metrics エンドポイントでメトリクスを収集するには Vault v1.1.0 以降が必要です。

    • Vault クライアントトークンを使用するには、以下の例を参照してください。JWT 認証方法を使用した例ですが、追加の認証方法を使用することもできます。

Vault インテグレーションには以下の機能が必要です。

  • metrics_policy.hcl のコンテンツ:

    path "sys/metrics*" {
      capabilities = ["read", "list"]
    }
    
  • セットアップポリシーとロール:

    $ vault policy write metrics /path/to/metrics_policy.hcl
    $ vault auth enable jwt
    $ vault write auth/jwt/config jwt_supported_algs=RS256 jwt_validation_pubkeys=@<PATH_TO_PUBLIC_PEM>
    $ vault write auth/jwt/role/datadog role_type=jwt bound_audiences=<AUDIENCE> user_claim=name token_policies=metrics
    $ vault agent -config=/path/to/agent_config.hcl
    
  • agent_config.hcl のコンテンツ:

    exit_after_auth = true
    pid_file = "/tmp/agent_pid"
    
    auto_auth {
      method "jwt" {
        config = {
          path = "<JWT_CLAIM_PATH>"
          role = "datadog"
        }
      }
    
      sink "file" {
        config = {
          path = "<CLIENT_TOKEN_PATH>"
        }
      }
    }
    
    vault {
      address = "http://0.0.0.0:8200"
    }
    

構成

ホスト

ホストで実行中の Agent に対してこのチェックを構成するには

  1. vault のパフォーマンスデータの収集を開始するには、Agent のコンフィギュレーションディレクトリのルートにある conf.d/ フォルダーの vault.d/conf.yaml ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションの詳細については、サンプル vault.d/conf.yaml を参照してください。

    トークンなしでインテグレーションを実行するための構成 (Vault 構成 unauthenticated_metrics_access が true に設定されている場合):

    init_config:
    
    instances:
        ## @param api_url - string - required
        ## URL of the Vault to query.
        #
      - api_url: http://localhost:8200/v1
    
        ## @param no_token - boolean - optional - default: false
        ## Attempt metric collection without a token.
        #
        no_token: true
    

    クライアントトークンとのインテグレーションを実行するためのコンフィギュレーション:

    init_config:
    
    instances:
        ## @param api_url - string - required
        ## URL of the Vault to query.
        #
      - api_url: http://localhost:8200/v1
    
        ## @param client_token - string - optional
        ## Client token necessary to collect metrics.
        #
        client_token: <CLIENT_TOKEN>
    
        ## @param client_token_path - string - optional
        ## Path to a file containing the client token. Overrides `client_token`.
        ## The token will be re-read after every authorization error.
        #
        # client_token_path: <CLIENT_TOKEN_PATH>
    
  2. Agent を再起動します

コンテナ化

コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。

パラメーター
<INTEGRATION_NAME>vault
<INIT_CONFIG>空白または {}
<INSTANCE_CONFIG>{"api_url": "http://%%host%%:8200/v1"}

Vault の認証コンフィギュレーションに応じて、INSTANCE_CONFIG をカスタマイズする必要があります。上記のホストセクションの例を参照してください。

ログ収集

Agent バージョン 6.0 以降で利用可能

  1. Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml ファイルでこれを有効にします。

    logs_enabled: true
    
  2. Vault を構成し、監査とサーバーログを有効にします。

    • 監査ログは、適切なポリシーを持つ特権ユーザーが有効にする必要があります。詳細は、監査デバイスの有効化を参照してください。

      vault audit enable file file_path=/vault/vault-audit.log
      
    • サーバーログがファイルに必ず書き込まれるようにしてください。Vault systemd 起動スクリプトで静的サーバーログを構成することができます。 以下のスクリプトは、/var/log/vault.logへログを出力します。

      ...
      [Service]
      ...
      ExecStart=/bin/sh -c '/home/vagrant/bin/vault server -config=/home/vagrant/vault_nano/config/vault -log-level="trace" > /var/log/vault.log
      ...
      
  3. 次の構成ブロックを vault.d/conf.yaml ファイルに追加し、Vault ログの収集を始めます。

    logs:
      - type: file
        path: /vault/vault-audit.log
        source: vault
        service: "<SERVICE_NAME>"
      - type: file
        path: /var/log/vault.log
        source: vault
        service: "<SERVICE_NAME>"
    

検証

Agent の status サブコマンドを実行し、Checks セクションで vault を探します。

収集データ

メトリクス

[vault.replication.fetchRemoteKeysvault.replication.merkleDiffvault.replication.merkleSync で始まるメトリクス]は、レプリケーションが不健全状態でなければ報告されません。

イベント

vault.leader_change: このイベントは、クラスターリーダーが変更されると発生します。

サービスチェック

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問合せください。

その他の参考資料

お役に立つドキュメント、リンクや記事:

PREVIEWING: may/embedded-workflows