Datadog

PostgreSQL監視をDatadogで始める方法と設定手順

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

前提条件とサポートバージョン

Datadog の PostgreSQL 監視は、公式ドキュメントに記載された 現在サポートされているバージョン 上でのみ保証されています(2024 年 10 月時点)。新しいリリースが出た場合は、Datadog Integration Docs – PostgreSQL を随時確認してください。

項目 推奨バージョン
PostgreSQL 本体 13.x・14.x・15.x(最新パッチ)
Datadog Agent 7.54 以降(Linux / Windows 共通)
OS Ubuntu 22.04 LTS、Amazon Linux 2023、CentOS Stream 9、Windows Server 2019 以上
パッケージマネージャ APT、YUM/DNF、Chocolatey(Windows)
ネットワーク Agent → DB の TCP 5432 を開放し、可能なら TLS/SSL を有効化

ポイント:上記要件を満たす環境であれば、Datadog の DBM と pg_stat_statements がシームレスに利用できます。


Datadog アカウント作成と API キー取得手順

1. アカウント登録

公式サインアップページ(https://app.datadoghq.com/signup)でメールアドレスとパスワードを入力し、無料トライアルまたは有料プランに申し込みます。

2. API キーの生成

  • ログイン後、右上メニュー → IntegrationsAPIs を選択
  • API Keys タブで Create API key ボタンをクリックし、用途が分かる名前(例:postgres-monitor-prod)を付与して作成

3. Application キー(任意)

同じ画面の Application Keys セクションから必要に応じて取得します。CI/CD で Datadog API を呼び出す場合に便利です。

ベストプラクティス:API キーは機密情報です。平文でファイルに残さず、環境変数 DD_API_KEY またはシークレット管理ツール(例:HashiCorp Vault)から注入してください。


Datadog Agent のインストールとアップグレード

2‑1. Linux (APT / YUM)

公式リポジトリからインストールすることで、パッケージの署名検証と自動アップデートが保証されます。

2‑2. Windows (MSI)

PowerShell スクリプトは CI/CD パイプラインでも利用可能です。

2‑3. コンテナ環境 (Docker / Kubernetes)

Kubernetes では DaemonSet により全ノードでエージェントが自動展開され、Pod のメトリクスも取得できます。


PostgreSQL 監視設定 – DBM 有効化と最小構成

3‑1. DBM を有効にする datadog.yaml

3‑2. PostgreSQL 用インテグレーション postgresql.d/conf.yaml

ポイントpassword を直接書かずに環境変数 DD_PG_PASSWORD で渡すことで、リポジトリへの機密情報流出リスクを低減します。


高度な構成 – pg_stat_statements とリモート監視

4‑1. pg_stat_statements の有効化手順

postgresql.conf に以下を追記し、PostgreSQL を再起動します。

pg_stat_statements が有効になると、Datadog の DBM がクエリ実行回数や平均レイテンシを詳細に取得できるようになります。

4‑2. リモート PostgreSQL の監視構成例

(1) Agent 側設定(アプリサーバー)

(2) ネットワーク接続手段

方法 説明
VPC Peering / VPN プライベート IP へ直接 TCP 5432 を開放。最もシンプルで低遅延。
SSH トンネル ssh -L 15432:localhost:5432 user@db-remote.example.net とローカルポート転送し、Agent が 127.0.0.1:15432 に接続。テスト環境で手軽に利用可能。
AWS PrivateLink AWS 上の DB へ安全に接続でき、ファイアウォール設定が最小限に抑えられる。

ベストプラクティス:DB への inbound は Agent が稼働する IP アドレスだけに限定し、不要な公開は避けます。


シークレット管理ベストプラクティス

項目 推奨実装例
環境変数 DD_API_KEYDD_PG_PASSWORD を OS の起動スクリプトや systemd ユニットの Environment= で設定。
Docker / Kubernetes シークレット Docker Compose の env_file:、K8s の Secret リソースを利用し、Pod 定義で valueFrom.secretKeyRef にマッピング。
外部シークレットストア HashiCorp Vault、AWS Secrets Manager、Azure Key Vault などと連携し、エージェント起動時に API 経由で取得(Datadog の Secret Backend Integration を参照)。
ローテーション キーやパスワードは最低でも 90 日ごとに自動ローテーション。Vault の database シークレットエンジンを使えば、PostgreSQL 用ロールのパスワードを自動生成・更新できる。
監査ログ 取得したシークレットは 読み取り専用 にし、アクセスは IAM ポリシーで最小権限に制限。取得ログは CloudTrail や Vault の監査機能で記録する。

ポイント:平文ファイルへの保存は避け、可能な限り外部シークレットストアと組み合わせることで、情報漏洩リスクを大幅に低減できます。


可視化・アラート・運用ベストプラクティス

5‑1. 主要メトリクスと活用例

メトリクス 主な利用シーン
postgresql.queries.count トラフィック増加の早期検知
postgresql.latency.avg スロークエリが顕在化した際のアラート基準
postgresql.connections.active コネクションプール調整の指標
postgresql.cache.hit_ratio I/O ボトルネックの兆候
postgresql.errors.rate ネットワーク障害や認証エラーの監視

5‑2. 標準ダッシュボードとカスタムウィジェット

  1. 標準テンプレートIntegrations → PostgreSQL から「PostgreSQL Overview」ダッシュボードをインポート。
  2. カスタムウィジェット例(クエリレイテンシのタグ別比較)
  3. Add Widget → Timeseries
  4. メトリクス postgresql.latency.avg、フィルタに role:databaseenv:production を設定。

5‑3. アラートポリシー例(Datadog Monitor)

条件 推奨閾値 通知先
postgresql.latency.avg が 200 ms 超過(5 分間継続) 200 ms Slack #db-alerts
postgresql.connections.active が max_connections の 80% 超え 80 % PagerDuty
postgresql.errors.rate が 0.01(1 %)超過 0.01 Email dba@example.com

設定手順は Monitors → New Monitor → Metric で対象メトリクスと閾値を入力し、通知チャネルを選択します。

5‑4. セキュリティ対策まとめ

項目 推奨設定
最小権限ロール CREATE ROLE datadog_mon LOGIN PASSWORD '•••' NOSUPERUSER NOCREATEDB NOCREATEROLE;
GRANT CONNECT ON DATABASE mydb TO datadog_mon;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO datadog_mon;
TLS/SSL ssl = on を有効化し、サーバ証明書を配置。Agent 側は ssl: true 設定で接続。
ネットワーク制御 DB の inbound は Agent が稼働する IP アドレス(または SG)だけに許可。

トラブルシューティングチェックリスト

  1. Agent 状態確認
    bash
    datadog-agent status
  2. API キーの有無echo $DD_API_KEY で正しい値が設定されているか。
  3. DB 接続テスト(Linux)
    bash
    PGPASSWORD=$DD_PG_PASSWORD psql -h db01.example.com -U datadog_mon -d postgres -c "SELECT 1"
  4. pg_stat_statements の有効化確認
    sql
    SELECT * FROM pg_extension WHERE extname='pg_stat_statements';
  5. SSL ハンドシェイクエラーの有無/var/log/datadog/agent.logsslmode=verify-full 関連メッセージが出ていないか確認。
  6. タグ付与漏れチェック:Datadog UI の Infrastructure → Hosts で対象インスタンスに期待通りのタグ(例:env:production)が表示されるか。

よくある失敗conf.yaml にパスワードを平文で記載した結果、リポジトリ公開時に情報漏洩。上記ベストプラクティスの環境変数またはシークレット管理ツール導入で回避できます。


まとめ

  • 公式サポートバージョン を確認し、対応 OS・Agent バージョンを揃えることが第一歩。
  • API キーとシークレット は環境変数や外部シークレットストアで安全に管理する。
  • DBM の有効化 + 最小構成ファイル だけで基本的な PostgreSQL メトリクスは自動取得可能。
  • pg_stat_statements とリモート接続 により、クエリ単位の詳細分析と分散環境でもフル監視が実現できる。
  • 可視化・アラート設定定期的なトラブルシューティング を組み合わせれば、障害発生前に予防策を講じられる。

この手順とベストプラクティスをプロジェクトに取り入れれば、Datadog 上での PostgreSQL 監視が確実かつ安全に運用できるようになります。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Datadog