運用

トラブルシューティング

Vaultの一般的な問題と解決方法
最終更新: 2026/2/17

トラブルシューティング

Vaultの運用中に発生する一般的な問題と、その解決方法をご紹介します。

起動と初期化の問題

Vaultが起動しない

症状:

sudo systemctl start vault
# エラー: Job for vault.service failed

確認事項:

  1. 設定ファイルの構文エラー
# 設定ファイルの検証
vault server -config=/etc/vault.d/vault.hcl -test

# ログの確認
sudo journalctl -u vault -n 50
  1. ポートの競合
# ポート8200が使用中か確認
sudo lsof -i :8200
sudo netstat -tulpn | grep 8200

# プロセスを終了
sudo kill -9 <PID>
  1. 権限の問題
# ファイルの権限確認
ls -l /etc/vault.d/vault.hcl
ls -ld /vault/data

# 権限の修正
sudo chown -R vault:vault /vault
sudo chmod 700 /vault/data
  1. ストレージの問題
# ディスク容量の確認
df -h /vault/data

# ストレージバックエンドの接続確認(Consulの場合)
consul members

初期化に失敗する

症状:

vault operator init
# Error initializing: Error making API request

解決策:

  1. Vaultがアンシール状態か確認
vault status
  1. ストレージバックエンドの確認
# Raftの場合
ls -la /vault/data/

# Consulの場合
consul kv get vault/core/
  1. ネットワーク接続の確認
# APIエンドポイントへの接続
curl -k https://127.0.0.1:8200/v1/sys/health

シールとアンシールの問題

アンシールできない

症状:

vault operator unseal
# Error unsealing: Error making API request

解決策:

  1. 正しいUnseal Keyを使用しているか確認
# Unseal Keyの数を確認
vault status | grep "Threshold"
  1. 必要な数のキーを入力
# 3つのキーが必要な場合
vault operator unseal <key1>
vault operator unseal <key2>
vault operator unseal <key3>
  1. Raftストレージの問題
# Raftピアの確認
vault operator raft list-peers

# Raftスナップショットからリストア
vault operator raft snapshot restore backup.snap

自動的にシールされる

症状: Vaultが予期せずシールされる

原因と解決策:

  1. メモリ不足
# メモリ使用状況の確認
free -h
top -p $(pgrep vault)

# メモリを増やす
# または、不要なプロセスを停止
  1. ストレージの問題
# ディスクI/Oの確認
iostat -x 1

# ストレージバックエンドのログ確認
  1. ネットワークの問題
# クラスター通信の確認
ping vault-2.example.com
telnet vault-2.example.com 8201

認証の問題

ログインできない

症状:

vault login
# Error authenticating: permission denied

解決策:

  1. トークンの有効性確認
# トークンの確認
vault token lookup

# 新しいトークンを取得
vault login -method=userpass username=myuser
  1. 認証方法の確認
# 有効な認証方法を確認
vault auth list

# 認証方法が無効化されている場合は有効化
vault auth enable userpass
  1. ポリシーの確認
# トークンのポリシーを確認
vault token lookup -format=json | jq -r '.data.policies'

# ポリシーの内容を確認
vault policy read myapp-read

トークンが期限切れになる

症状:

vault kv get secret/myapp/config
# Error: invalid token

解決策:

  1. トークンの更新
# トークンを更新
vault token renew

# 更新できない場合は再ログイン
vault login -method=userpass username=myuser
  1. TTLの延長
# より長いTTLでトークンを作成
vault token create -ttl=24h -policy=myapp-read

パフォーマンスの問題

レスポンスが遅い

症状: APIリクエストのレスポンスが遅い

診断:

  1. メトリクスの確認
# リクエストレイテンシの確認
curl -H "X-Vault-Token: $VAULT_TOKEN" \
  https://vault.example.com:8200/v1/sys/metrics?format=prometheus | \
  grep vault_core_handle_request
  1. リソース使用状況
# CPU使用率
top -p $(pgrep vault)

# メモリ使用率
free -h

# ディスクI/O
iostat -x 1
  1. ストレージバックエンドのパフォーマンス
# Raftの場合
vault operator raft list-peers

# Consulの場合
consul monitor

解決策:

  1. リソースの増強
  • CPUの追加
  • メモリの増加
  • SSDの使用
  1. クエリの最適化
# 不要なリクエストを削減
# キャッシュの活用
  1. スケールアウト
  • Performance Standbyの追加(Enterprise版)
  • 読み取りレプリカの追加

メモリ使用量が高い

症状: Vaultのメモリ使用量が増加し続ける

診断:

# メモリ使用状況
vault read sys/metrics | grep runtime_alloc_bytes

# Goroutine数
vault read sys/metrics | grep runtime_num_goroutines

解決策:

  1. メモリリークの確認
# プロファイリング
curl -H "X-Vault-Token: $VAULT_TOKEN" \
  https://vault.example.com:8200/v1/sys/pprof/heap > heap.prof

# 分析
go tool pprof heap.prof
  1. Vaultの再起動
sudo systemctl restart vault
  1. メモリの増加
  • サーバーのメモリを増やす

ストレージの問題

ディスク容量不足

症状:

vault kv put secret/myapp/config key=value
# Error: no space left on device

解決策:

  1. ディスク容量の確認
df -h /vault/data
  1. 古いデータの削除
# 古いスナップショットの削除
find /backup/vault -name "*.snap" -mtime +30 -delete

# 古いログの削除
find /var/log/vault -name "*.log.*" -mtime +7 -delete
  1. ディスクの拡張
  • ストレージの追加
  • パーティションの拡張

Raftストレージの破損

症状: Raftストレージが破損している

解決策:

  1. スナップショットからリストア
# すべてのノードを停止
sudo systemctl stop vault

# スナップショットをリストア
vault operator raft snapshot restore -force backup.snap

# ノードを起動
sudo systemctl start vault
  1. ピアの削除と再追加
# 問題のあるピアを削除
vault operator raft remove-peer node2

# ノードを再起動して再参加
sudo systemctl restart vault

ネットワークの問題

クラスター通信の問題

症状: ノード間の通信ができない

診断:

# ポート8201の確認
telnet vault-2.example.com 8201

# ファイアウォールの確認
sudo iptables -L -n | grep 8201
sudo ufw status

解決策:

  1. ファイアウォールの設定
# ポート8201を開放
sudo ufw allow 8201/tcp
sudo iptables -A INPUT -p tcp --dport 8201 -j ACCEPT
  1. ネットワーク設定の確認
# cluster_addrの確認
grep cluster_addr /etc/vault.d/vault.hcl

# DNSの確認
nslookup vault-2.example.com

TLS証明書の問題

症状:

vault status
# Error: x509: certificate signed by unknown authority

解決策:

  1. 証明書の確認
# 証明書の有効期限確認
openssl x509 -in /vault/tls/tls.crt -noout -dates

# 証明書の検証
openssl verify -CAfile /vault/tls/ca.crt /vault/tls/tls.crt
  1. 証明書の更新
# 新しい証明書を取得
certbot renew

# Vaultを再起動
sudo systemctl restart vault
  1. 一時的な回避策(開発環境のみ)
export VAULT_SKIP_VERIFY=true

データの問題

シークレットが見つからない

症状:

vault kv get secret/myapp/config
# No value found at secret/data/myapp/config

解決策:

  1. パスの確認
# 正しいパスを確認
vault kv list secret/
vault kv list secret/myapp/
  1. バージョンの確認
# メタデータを確認
vault kv metadata get secret/myapp/config

# 削除されたバージョンを復元
vault kv undelete -versions=1 secret/myapp/config
  1. 権限の確認
# トークンの権限を確認
vault token capabilities secret/data/myapp/config

データが破損している

症状: シークレットのデータが正しくない

解決策:

  1. バージョン履歴の確認
# 以前のバージョンを取得
vault kv get -version=1 secret/myapp/config
  1. バックアップからリストア
# スナップショットからリストア
vault operator raft snapshot restore backup.snap

監査ログの問題

監査ログが記録されない

症状: 監査ログファイルが空

解決策:

  1. 監査デバイスの確認
# 監査デバイスの一覧
vault audit list

# 監査デバイスが無効な場合は有効化
vault audit enable file file_path=/var/log/vault/audit.log
  1. ファイル権限の確認
# 権限の確認
ls -l /var/log/vault/audit.log

# 権限の修正
sudo chown vault:vault /var/log/vault/audit.log
sudo chmod 640 /var/log/vault/audit.log
  1. ディスク容量の確認
df -h /var/log

高可用性の問題

リーダー選出に失敗

症状: クラスターにリーダーが存在しない

診断:

# Raftピアの確認
vault operator raft list-peers

# ログの確認
sudo journalctl -u vault -f

解決策:

  1. クォーラムの確認
# 過半数のノードが稼働しているか確認
# 3ノードの場合、最低2ノードが必要
  1. ネットワークの確認
# ノード間の通信確認
ping vault-2.example.com
telnet vault-2.example.com 8201
  1. 強制的なリーダー選出
# すべてのノードを停止
sudo systemctl stop vault

# 1つのノードを起動
sudo systemctl start vault

# 他のノードを順次起動

スプリットブレイン

症状: 複数のリーダーが存在する

解決策:

  1. すべてのノードを停止
# すべてのVaultノードで実行
sudo systemctl stop vault
  1. スナップショットからリストア
# 最新のスナップショットをリストア
vault operator raft snapshot restore -force backup.snap
  1. ノードを順次起動
# リーダーノードを起動
sudo systemctl start vault

# 他のノードを起動

デバッグ方法

ログレベルの変更

# config.hcl
log_level = "debug"
# Vaultを再起動
sudo systemctl restart vault

# ログを確認
sudo journalctl -u vault -f

プロファイリング

# CPUプロファイル
curl -H "X-Vault-Token: $VAULT_TOKEN" \
  https://vault.example.com:8200/v1/sys/pprof/profile?seconds=30 > cpu.prof

# メモリプロファイル
curl -H "X-Vault-Token: $VAULT_TOKEN" \
  https://vault.example.com:8200/v1/sys/pprof/heap > heap.prof

# Goroutineプロファイル
curl -H "X-Vault-Token: $VAULT_TOKEN" \
  https://vault.example.com:8200/v1/sys/pprof/goroutine > goroutine.prof

トレース

# トレースの有効化
export VAULT_LOG_LEVEL=trace

# リクエストIDでトレース
grep "request_id=abc123" /var/log/vault/vault.log

サポートへの問い合わせ

必要な情報

  1. Vaultのバージョン
vault version
  1. 設定ファイル(機密情報を除く)
cat /etc/vault.d/vault.hcl
  1. ログ
sudo journalctl -u vault -n 1000 > vault.log
  1. ステータス
vault status > vault-status.txt
  1. メトリクス
curl -H "X-Vault-Token: $VAULT_TOKEN" \
  https://vault.example.com:8200/v1/sys/metrics > metrics.txt

次のステップ

トラブルシューティングを理解したら、次は高度な機能でVaultのさらなる活用方法を学びましょう。

問題解決のアプローチ問題が発生した場合は、まずログを確認し、症状を正確に把握してください。多くの問題は、設定ミスや権限の問題が原因です。
© 2026 IBM Corporation. Licensed under CC BY 4.0.