Prometheus と Grafana を使用して MySQL または MariaDB を監視する方法
このページでは
- 前提条件
- MySQL/MariaDB ユーザーのセットアップ
- prometheus-mysqld-exporter のインストール
- MySQL ユーザーを prometheus-mysqld-exporter に追加する
- prometheus-mysqld-exporter エンドポイントを Prometheus に追加する
- MySQL サーバー用の Grafana ダッシュボードのセットアップ
- 結論
MySQL/MariaDB サーバーが適切に動作していることを確認するには、インフラストラクチャに監視を実装する必要があります。これにより、パフォーマンスを最適化し、問題やボトルネックを特定し、データベースが正常であることを確認できます。 Prometheus と Grafana を使用すると、これらを実現し、MySQL サーバーを監視する美しいダッシュボードを作成できます。
このガイドでは、Prometheus と Grafana を使用して MySQL/MariaDB サーバーを監視する方法を学習します。 「prometheus-mysqld-exporter」をセットアップしてメトリクスを生成し、エンドポイント監視を Prometheus サーバーに追加します。その後、MySQL 監視用の新しい Grafana ダッシュボードを作成します。
前提条件
始めるには、次のものが揃っていることを確認してください。
- MySQL/MariaDBサーバーがインストールされている
- 管理者権限を持つ非 root ユーザー
- サーバーにインストールされた Prometheus と Grafana
MySQL/MariaDB ユーザーのセットアップ
MySQL/MariaDB サーバーを監視するには、新しい専用の MySQL ユーザーを作成する必要があります。このユーザーには、すべてのデータベースに対する PROCESS、REPLICATION CLIENT、SELECT などの最小限の権限が与えられます。
このセクションでは、MySQL サーバーを監視するための新しい MySQL ユーザーを作成します。
次のコマンドを使用して、MySQL/MariaDB サーバーにログインします。プロンプトが表示されたら、「root」パスワードを入力します。
sudo mysql -u root -p
次に、次のクエリを実行して、「unix_socket」 認証を持つ新しい MySQL ユーザー 'prometheus' を作成します。このユーザーは、MySQL サーバー内のすべてのデータベースのプロセス、レプリケーション クライアント、および選択を表示する権限を持ちます。
CREATE USER IF NOT EXISTS 'prometheus'@'localhost' IDENTIFIED WITH unix_socket;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'prometheus'@'localhost';
FLUSH PRIVILEGES;
次に、以下のクエリを実行して、MySQL ユーザー 'prometheus@localhost' を確認します。レプリケーション クライアントとして SELECT、PROCESS、および BINLOG MONITOR の権限を持つ「prometheus」ユーザーが表示されます。
SHOW GRANTS FOR 'prometheus'@'localhost';
「quit」 と入力して MySQL/MariaDB サーバーを終了します。
prometheus-mysqld-exporter のインストール
「prometheus-mysqld-exporter」は、MySQL メトリクスのエクスポーターです。 MySQL >= 5.6 および MariaDB >= 10.3 をサポートします。 「prometheus-mysqld-exporter」を使用するには、MySQL サーバーにインストールする必要があります。
この例では、MySQL サーバーは Debian 12 サーバー上で実行されています。デフォルトでは、「prometheus-mysqld-exporter」は公式 Debian リポジトリで利用できるため、APT 経由でインストールします。別のディストリビューションを使用している場合は、GitHub 用に手動でダウンロードしてインストールできます。
まず、以下のコマンドを実行して、Debian パッケージのインデックスを更新します。
sudo apt update
リポジトリが更新されたら、次のコマンドを使用して「prometheus-mysqld-exporter」パッケージをインストールします。 「Y」と入力してインストールを確認します。
sudo apt install prometheus-mysqld-exporter
インストールが完了したら、以下の「systemctl」コマンドを実行して systemd マネージャーをリロードします。
sudo systemctl daemon-reload
次に、以下のコマンドを使用して、「prometheus-mysqld-exporter」サービスを開始して有効にすることができます。これにより、「prometheus-mysqld-exporter」サービスがシステム上で実行され、有効になるはずです。
sudo systemctl enable --now prometheus-mysqld-exporter
MySQL ユーザーを prometheus-mysqld-exporter に追加する
これで、MySQL ユーザーが作成され、「prometheus-mysqld-exporter」がインストールされました。次のステップは、MySQL を「prometheus-mysqld-exporter」構成に追加することです。これを行うと、MySQL サーバーのメトリクスを生成し、デフォルトのポート「9104」でエンドポイントを公開できるようになります。
次の「nano」エディタでファイル「/etc/default/prometheus-mysqld-exporter」を開きます。
sudo nano /etc/default/prometheus-mysqld-exporter
MySQL を「prometheus-mysqld-exporter」と統合するには、「DATA_SOURCE_NAME」環境変数のコメントを解除します。この例では、MySQL ユーザー「prometheus」を使用して、「mysqld.sock」ファイルを通じて MySQL サーバーを監視します。
DATA_SOURCE_NAME="prometheus@unix(/run/mysqld/mysqld.sock)/"
ファイルを保存してエディタを終了します。
次に、以下の「systemctl」コマンドを実行して「prometheus-mysqld-exporter」サービスを再起動し、変更を適用します。次に、ステータスをチェックして、実行されていることを確認します。
sudo systemctl restart prometheus-mysqld-exporter
sudo systemctl status prometheus-mysqld-exporter
以下で「prometheus-mysqld-exporter」が実行されていることがわかります。
最後に、Web ブラウザを開いて http://192.168.10.41:9104/ にアクセスします。これは、「prometheus-mysqld-exporter」のデフォルトのエンドポイントです。構成が成功すると、メトリックが生成され、次のように表示されます。
prometheus-mysqld-exporter エンドポイントを Prometheus に追加する
これで、「prometheus-mysqld-exporter」構成が完了し、メトリクスが生成されました。次に、「prometheus-mysqld-exporter」をエンドポイントとして Prometheus サーバーに追加する必要があります。このガイドに関しては、「prometheus-mysqld-exporter」エンドポイントは「192.168.10.41:9104」で利用できます。
Prometheus サーバーをお持ちでない場合は、「Debian 12 に Prometheus と Node Exporter をインストールする方法」を参照してインストールしてください。
Prometheus サーバーに移動し、「nano」エディターで設定ファイル「/etc/prometheus/prometheus.yml」を開きます。
sudo nano /etc/prometheus/prometheus.yml
「scrape_configs」内に、次のように「prometheus-mysqld-exporter」のエンドポイントを追加します。この例では、「prometheus-mysqld-exporter」は、IP アドレスとポート「192.168.10.41:9104」を使用して「server1」上で実行されています。強い>』。
scrape_configs:
- job_name: server1
static_configs:
- targets: ['192.168.10.41:9104']
labels:
alias: db1
ファイルを保存し、完了したらエディタを終了します。
次に、次の「systemctl」コマンドを実行して「prometheus」サービスを再起動し、変更を適用します。
sudo systemctl restart prometheus
最後に、Prometheus サーバーのダッシュボードを開き、[ステータス > ターゲット] メニューを選択します。 MySQL 監視のエンドポイントである「server1」が表示されていることを確認してください。
MySQL サーバー用の Grafana ダッシュボードのセットアップ
「prometheus-mysqld-exporter」エンドポイントを Prometheus サーバーに追加したら、MySQL サーバー監視用の Grafana ダッシュボードを構築する準備が整いました。このセクションでは、GrafanaLabs 経由で MySQL のダッシュボード監視をインポートします。
Grafana がインストールされていない場合は、「Ubuntu 24.04 に Grafana と Prometheus をインストールする方法」を参照してインストールしてください。
Grafana ダッシュボードで、[ダッシュボード > 新規 > インポート] メニューをクリックします。この例では、MySQL サーバーの監視に GrafanaLabs の Grafana テンプレートを使用します。
Grafana ID 番号をコピーして貼り付け、[ロード] をクリックして確認します。
次に、データ ソースとして「Prometheus」を選択し、「インポート」をクリックします。
成功すると、Prometheus と Grafana を使用した MySQL/MariaDB モニタリングのダッシュボードが表示されます。
結論
おめでとう! Prometheus と Grafana を使用した MySQL/MariaDB サーバーの監視が完了しました。 「prometheus-mysqld-exporter」を使用して MySQL サーバーを監視し、MySQL のメトリクスを生成しました。また、「prometheus-mysqld-exporter」をエンドポイントとして Prometheus サーバーに追加しました。最後に、MySQL サーバーを監視するための Grafana ダッシュボードを作成しました。