データベース監視 · 1 min read · Sep 15, 2025

PrometheusとGrafanaでMySQLまたはMariaDBを監視する方法

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

次に、以下のクエリを実行して、’ prometheus ‘という新しいMySQLユーザーを’ unix_socket ‘認証で作成します。このユーザーは、MySQLサーバーのすべてのデータベースでprocessesreplication clients、およびselectを見る権限を持ちます。

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 ‘を確認します。’ prometheus ‘ユーザーがSELECT、PROCESS、BINLOG MONITORの権限を持つレプリケーションクライアントとして表示されます。

SHOW GRANTS FOR 'prometheus'@'localhost';

MySQL/MariaDBサーバーから退出するには、’ quit ‘と入力します。

check mysql user

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

update repo

リポジトリが更新されたら、以下のコマンドで’ prometheus-mysqld-exporter ‘パッケージをインストールします。インストールを確認するために’ Y ‘を入力します。

sudo apt install prometheus-mysqld-exporter

install prometheus-mysqld-exporter

インストールが完了したら、以下の’ systemctl ‘コマンドを実行してsystemdマネージャーをリロードします。

sudo systemctl daemon-reload

次に、以下のコマンドで’ prometheus-mysqld-exporter ‘サービスを開始および有効にできます。これにより、’prometheus-mysqld-exporter’サービスがシステムで実行され、有効になります。

sudo systemctl enable --now prometheus-mysqld-exporter

prometheus-mysqld-exporterへのMySQLユーザーの追加

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’が実行中であることが表示されます。

setup prometheus-mysql-exporter

最後に、ウェブブラウザを開いてhttp://192.168.10.41:9104/にアクセスします。これは’ prometheus-mysqld-exporter ‘のデフォルトエンドポイントです。設定が成功していれば、メトリクスが生成され、以下のように表示されます。

generated metric

Prometheusへのprometheus-mysqld-exporterエンドポイントの追加

prometheus-mysqld-exporter ‘の設定が完了し、メトリクスが生成されたので、次に’ prometheus-mysqld-exporter ‘をPrometheusサーバーのエンドポイントとして追加する必要があります。このガイドでは、’ prometheus-mysqld-exporter ‘エンドポイントは’ 192.168.10.41:9104 ‘で利用可能です。

Prometheusサーバーがない場合は、Debian 12にPrometheusとNode Exporterをインストールする方法を参照してください。

Prometheusサーバーに移動し、設定ファイル’ /etc/prometheus/prometheus.yml ‘を’ nano ‘エディタで開きます。

sudo nano /etc/prometheus/prometheus.yml

scrape_configs ‘内に、’ prometheus-mysqld-exporter ‘のエンドポイントを以下のように追加します。この例では、’ prometheus-mysqld-exporter ‘は’ server1 ‘で実行されており、IPアドレスとポートは’ 192.168.10.41:9104 ‘です。

scrape_configs:  

- job_name: server1  
  static_configs:  
  - targets: ['192.168.10.41:9104']  
    labels:  
      alias: db1

ファイルを保存して、完了したらエディタを終了します。

次に、以下の’ systemctl ‘コマンドを実行して’ prometheus ‘サービスを再起動し、変更を適用します。

sudo systemctl restart prometheus

最後に、Prometheusサーバーダッシュボードを開き、’ Status > Targets ‘メニューを選択します。MySQL監視のエンドポイントである’ server1 ‘が表示されていることを確認してください。

MySQLサーバーのGrafanaダッシュボードの設定

‘prometheus-mysqld-exporter’エンドポイントをPrometheusサーバーに追加した後、MySQLサーバー監視用のGrafanaダッシュボードを構築する準備が整いました。このセクションでは、GrafanaLabsを介してMySQLの監視用ダッシュボードをインポートします。

Grafanaがインストールされていない場合は、Ubuntu 24.04にGrafanaとPrometheusをインストールする方法を参照してください。

Grafanaダッシュボードで、’ Dashboard > New > Import ‘メニューをクリックします。この例では、MySQLサーバーの監視のためにGrafanaLabsからGrafanaテンプレートを使用します。

Grafana ID番号をコピーして貼り付け、’ Load ‘をクリックして確認します。

import dashboard

次に、データソースとして’ Prometheus ‘を選択し、’ Import ‘をクリックします。

import dashboard

成功すると、PrometheusとGrafanaを使用したMySQL/MariaDB監視用のダッシュボードが表示されます。

mysql monitoring dashboard

結論

おめでとうございます!PrometheusとGrafanaを使用してMySQL/MariaDBサーバーの監視を完了しました。’prometheus-mysqld-exporter’を使用してMySQLサーバーを監視し、MySQLのメトリクスを生成しました。また、’prometheus-mysqld-exporter’をPrometheusサーバーのエンドポイントとして追加しました。最後に、MySQLサーバーを監視するためのGrafanaダッシュボードを作成しました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。