• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

AWS RDSでのPostgreSQL監視のためのNRDOTのインストールと設定

|View as Markdown (English)

AWS RDS PostgreSQLインスタンス用のNRDOT Collectorを使用して、PostgreSQL監視をセットアップします。RDS環境には、拡張機能とパラメーターグループに関する特定の考慮事項があります。

前提条件

インストールする前に、以下のものがあることを確認してください:

NRDOT Collectorのセットアップ

RDSインスタンスに接続できるシステムにNRDOT Collectorをインストールします:

データベースユーザーと権限を設定する

RDS PostgreSQLインスタンスに必要な権限を持つ監視ユーザーを作成します。

監視ユーザーと権限を作成するには:

  1. マスターユーザーとしてRDSインスタンスに接続します:

    bash
    $
    psql --host=<YOUR_RDS_ENDPOINT> --dbname=postgres --port=5432 --username=<YOUR_MASTER_USERNAME>
  2. 監視ユーザーを作成する:

    CREATE USER <YOUR_DB_USERNAME> WITH LOGIN PASSWORD '<YOUR_DB_PASSWORD>';
  3. 必要に応じて、監視ユーザーロールのメンバーシップを付与する:

  • 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=<YOUR_RDS_ENDPOINT> --port=5432 --dbname=<YOUR_DATABASE_NAME> --command '\conninfo'
    $
    psql --username=<YOUR_DB_USERNAME> --host=<YOUR_RDS_ENDPOINT> --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=<YOUR_RDS_ENDPOINT> --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=<YOUR_RDS_ENDPOINT> --port=5432 --dbname=<YOUR_DATABASE_NAME> \
    >
    -c "SELECT * FROM pg_stat_statements LIMIT 1;" && echo "pg_stat_statements OK"

    各コマンドがエラーなしで完了した場合、監視ユーザー、ホスト、およびポートはすべて正しいです。

NRDOT Collectorを構成する

RDS PostgreSQL固有の設定でNRDOT Collectorを設定してください。

この設定は、nrpostgresqlレシーバーのみを使用した基本的なPostgreSQL監視に焦点を当てています。

完全な設定

このベースライン設定は、必須のメトリクスを取得します。完全なメトリクスカタログを確認するには、設定リファレンスを参照してください。

  1. postgresql-config.yamlという名前の設定ファイルを作成します:

    bash
    $
    sudo nano /etc/nrdot-collector/postgresql-config.yaml
  2. 前の手順で作成したpostgresql-config.yamlファイルに以下の設定を追加します。

    postgresql-config.yaml
    1
    receivers:
    2
    nrpostgresql:
    3
    endpoint: "mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com:5432"
    4
    username: "newrelic"
    5
    password: "YOUR_PASSWORD"
    6
    databases:
    7
    - YOUR_DATABASE_NAME
    8
    # top_query/query_sample scan pg_stat_statements/pg_stat_activity cluster-wide
    9
    # regardless of the databases list above; on RDS/Aurora, exclude reserved
    10
    # databases the monitoring user can never reach.
    11
    exclude_databases:
    12
    - rdsadmin
    13
    collection_interval: 15s
    14
    events:
    15
    db.server.top_query:
    16
    enabled: true
    17
    db.server.query_sample:
    18
    enabled: true
    19
    db.server.query_plan:
    20
    enabled: true
    21
    top_query_collection:
    22
    max_rows_per_query: 1000
    23
    top_n_query: 200
    24
    collection_interval: 60s
    25
    allowed_comment_keys: [nr_service_guid]
    26
    query_sample_collection:
    27
    max_rows_per_query: 1000
    28
    allowed_comment_keys: [nr_service_guid]
    29
    resource_attributes:
    30
    db.system.version:
    31
    enabled: true
    32
    # Metrics needed for the out-of-the-box dashboard but disabled by default:
    33
    # see "Available metrics" below for the full default-on/default-off breakdown.
    34
    metrics:
    35
    postgresql.database.locks:
    36
    enabled: true
    37
    postgresql.deadlocks:
    38
    enabled: true
    39
    postgresql.function.calls:
    40
    enabled: true
    41
    postgresql.query.conflicts:
    42
    enabled: true
    43
    postgresql.sequential_scans:
    44
    enabled: true
    45
    postgresql.temp.io:
    46
    enabled: true
    47
    postgresql.temp_files:
    48
    enabled: true
    49
    processors:
    50
    batch:
    51
    batch/metrics:
    52
    send_batch_size: 8192
    53
    send_batch_max_size: 8192
    54
    timeout: 10s
    55
    exporters:
    56
    otlp/newrelic:
    57
    endpoint: "https://otlp.nr-data.net:4318"
    58
    headers:
    59
    api-key: "YOUR_LICENSE_KEY"
    60
    compression: gzip
    61
    sending_queue:
    62
    enabled: true
    63
    sizer: bytes
    64
    queue_size: 100_000_000
    65
    num_consumers: 10
    66
    batch:
    67
    sizer: bytes
    68
    max_size: 1_000_000
    69
    min_size: 0
    70
    flush_timeout: 5s
    71
    retry_on_failure:
    72
    enabled: true
    73
    initial_interval: 5s
    74
    max_interval: 30s
    75
    max_elapsed_time: 300s
    76
    service:
    77
    telemetry:
    78
    metrics:
    79
    level: none
    80
    pipelines:
    81
    metrics:
    82
    receivers: [nrpostgresql]
    83
    processors: [batch/metrics]
    84
    exporters: [otlp/newrelic]
    85
    logs:
    86
    receivers: [nrpostgresql]
    87
    processors: [batch]
    88
    exporters: [otlp/newrelic]

    設定パラメーター

    次の表は、 nrpostgresql受信機のキー設定を説明しています。

    パラメータ説明
    <YOUR_RDS_ENDPOINT>RDSインスタンスのエンドポイントのホスト名を入力します。
    <YOUR_DB_PORT>PostgreSQLデータベースのポートを入力します。
    <YOUR_DB_USERNAME>データベースのユーザー名を入力してください。
    <YOUR_DB_PASSWORD>データベースのパスワードを入力してください。
    <YOUR_DATABASE_NAME>監視するデータベースの名前を入力します。
    databases統計を収集するデータベースのリストです。デフォルト:[](すべての非テンプレートデータベース)。メトリクスにのみ適用されます。クエリサンプルとトップクエリはこのリストを無視し、exclude_databasesによってのみフィルタリングされます。
    exclude_databases統計、クエリサンプル、トップクエリから除外されるデータベース。デフォルト:[]。監視ユーザーがアクセスできないマネージドサービスの内部データベース(rdsadminなど)には、これを使用してください。
    <YOUR_NEWRELIC_OTLP_ENDPOINT>New Relic OTLPエンドポイントを入力します。詳細については、New Relic OTLPエンドポイントを参照してください。
    <YOUR_NEWRELIC_LICENSE_KEY>New Relicのライセンスキーを入力してください。
    collection_intervalメトリクススクレイプの間隔を入力します。デフォルト:15s。

ヒント

もできます。

  • 複数のレシーバーの構成:1つのコレクターから複数のPostgreSQLインスタンスをモニターします。
  • PostgreSQLデータベースをAPMとリンクする:アプリケーションパフォーマンスをデータベース操作と関連付けるため。これにより、どのアプリケーションが特定のデータベースワークロードを生成しているかを正確に確認できます。
  • 書き込みステートメントのクエリプラン:監視ユーザーに書き込みアクセス権を付与せずに、ロックまたは書き込みステートメントのクエリプランを収集します。
  • シークレット管理のセットアップ:データベースの認証情報などの機密情報を安全に管理します。これにより、設定ファイルへの機密データのハードコーディングを回避し、監視セットアップのセキュリティを強化できます。

NRDOT Collectorの設定の検証

  1. 新しいpostgresql-config.yamlファイルを指すように設定パスを更新します:

    bash
    $
    sudo sed -i 's|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/config.yaml"|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/postgresql-config.yaml"|' /etc/nrdot-collector/nrdot-collector.conf
  2. NRDOT Collectorの設定を検証して、正しくフォーマットされ、適切に機能することを確認します:

    bash
    $
    sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/postgresql-config.yaml

NRDOT Collectorを再起動します

コレクターを設定した後、NRDOT Collectorサービスを再起動して変更を適用します:

bash
$
sudo systemctl restart nrdot-collector

コレクターが正常に実行されていることを確認するには、サービスステータスを確認します:

bash
$
sudo systemctl status nrdot-collector

ヒント

新しい設定を確実に適用するために、設定を変更した後は常にNRDOT Collectorを再起動してください。

データを探す、使う

クエリのサンプルと上位のクエリは、ログイベント(event.name = 'db.server.query_sample'/'db.server.top_query'、db.system.name = 'postgresql')として到着します。メトリクスはpostgresql.*ネームスペースの下に到着します。

New RelicでRDS PostgreSQLデータベースエンティティを見つけるには:

  1. https://one.newrelic.com > All Capabilities > Databasesに移動します。
  2. Entity typeドロップダウンからPostgreSQL instanceを選択し、Applyをクリックします。
  3. エンティティのリストからRDS PostgreSQLデータベースを選択します。

セルフホスト環境での計装

New Relicを使用して、セルフホスト環境でPostgreSQL監視をセットアップする方法について説明します。

メトリクスリファレンス

NRDOT Collectorによって収集される利用可能なメトリクスについて説明します。

トラブルシューティングガイド

PostgreSQL監視に関する一般的な問題のトラブルシューティング方法について説明します。

Copyright © 2026 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.