AWS RDS MySQLインスタンス用のNRDOT Collectorを使用して、MySQL監視をセットアップします。RDS環境には、パフォーマンススキーマの消費者と権限に関する特定の考慮事項があります。
前提条件
インストールする前に、以下のものがあることを確認してください:
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消費者は再起動またはフェイルオーバーのたびにリセットされます。この権限を付与すると、コレクターは再接続時に自動的に再度有効にすることができます;そうでない場合は、再起動のたびに有効化ステートメントを再実行する必要があります。(オプション)接続と権限を確認するには、次を実行します:
bash$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という名前の設定ファイルを作成します:bash$sudo nano /etc/nrdot-collector/mysql-config.yaml前の手順で作成した
mysql-config.yamlファイルに以下の設定を追加します。receivers:nrmysql:endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>"transport: tcpusername: "<YOUR_DB_USERNAME>"password: "<YOUR_DB_PASSWORD>"allow_native_passwords: truecollection_interval: 15sinitial_delay: 1sexplain_mode: procedurestatement_events:digest_text_limit: 4096time_limit: 24hlimit: 500query_sample_collection:max_rows_per_query: 100allowed_comment_keys: [nr_service_guid]top_query_collection:lookback_time: 60max_query_sample_count: 5000top_query_count: 200collection_interval: 60squery_plan_cache_size: 1000query_plan_cache_ttl: 1hallowed_comment_keys: [nr_service_guid]events:db.server.query_sample:enabled: truedb.server.top_query:enabled: truedb.server.query_plan:enabled: trueresource_attributes:db.system.version:enabled: truemetrics:mysql.query.count:enabled: truemysql.query.slow.count:enabled: truemysql.commands:enabled: truemysql.innodb.data_file.io:enabled: trueprocessors:batch:exporters:otlp/newrelic:endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>"headers:api-key: "<YOUR_NEWRELIC_LICENSE_KEY>"compression: gzipretry_on_failure:enabled: trueinitial_interval: 5smax_interval: 30smax_elapsed_time: 300sservice: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ファイルを指すように設定パスを更新します:bash$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.confNRDOT Collectorの設定を検証して、正しくフォーマットされ、適切に機能することを確認します:
bash$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mysql-config.yaml
ヒント
もできます。
- 複数のレシーバーを設定する:1つのコレクターから複数のMySQLインスタンスをモニターするため。
- MySQLデータベースをAPMとリンクする:アプリケーションパフォーマンスとデータベース操作を関連付けます。これにより、どのアプリケーションが特定のデータベースワークロードを生成しているかを正確に確認できます。
- シークレット管理のセットアップ:データベースの認証情報などの機密情報を安全に管理します。これにより、設定ファイルへの機密データのハードコーディングを回避し、監視セットアップのセキュリティを強化できます。
NRDOT Collectorを再起動します
設定を更新した後、NRDOT Collectorサービスを再起動します:
bash$sudo systemctl restart nrdot-collectorヒント
新しい設定を確実に適用するために、設定を変更した後は常にNRDOT Collectorサービスを再起動してください。
コレクターが正常に実行されていることを確認するには、サービスステータスを確認します:
bash$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_*パラメーターを公開しないため、永続的な設定が妨げられます。データベースの再起動やフェイルオーバーのたびに設定がリセットされるため、この消費者は実行時に有効にする必要があります。