物理サーバー、仮想マシン、スタンドアロンのインストレーションなどのセルフホスト環境で、NRDOT Collectorを使用してMySQLの監視をセットアップします。
ガイド付きインストレーション
代わりにNew Relic UIからインストールするには、one.newrelic.com > Integrations & Agents > MySQL (Database 360) に移動してください。このページでは、手動インストレーションについてのみ説明します。
前提条件
インストールする前に、以下のものがあることを確認してください:
NewRelicライセンスキー。
MySQLインスタンスへの管理アクセス。
NRDOT CollectorをインストールするホストとMySQLデータベース間のネットワーク接続。
New Relic OTLPエンドポイントのドキュメントへのネットワーク接続
サポートされているMySQLのバージョン、必要な権限、および
performance_schemaの要件については、互換性と前提条件をご覧ください。
NRDOT Collectorのセットアップ
システムにNRDOT Collectorをインストールします:
データベースユーザーを構成する
MySQLデータベースインスタンスに必要な権限を持つ監視ユーザーを作成します。
- 監視ユーザーを作成するには、MySQLデータベースで次のコマンドを実行します:
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>'@'%';- (オプション)接続と権限を確認するには、次を実行します:
$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なしで接続します。特定のデータベースをモニターする場合、またはTLSを有効にする場合(ほとんどのAmazon RDS/Auroraインスタンスで必須)は、「詳細なインサイトの有効化」を参照してください。
設定パラメーター
次の表は、 nrmysql受信機のキー設定を説明しています。
| パラメータ | 説明 |
|---|---|
<YOUR_DB_HOST> | MySQLのホスト名またはIPアドレスを入力してください。 |
<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に設定されています。NRDOT CollectorがMySQLと同じホストで実行されている場合は、代わりにunixを使用してUnixドメインソケット経由で接続してください。 |
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から包括的なMySQLデータベース監視にアクセスできます。
New RelicでMySQLデータベースエンティティを見つけるには:
https://one.newrelic.com > All Capabilities > Databasesに移動します。
Entity typeドロップダウンからMySQL instanceを選択し、Applyをクリックします。
エンティティのリストからMySQLデータベースを選択します。
NRDOTを使用してMySQLデータベース監視をセットアップした後:
- データベースのメトリクスを視覚化するカスタムダッシュボードを作成する
- クリティカルデータベースパフォーマンス閾値のアラートを設定する