Prometheus で MySQL のメトリクスを収集するため、MIRACLE LINUX 8.10 に mysqld_exporter
を導入する方法をまとめました。
(2025年7月時点の最新バージョン v0.17.2 を使用)
1. 前提条件
- OS:MIRACLE LINUX 8.10
- MySQL / MariaDB が稼働中
- Prometheus が別サーバに導入済み
- root 権限または
sudo
権限があること
2. mysqld_exporter のインストール
2.1 バイナリのダウンロードと展開
cd /opt
sudo curl -LO https://github.com/prometheus/mysqld_exporter/releases/download/v0.17.2/mysqld_exporter-0.17.2.linux-amd64.tar.gz
sudo tar xvf mysqld_exporter-0.17.2.linux-amd64.tar.gz
sudo mv mysqld_exporter-0.17.2.linux-amd64 mysqld_exporter
3. MySQL ユーザー作成
MySQL に root でログインして以下を実行:
$ mysql -u root -pでログインできます。
CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY '強固なパスワード';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost';
FLUSH PRIVILEGES;
4. 認証情報ファイルを作成
sudo vi /opt/mysqld_exporter/.my.cnf
内容例:
[client]
user=mysqld_exporter
password=強固なパスワード
host=127.0.0.1
port=3306
パーミッション設定:
sudo chown nobody:nobody /opt/mysqld_exporter/.my.cnf
sudo chmod 600 /opt/mysqld_exporter/.my.cnf
5. systemd サービス設定
/etc/systemd/system/mysqld_exporter.service
を作成:
sudo vi /etc/systemd/system/mysqld_exporter.service
内容:
[Unit]
Description=Prometheus MySQL Exporter
After=network.target
[Service]
User=nobody
ExecStart=/opt/mysqld_exporter/mysqld_exporter --config.my-cnf=/opt/mysqld_exporter/.my.cnf
Restart=always
[Install]
WantedBy=multi-user.target
6. サービス起動
sudo systemctl daemon-reload
sudo systemctl enable mysqld_exporter
sudo systemctl start mysqld_exporter
sudo systemctl status mysqld_exporter
curl http://localhost:9104/metrics
でメトリクスが表示されればOK。
7. ファイアウォール設定
Prometheus サーバからアクセス可能にする:
sudo firewall-cmd --add-port=9104/tcp --permanent
sudo firewall-cmd --reload
8. Prometheus 側の設定
Prometheus サーバの prometheus.yml
に以下を追加:
scrape_configs:
- job_name: 'mysql'
static_configs:
- targets: ['<MIRACLE_LINUX_IP>:9104']
Prometheus を再起動し、http://<Prometheusサーバ>:9090/targets
で確認。
9. 動作確認
systemctl status mysqld_exporter
でサービスが稼働中か確認curl http://localhost:9104/metrics
でメトリクス確認