mysql-otel Helmチャートを使用して、Kubernetes上でMySQL監視をインストールおよび構成できます。オプションで、チャートは監視ユーザーを作成するセットアップジョブを実行することもできます。
重要
チャートは、ネットワーク経由でリモートからMySQLに到達するKubernetesデプロイメントとしてコレクターをデプロイします。その結果、常にTCP経由で接続し(Unixソケットの監視はサポートされていません)、MySQLのメトリクスのみを報告します(MySQLが実行されているマシンのホストやインフラストラクチャのメトリクスは報告しません)。mysql.*を使用すると、リリースごとに1つのMySQLインスタンスをモニターします。1つのリリースから複数のインスタンスをモニターするには、代わりにmysqlMulti.*を使用してください(以下の「1つのリリースから複数のインスタンスをモニターする」を参照してください)。
前提条件
有効なNew Relicのライセンスキー。
MySQL 5.7以降。
Helm 3.0以降、およびKubernetesクラスタにアクセスするように設定された
kubectl。KubernetesクラスタからMySQLホスト(またはRDSエンドポイント)およびポートへのネットワーク接続:
- セルフホスト型:MySQLホストへのルーティングされたパス(VPN、ピアリング、または共有ネットワーク)、ホスト名の場合はDNS解決、およびMySQL側のファイアウォールで接続の実際の送信元IP(ポッドIP自体ではなく、NATゲートウェイである場合があります)を許可する必要があります。
- AWS RDS:VPCピアリング、トランジットゲートウェイ、またはRDSインスタンスとの共有VPC配置であり、RDSセキュリティグループはクラスタのエグレスソースからのMySQLポート(デフォルトでは
3306)を許可する必要があります。
すでに作成済みの監視ユーザー、またはチャートのセットアップジョブが監視ユーザーを作成できるようにするためのMySQL管理者認証情報のいずれかです。以下の監視認証情報の設定を参照してください。
ネームスペースを作成
インストール先のネームスペースを作成します。helm install --create-namespaceは最後のインストール手順でのみネームスペースを作成するため、次の手順でシークレットを作成する前に、ネームスペースが存在している必要があります:
$kubectl create namespace newrelicヒント
以下のすべてのコマンドで-nを渡す必要がないように、現在のkubectlコンテキストのデフォルトのネームスペースとして設定します:
$kubectl config set-context --current --namespace=newrelic監視資格情報の設定
チャートのセットアップジョブにMySQL監視ユーザーを作成させるかどうかを決定し、作成させない場合は、その資格情報をどのように提供するかを決定してください:
Helmの値を設定します
環境に合わせてmysql.topologyを設定してください:
価値 | 説明 |
|---|---|
| ネットワーク経由で到達するセルフホスト型MySQL。 |
| AWS RDS上のMySQLまたはAurora。 |
前の手順で選択した資格情報メソッドに一致するvalues.yamlを使用します:
パラメータ | 説明 |
|---|---|
| New Relicライセンスキー。 |
| ご使用のリージョンのOTLP/gRPCエンドポイントは、 スキームなし の単なる
として指定します:
(米国)または
(EU)。詳細については、 を参照してください。 |
/
| クラスタから到達可能な、MySQLホスト(またはRDSエンドポイント)とポート。 |
| オプション。監視を1つのデータベースに制限します。すべてのデータベースをモニターするには、空のままにします。 |
| オプション。チャートは
ブロックを宣言しておらず、
値を持っていません。レシーバー独自のデフォルトが適用され(
、
)、証明書の検証を伴う暗号化された接続が必要になります。
を使用してこれらをオーバーライドします:
を設定して証明書の検証をスキップするか(接続のセキュリティを弱めるため、自己署名証明書を使用したテスト用のみ)、
を設定してコレクターコンテナにマウントされたCAバンドルを指すようにします。 SSL/TLSの強制を必要とするAmazon RDSインスタンスでは、 。AmazonがCAをローテーションする際にハードコードされたバンドルが古くなるリスクがあるため、チャートには意図的にデフォルトのバンドルが含まれていません。 |
/
| セットアップジョブで使用される
CLIイメージ。デフォルトは公式で積極的に保守されている
であるため、セットアップジョブを有効にする際に追加のイメージフラグは必要ありません。異なるバージョンが必要な場合のみオーバーライドしてください。 |
| オプション。待機時間データに必要な
に対する
も付与します。 |
ヒント
mysql.collectionInterval、mysql.explainMode、statementEvents/querySampleCollection/topQueryCollectionブロック、およびadditionalReceiverConfigエスケープハッチを含む、利用可能なすべての設定オプションについては、チャートのvalues.yamlを参照してください。
(オプション) 1つのリリースから複数のインスタンスをモニターする
1つのリリース内の単一のコレクターポッドから複数のMySQLインスタンス(セルフホストまたはRDS)をモニターするには、mysql.*の代わりにmysqlMulti.enabled: trueを設定します。2つのモードは相互に排他的です:同じリリースでmysql.serverとmysqlMulti.enabled: trueを設定しないでください。
マルチインスタンスモードには、プレーンなユーザー名/パスワードのパスはありません:各インスタンスには、監視資格情報を含む独自のKubernetesシークレットが必要です。セットアップジョブで各監視ユーザーも作成するかどうかを決定します:
パラメータ | 説明 |
|---|---|
| 1つのリリースから複数のインスタンスをモニターするには、
の代わりに
に設定します。デフォルトは
です。 |
|
または
、
と同じ意味であり、このリリースのすべてのインスタンスで共有されます。 |
| モニターするインスタンスの一覧。各エントリには一意の
、
(
のデフォルトは
)、および
が必要です;
はオプションで監視を1つのデータベースに制限します(
と同じ意味です);
が
の場合にのみ、エントリごとに
を追加します。 |
ヒント
スクレイプ設定(収集間隔、TLS、ステートメントイベント、クエリサンプル収集、トップクエリ収集)は、mysqlMulti.databases内のすべてのインスタンスに同一に適用されます。インスタンスごとのオーバーライドはありません。異なる必要があるものにはadditionalReceiverConfigを使用します。セットアップジョブは、リリースごとに1回ではなく、インスタンス(<release>-setup-<name>)ごとに1回実行されます。
Helmチャートをインストールする
New Relic Helm リポジトリを追加します。
bash$helm repo add newrelic https://helm-charts.newrelic.com$helm repo updatevalues.yamlファイルを使用してチャートをインストールします:bash$helm upgrade --install mysql-otel newrelic/mysql-otel \>-n newrelic \>--create-namespace \>-f values.yaml
インストレーションを確認する
セットアップジョブが完了し(有効な場合)、コレクターポッドが実行されていることを確認します:
bash$kubectl get jobs,pods -n newrelic --watchデータが到着していることを確認するには、クエリビルダーでこのクエリを実行してください:
SELECT count(*) FROM MetricWHERE metricName LIKE 'mysql.%'AND instrumentation.provider = 'opentelemetry'SINCE 10 minutes ago
データを探す、使う
データの収集が開始されると、New Relic UIから包括的なMySQLデータベース監視にアクセスできます。
New RelicでMySQLデータベースエンティティを見つけるには:
- one.newrelic.com > All capabilities > Databasesに移動します。
- Entity typeドロップダウンからMySQL instanceを選択し、Applyをクリックします。
- エンティティのリストからMySQLデータベースを選択します。
関連ドキュメント
NRDOTを使用したMySQLモニタリングの概要
New Relicを使用したMySQL監視で利用可能なすべてのインストレーション方法についてご確認ください。
CLIインストール
単一のNew Relic CLIコマンドを使用して、MySQL監視をインストールおよび設定する方法を学びます。
Ansibleのインストール
newrelic.newrelic_installを使用して、MySQL監視を大規模にインストールおよび設定する方法をご確認ください。Ansibleロール。
Chefのインストール
newrelic-install Chefクックブックを使用して、MySQL監視を大規模にインストールおよび設定する方法について説明します。