Datadog AgentによるリモートPostgreSQL監視の検証
DBサーバーのOSバージョンが古く、最新のDatadog Agentをインストールできなかった。
そのため、Datadogの新しいDBM機能が利用できず、Postgresのメトリック収集しか実現できなかった。
そこで、最新のDatadog Agentが稼働する別サーバーから、リモートでデータベースを監視する構成を検証した。
検証する構成
DBサーバーでは PostgreSQL(14.18) を稼働している。アプリサーバーの Datadog Agent が、リモートにあるデータベースをモニタリングする構成を検証する。
準備1.PostgreSQLの設定
PostgreSQLに、Datadog Agentがアクセスしてパフォーマンスなどメトリックスを取得できるようにする。
- Databaseユーザー[ユーザ名:datadog]を追加する
- パラメータは省略するが、2つのコンフィグファイルを更新し、postgreSQLを再起動する
- 外部からアクセスするIPアドレスを指定
$ sudo nano /etc/postgresql/14/main/postgresql.conf - リモートからの接続元IP, ユーザ, DB名, 認証方式を設定
$ sudo nano /etc/postgresql/14/main/pg_hba.conf
- Datadog専用のスキーマ「datadog」を作成、またExplain Planを取得できるよう関数を追加(設定値は公式を参照しつつ)
準備2. Datadog Agentの設定
アプリサーバーのDatadog Agentのコンフィグを設定してリモートのDatabaseをモニタリングできるようにする。
- Datadog Agent の conf.d/postgres.yaml を作成してパラメータを設定する
init_config:
instances:
- dbm: true
host: "サーバー名"
port: 5432
username: datadog
password: "パスワード"
dbname: データベース名
tags:
- 'env:prod'
- 'service:postgresql'
- 'version:1.0.0'
ssl: "prefer"
ダッシュボードでどう見えるか
標準ダッシュボード[Postgres - Metrics]
標準ダッシュボード[Postgres - Overview]
DBM
DBM一覧
DBM Summary
DBM Explain Plans
DBM Databases
スキーマその他
設定が未完了(パラメータを追加せねば)
まとめ
検証の結果、Datadog Agentは別サーバーからでもPostgreSQLのメトリクスとDBM機能を取得できることが確認できた。
- 背景:DBサーバーのOSが古く、最新のDatadog Agent をインストールできない
- 目的:Datadog Agent を入れないサーバーにあるDatabaseをモニタリングできるか
検証の結果
できたこと
リモートにあるサーバーから、他のサーバーにホストしたDatabaseをモニタリングできる
できなかったこと
ログ収集は未検証。PostgreSQLのログファイルは、Datadog AgentがDBサーバー上に存在しない限り直接読み込むことは難しい。そのため、ログベースの監視(例:エラーログ、スロークエリログなど)は対象外となる可能性が高い。