MySQL Monitoring Kurulumu: Prometheus MySQL Exporter ve Grafana
Bu rehberde MySQL ve MariaDB sunucularınızı merkezi olarak izlemeyi öğreneceksiniz.
Performans sorunlarını erken tespit edeceksiniz.
Gerçek zamanlı metrik takibi yapabileceksiniz.
📌 Teknik Özet
Bu rehber MySQL ve MariaDB monitoring kurulumunu anlatır.
Amaç darboğazları ve kaynak tüketimini izlemektir.
İzlenen adımlar:
- MySQL Exporter kurulumu
- Yetkili kullanıcı oluşturma
- Prometheus entegrasyonu
- Grafana panel kurulumu
- Script ile otomasyon
🚀 Bu Rehberde Ne Öğreneceksiniz?
- MySQL Exporter kurulumunu
- Güvenli kullanıcı yapılandırmasını
- Prometheus hedef tanımlamayı
- Grafana dashboard kullanımını
- Otomatik kurulum scriptlerini
🛠️ Gereksinimler
Başlamadan önce:
- Ubuntu sunucu (tr1-db01)
- MySQL veya MariaDB servisi
- Prometheus ve Grafana
- SSH ve sudo erişimi
✅ Yöntem 1: Manuel Kurulum
1️⃣ Prometheus Kullanıcısı Oluşturma
Bu komut izole sistem kullanıcısı oluşturur.
sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus
2️⃣ MySQL Exporter Kurulumu
- Bu komut en güncel sürümü indirir.
curl -s https://api.github.com/repos/prometheus/mysqld_exporter/releases/latest \
| grep browser_download_url \
| grep linux-amd64 \
| cut -d '"' -f 4 \
| wget -qi -
tar xvf mysqld_exporter*.tar.gz
sudo mv mysqld_exporter-*.linux-amd64/mysqld_exporter /usr/local/bin/
sudo chmod +x /usr/local/bin/mysqld_exporter
3️⃣ MySQL Exporter Kullanıcısı Oluşturma
- Bu adım izleme için özel kullanıcı oluşturur.
mysql -u root -p
CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'GucluSifre123!';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost';
FLUSH PRIVILEGES;
EXIT;
4️⃣ Kimlik Bilgisi Dosyası Oluşturma
- Bu dosya güvenli bağlantı sağlar.
sudo nano /etc/.mysqld_exporter.cnf
[client]
user=mysqld_exporter
password=GucluSifre123!
sudo chown root:prometheus /etc/.mysqld_exporter.cnf
5️⃣ systemd Servisi Oluşturma
- Bu servis Exporter’ı sürekli çalıştırır.
sudo nano /etc/systemd/system/mysql_exporter.service
[Unit]
Description=Prometheus MySQL Exporter
After=network.target
[Service]
User=prometheus
Group=prometheus
Restart=always
ExecStart=/usr/local/bin/mysqld_exporter \
--config.my-cnf /etc/.mysqld_exporter.cnf \
--collect.global_status \
--collect.info_schema.innodb_metrics \
--collect.auto_increment.columns \
--collect.processlist \
--collect.global_variables \
--web.listen-address=0.0.0.0:9104
[Install]
WantedBy=multi-user.target
6️⃣ Servisi Başlatma
- Bu komut servisi aktif eder.
sudo systemctl daemon-reload
sudo systemctl enable mysql_exporter
sudo systemctl start mysql_exporter
✅ Prometheus Yapılandırması
Yedek Alma
- Bu komut yapılandırmayı korur.
cp /etc/prometheus/prometheus.yml \
/etc/prometheus/prometheus.yml.backup
MySQL Hedefi Ekleme
- Bu ayar metrik toplamayı sağlar.
sudo nano /etc/prometheus/prometheus.yml
scrape_configs:
- job_name: mysql_db01
static_configs:
- targets: ['192.168.1.60:9104']
labels:
alias: rabisu-mysql-01
Prometheus Yeniden Başlatma
sudo systemctl restart prometheus
✅ Yöntem 2: Script ile Otomatik Kurulum
Hedef Sunucu Scripti
- Bu script Exporter’ı otomatik kurar.
wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Target_Config.sh
chmod +x DO_MySQL_MariaDB_Target_Config.sh
./DO_MySQL_MariaDB_Target_Config.sh
Prometheus Scripti
- Bu script hedefleri otomatik ekler.
wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Prometheus_Config.sh
chmod +x DO_MySQL_MariaDB_Prometheus_Config.sh
./DO_MySQL_MariaDB_Prometheus_Config.sh
✅ Grafana Dashboard Kurulumu
Grafana Panel
http://sunucu-ip:3000
Veri Kaynağı Ekleme
-
Configuration > Data Sources
-
Add Data Source
-
Prometheus seçin
URL: http://localhost:9090
Dashboard Import
- Hazır panel dosyası:
wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_Grafana-Mysql-MariaDB_Monitoring.json
📊 İzlenebilen Metrikler
- Bu yapı ile:
-
Sorgu gecikmesi
-
CPU kullanımı
-
Bağlantı sayısı
-
Replikasyon durumu
-
Disk I/O
takip edilir.
🧩 Sorun Giderme
Servis Kontrolü
sudo systemctl status mysql_exporter
Port Kontrolü
ss -tulnp | grep 9104
Firewall Açma
sudo ufw allow from PROMETHEUS_IP to any port 9104
❓ Sıkça Sorulan Sorular
1. Exporter root yetkisi ister mi? Hayır, özel kullanıcı yeterlidir.
2. Birden fazla veritabanı izlenir mi? Evet, targets listesine eklenir.
3. Script mi manuel mi önerilir? Kurumsal sistemlerde manuel önerilir.
4. SSL kullanılır mı? Evet, reverse proxy ile desteklenir.
5. Performansı etkiler mi? Etkisi düşüktür.
🎯 Sonuç Bu rehberle: MySQL monitoring kurdunuz Merkezi izleme sağladınız Erken hata tespiti yaptınız Sistem kararlılığını artırdınız
Rabisu Bulut altyapısıyla bu yapıyı hemen kurabilir, veritabanlarınızı güvenle izleyebilirsiniz. 🚀