物理サーバー、仮想マシン、およびスタンドアロンのインストレーションを含むセルフホスト環境で、NRDOT Collectorを使用してPostgreSQLの監視を設定してください。
前提条件
インストールする前に、以下のものがあることを確認してください:
PostgreSQL
14以降NewRelicライセンスキー。
PostgreSQLインスタンスへの管理アクセス。
NRDOT CollectorをインストールするホストとPostgreSQLデータベース間のネットワーク接続。
New Relic OTLPエンドポイントのドキュメントへのネットワーク接続
このインテグレーションは、New Relicパブリックプレビュープログラムの一環としてご利用いただけます。プレビューとトライアルページからオプトインするには、組織マネージャーに確認してください。
サポート対象のPostgreSQLバージョン、必要な権限、および推奨されるサーバーパラメーターについては、互換性と前提条件を参照してください。
NRDOT Collectorのセットアップ
システムにNRDOT Collectorをインストールします:
データベースユーザーと権限を設定する
PostgreSQLインスタンスに必要な権限を持つ監視ユーザーを作成します。
監視ユーザーと権限を作成するには:
スーパーユーザー、または必要な権限を持つ別のユーザーとしてPostgreSQLインスタンスに接続します:
bash$sudo -u postgres psql --dbname=postgres --port=5432監視ユーザーを作成する:
CREATE USER <YOUR_DB_USERNAME> WITH LOGIN PASSWORD '<YOUR_DB_PASSWORD>';必要に応じて、監視ユーザーロールのメンバーシップを付与する:
PostgreSQL 15以降を使用している場合は、権限を継承するようにロールを割り当てます:
ALTER ROLE <YOUR_DB_USERNAME> INHERIT;ヒント
PostgreSQL 14を使用している場合、監視ユーザーはデフォルトで権限を継承するため、この手順をスキップできます。
監視するすべてのデータベースに次のスキーマと権限を作成します:
CREATE SCHEMA IF NOT EXISTS otel;GRANT USAGE ON SCHEMA otel TO <YOUR_DB_USERNAME>;GRANT USAGE ON SCHEMA public TO <YOUR_DB_USERNAME>;GRANT SELECT ON ALL TABLES IN SCHEMA public TO <YOUR_DB_USERNAME>;GRANT pg_monitor TO <YOUR_DB_USERNAME>;CREATE EXTENSION IF NOT EXISTS pg_stat_statements;(オプション)ベクトルメトリクスを収集するには、各データベースで
pgvector拡張機能を作成します:CREATE EXTENSION IF NOT EXISTS vector;l1、hamming、およびjaccardの距離関数には、pgvectorバージョン0.7.0以降が必要です。(オプション)接続と権限を確認するには、次を実行します:
bash$psql --username=<YOUR_DB_USERNAME> --host=localhost --port=5432 --dbname=<YOUR_DATABASE_NAME> --command '\conninfo'$psql --username=<YOUR_DB_USERNAME> --host=localhost --port=5432 --dbname=<YOUR_DATABASE_NAME> \>-c "SELECT * FROM pg_stat_database LIMIT 1;" && echo "pg_stat_database OK">psql --username=<YOUR_DB_USERNAME> --host=localhost --port=5432 --dbname=<YOUR_DATABASE_NAME> \>-c "SELECT * FROM pg_stat_activity LIMIT 1;" && echo "pg_stat_activity OK">psql --username=<YOUR_DB_USERNAME> --host=localhost --port=5432 --dbname=<YOUR_DATABASE_NAME> \>-c "SELECT * FROM pg_stat_statements LIMIT 1;" && echo "pg_stat_statements OK"各コマンドがエラーなしで完了した場合、監視ユーザー、ホスト、およびポートはすべて正しいです。
NRDOT Collectorを構成する
PostgreSQL固有の設定を使用してNRDOT Collectorを設定します。監視ニーズに基づいて設定タイプを選択します:
設定パラメーター
次の表は、 nrpostgresql受信機のキー設定を説明しています。
| パラメータ | 説明 |
|---|---|
<YOUR_DB_HOST> | PostgreSQLデータベースのホスト名を入力してください。 |
<YOUR_DB_PORT> | PostgreSQLデータベースのポートを入力します。 |
<YOUR_DB_USERNAME> | データベースのユーザー名を入力してください。 |
<YOUR_DB_PASSWORD> | データベースのパスワードを入力してください。 |
<YOUR_DATABASE_NAME> | 監視するデータベースの名前を入力します。 |
<YOUR_NEWRELIC_OTLP_ENDPOINT> | New Relic OTLPエンドポイントを入力します。詳細については、New Relic OTLPエンドポイントを参照してください。 |
<YOUR_NEWRELIC_LICENSE_KEY> | New Relicのライセンスキーを入力してください。 |
collection_interval | メトリクススクレイプの間隔を入力します。デフォルト:15s。 |
ヒント
もできます。
- 複数のレシーバーを設定する: 1つのコレクターから複数のPostgreSQLインスタンスをモニターする場合。
- PostgreSQLデータベースをAPMとリンクする: アプリケーションパフォーマンスとデータベース操作を関連付けるため。これにより、どのアプリケーションが特定のデータベースワークロードを生成しているかを正確に確認できます。
- EXPLAINプランの権限: 監視ユーザーに書き込みアクセス権を付与せずに、ロックまたは書き込みステートメントのクエリプランを収集するため。
- SQLクエリレシーバーの設定: PostgreSQLデータベースからカスタムメトリックを収集するため。
- シークレット管理の設定: データベースの認証情報などの機密情報を安全に管理するためです。これにより、設定ファイルに機密データをハードコーディングすることを回避し、監視設定のセキュリティを強化できます。
NRDOT Collectorの設定の検証
新しい
postgresql-config.yamlファイルを指すように設定パスを更新します:bash$OTELCOL_OPTIONS="/etc/nrdot-collector/postgresql-config.yaml"NRDOT Collectorの設定を検証して、正しくフォーマットされ、適切に機能することを確認します:
bash$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/postgresql-config.yaml
NRDOT Collectorを再起動します
コレクターを設定した後、NRDOT Collectorサービスを再起動して変更を適用します:
$sudo systemctl restart nrdot-collectorコレクターが正常に実行されていることを確認するには、サービスステータスを確認します:
$sudo systemctl status nrdot-collectorヒント
新しい設定を確実に適用するために、設定を変更した後は常にNRDOT Collectorを再起動してください。
データを探す、使う
クエリのサンプルと上位のクエリは、ログイベント(event.name = 'db.server.query_sample'/'db.server.top_query'、db.system.name = 'postgresql')として到着します。メトリクスはpostgresql.*ネームスペースの下に到着します。
New RelicでPostgreSQLデータベースエンティティを見つけるには:
- https://one.newrelic.com > All Capabilities > Databasesに移動します。
- Entity typeドロップダウンからPostgreSQL instanceを選択し、Applyをクリックします。
- エンティティのリストからPostgreSQLデータベースを選択します。