【前編】HashiCorp Vaultの監視: Telemetryデータの監視
ログ監視はサーバーの運用に欠かせないものです。Vaultはシステムに認証機能を提供する非常に重要な役割を担うため、本番環境の運用ではマシンの稼働状態を正しく監視して停止させないようにすることが求められます。監視ツールと呼ばれるものは現在非常に多く提供されていますが、ここではDatadogを使ってVaultを監視する方法を紹介します。
Vaultの監視は大きく分けてTelemetryデータとAuditログがありますが、本記事では前編としてTelemetryデータの監視について説明します。
Telemetryデータの監視について
Vaultには製品のパフォーマンスデータを出力するTelemetryと呼ばれる機能があります。例えば、Vaultが使用しているCPU稼働率や、メモリ使用量、APIリクエストへの応答時間、クラスタの状態などのメトリクスを計測できます。このTelemetry機能により、Vaultの運用状態を監視ツールで常時モニタリングすることで、何か問題が起こりそうな場合にはアラートを出力させることや、問題の兆候を過去に遡り原因解析に役立てることが可能になります。
Datadogとは
Datadog社が提供するSaaS型の運用監視サービスです。オンプレミスやクラウドのインフラストラクチャー、アプリケーションなどを地理的な場所や規模に関わらず、1つのプラットフォーム上に集約して監視を行うことができます。日本リージョンが利用できるので、国外にデータを置くことが許容されない社内ガバナンスがある場合に対応できるのはよいと思いました。また、無料で2週間トライアルができます。
VaultのTelemetryデータを監視する流れ
Datadogを使ってVaultのTelemetryデータを監視する流れは次のようになります。Datadogのアカウントは作成済みとしています。
- VaultサーバーにDatadog Agentをインストール
- Datadog Agent側でVault用監視ツールを設定
- Vault側でDatadog AgentがTelemetryにアクセスできるようにする設定
Datadogは標準でVaultのTelemetryに対応しているためセットアップが少なく、すぐに利用できました。各ステップをかいつまんで見ていきます。
1. VaultサーバーにDatadog Agentをインストール
Datadogの監視はエージェント型で、VaultサーバーにDatadog Agentをインストールします。インストール手順は、DatadogにログインするとAgentのインストール手順画面がありますのでそこから確認できます。AgentはWindowsやLinux、Dockerなどサポートされているプラットフォームが豊富で、インストール手順はプラットフォーム毎に詳しく書かれています。下図は、今回使用したUbuntu用の画面になります。新規インストールのため、赤枠で囲った①のコマンド1行を実行するだけでインストールができます。
※実際のDD_API_KEYにはDatadogで初期設定されたAPIキーが入ります。
2. Datadog Agent側でVault用監視ツールを設定
Datadog AgentにはVault用の監視ツールがビルトインされています。Vault監視ツールの設定ファイルは /etc/datadog-agent/conf.d/vault.d ディレクトリにconf.yaml.exampleという名前のファイルが予め用意されていて、このファイルをconf.yamlという名前のファイルにコピーして使います。conf.yamlでは次の2点を設定します。
①VaultにアクセスするAPIのURLを指定する
②トークンなしでVaultのTelemetry取得用のエンドポイントにアクセスできるようにする
3. Vault側でDatadog AgentがTelemetryにアクセスできるようにする設定
Vault側では、設定ファイルに次の2点を設定します。
①Datadog AgentがVaultに認証なしでTelemetryにアクセスできるようにする
②Prometheusメトリクスを有効にする ※これを入れないとDatadogがデータ取得に失敗するので注意!
上記の設定後に、Datadog AgentとVaultのサービスを再起動して設定を反映させます。Datadogにアクセスして、Metrics Explorerで指定したメトリックスの値が取得できていれば正しく動作しています。
次回は、VaultのAuditログをDatadogで管理する方法と監視用ダッシュボードについて掲載します。