AWS RDS MySQLインスタンス用のNRDOT Collectorを使用して、MySQL監視をセットアップします。RDS環境には、パフォーマンススキーマの消費者と権限に関する特定の考慮事項があります。
ガイド付きインストレーション
代わりにNew Relic UIからインストールするには、one.newrelic.com > Integrations & Agents > MySQL (Database 360) に移動してください。このページでは、手動インストレーションについてのみ説明します。
前提条件
インストールする前に、以下のものがあることを確認してください:
NewRelicライセンスキー。
NRDOT CollectorをインストールするホストとRDS MySQLインスタンス間のネットワーク接続。
New Relic OTLPエンドポイントのドキュメントへのネットワーク接続
RDSマスターユーザーの認証情報。
サポートされているMySQLのバージョン、必要な権限、および
performance_schemaの要件については、互換性と前提条件をご覧ください。
NRDOT Collectorのセットアップ
RDSインスタンスに接続できるシステムにNRDOT Collectorをインストールします:
データベースユーザーを構成する
RDS MySQLインスタンスに必要な権限を持つ監視ユーザーを作成します。
- 監視ユーザーを作成するには、マスターユーザーとしてRDSインスタンスに接続し、次を実行します:
CREATE USER '<YOUR_DB_USERNAME>'@'%' IDENTIFIED BY '<YOUR_DB_PASSWORD>';- クエリサンプルとトップクエリを収集するには、監視ユーザーに次の権限を付与します:
GRANT SELECT ON performance_schema.* TO '<YOUR_DB_USERNAME>'@'%'; GRANT SELECT ON *.* TO '<YOUR_DB_USERNAME>'@'%'; GRANT REPLICATION CLIENT ON *.* TO '<YOUR_DB_USERNAME>'@'%'; GRANT PROCESS ON *.* TO '<YOUR_DB_USERNAME>'@'%';- (オプション)New Relicプラットフォームで待機時間データを表示するには、監視ユーザーに次の権限を付与します:
GRANT UPDATE ON performance_schema.setup_consumers TO '<YOUR_DB_USERNAME>'@'%';ヒント
この設定はRDSでは保持されません;events_waits_current消費者は再起動またはフェイルオーバーのたびにリセットされます。この権限を付与すると、コレクターは再接続時に自動的に再度有効にすることができます;そうでない場合は、再起動のたびに有効化ステートメントを再実行する必要があります。
- (オプション)接続と権限を確認するには、次を実行します:
$mysql -h <YOUR_DB_HOST> -P <YOUR_DB_PORT> -u <YOUR_DB_USERNAME> -p -e "SELECT 1;"コマンドがエラーなしで完了した場合、監視ユーザー、ホスト、およびポートはすべて正しいです。
NRDOT Collectorを構成する
MySQL固有の設定でNRDOT Collectorを設定してください。
この設定は、nrmysqlレシーバーのみを使用した必須のMySQL監視に焦点を当てています。
完全な設定
このベースライン設定は、不可欠なメトリクスをキャプチャします。完全なメトリクスカタログを表示するには、設定リファレンスを参照してください。
mysql-config.yamlという名前の設定ファイルを作成します:
$sudo nano /etc/nrdot-collector/mysql-config.yaml- 前の手順で作成した
mysql-config.yamlファイルに以下の設定を追加します。
receivers: nrmysql: endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>" transport: tcp username: "<YOUR_DB_USERNAME>" password: "<YOUR_DB_PASSWORD>" allow_native_passwords: true collection_interval: 15s initial_delay: 1s explain_mode: procedure statement_events: digest_text_limit: 4096 time_limit: 24h limit: 500 query_sample_collection: max_rows_per_query: 100 allowed_comment_keys: [nr_service_guid] top_query_collection: lookback_time: 60 max_query_sample_count: 5000 top_query_count: 200 collection_interval: 60s query_plan_cache_size: 1000 query_plan_cache_ttl: 1h allowed_comment_keys: [nr_service_guid] events: db.server.query_sample: enabled: true db.server.top_query: enabled: true db.server.query_plan: enabled: true resource_attributes: db.system.version: enabled: true metrics: mysql.query.count: enabled: true mysql.query.slow.count: enabled: true mysql.commands: enabled: true mysql.innodb.data_file.io: enabled: true
processors: batch:
exporters: otlp/newrelic: endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>" headers: api-key: "<YOUR_NEWRELIC_LICENSE_KEY>" compression: gzip retry_on_failure: enabled: true initial_interval: 5s max_interval: 30s max_elapsed_time: 300s
service: pipelines: metrics: receivers: [nrmysql] processors: [batch] exporters: [otlp/newrelic] logs: receivers: [nrmysql] processors: [batch] exporters: [otlp/newrelic]ヒント
この設定では、オプションのdatabaseおよびtlsフィールドを省略しています。デフォルトでは、レシーバーは監視ユーザーがアクセスできるすべてのデータベースをモニターし、TLSなしで接続します。ほとんどのAmazon RDS/AuroraインスタンスはSSL/TLSを強制するため、おそらく有効にする必要があります。tlsブロックおよびca_fileセットアップについては、「詳細なインサイトの有効化」を参照してください。
設定パラメーター
次の表は、 nrmysql受信機のキー設定を説明しています。
| パラメータ | 説明 |
|---|---|
<YOUR_DB_HOST> | RDS MySQLエンドポイント。例: mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com |
<YOUR_DB_PORT> | MySQLのポート番号を入力します。デフォルト値は3306です。 |
<YOUR_DB_USERNAME> | データベースユーザーの設定で作成した監視ユーザーのユーザー名を入力します。 |
<YOUR_DB_PASSWORD> | データベースユーザーの設定で作成した監視ユーザーのパスワードを入力します。 |
<YOUR_NEWRELIC_OTLP_ENDPOINT> | New Relic OTLPエンドポイントを入力します。詳細については、New Relic OTLPエンドポイントを参照してください。 |
<YOUR_NEWRELIC_LICENSE_KEY> | New Relicのライセンスキーを入力してください。 |
transport | ネットワーク経由で接続するため、デフォルト値はtcpに設定されています。 |
collection_interval | メトリクススクレイプの間隔を入力します。デフォルト:15s。 |
explain_mode | デフォルト値はinlineに設定されています。監視ユーザーにDML権限を付与せずに書き込みステートメントのクエリプランを収集するには、値をprocedureに設定してください。「書き込みステートメントのクエリプラン」を参照してください。 |
NRDOT Collectorの設定の検証
- 新しい
mysql-config.yamlファイルを指すように設定パスを更新します:
$sudo sed -i 's|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/config.yaml"|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/mysql-config.yaml"|' /etc/nrdot-collector/nrdot-collector.conf- NRDOT Collectorの設定を検証して、正しくフォーマットされ、適切に機能することを確認します:
$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mysql-config.yamlヒント
もできます。
複数のレシーバーを設定する:1つのコレクターから複数のMySQLインスタンスをモニターするため。 MySQLデータベースをAPMとリンクする:アプリケーションパフォーマンスとデータベース操作を関連付けます。これにより、どのアプリケーションが特定のデータベースワークロードを生成しているかを正確に確認できます。 シークレット管理のセットアップ:データベースの認証情報などの機密情報を安全に管理します。これにより、設定ファイルへの機密データのハードコーディングを回避し、監視セットアップのセキュリティを強化できます。
NRDOT Collectorを再起動します
- 設定を更新した後、NRDOT Collectorサービスを再起動します:
$sudo systemctl restart nrdot-collectorヒント
新しい設定を確実に適用するために、設定を変更した後は常にNRDOT Collectorサービスを再起動してください。
- コレクターが正常に実行されていることを確認するには、サービスステータスを確認します:
$sudo systemctl status nrdot-collectorデータを探す、使う
データの収集が開始されると、New Relic UIを通じて包括的なRDS MySQLデータベース監視にアクセスできます。
New RelicでRDS MySQLデータベースエンティティを見つけるには:
- https://one.newrelic.com > All Capabilities > Databasesに移動します。
- Entity typeドロップダウンからMySQL instanceを選択し、Applyをクリックします。
- エンティティのリストからRDS MySQLデータベースを選択します。
Amazon RDSの制限事項
mysql.events_waits_current.timer_waitおよび待機ベースのダッシュボードには、events_waits_currentパフォーマンススキーマ消費者が必須です。mysql8.0RDSパラメーターグループファミリーはperformance_schema_consumer_*パラメーターを公開しないため、永続的な設定が妨げられます。データベースの再起動やフェイルオーバーのたびに設定がリセットされるため、この消費者は実行時に有効にする必要があります。