Merhaba arkadaşlar, bugün sizlere MySQL veya MariaDB sunucularınızın performansını, sorgularını ve sağlık durumunu gerçek zamanlı olarak izlemek için harika bir araç olan Percona Monitoring and Management (PMM) kurulumunu anlatacağım. Benim de uzun süredir kullandığım bu araç, sunucularda yaşadığımız gizli performans sorunlarını ortaya çıkarmakta çok başarılı. Eğer veritabanınızın neden yavaşladığını anlamakta zorlanıyorsanız, bu rehber tam size göre.
PMM Nedir ve Neden Kullanmalıyız?
PMM, açık kaynak kodlu ve tamamen ücretsiz bir veritabanı izleme ve yönetim platformudur. İçinde Grafana, Prometheus ve VictoriaMetrics gibi güçlü araçları barındırır. Kurulumu oldukça basittir ve bize, hangi sorgunun ne kadar CPU yediğini, hangi indeksin kullanılmadığını veya bellek tüketiminin nasıl seyrettiğini detaylı grafiklerle sunar. Özellikle yavaş sorgu analizi konusunda benim en büyük yardımcım.
PMM Sunucusu (Server) Kurulumu
İlk adım, izleme verilerini toplayıp bize dashboard'ları sunacak olan PMM Server'ı kurmaktır. Bunun için Docker kullanacağız. Eğer Docker kurulu değilse, öncelikle onu kurmanızı tavsiye ederim. PMM Server'ı çalıştırmak için tek ihtiyacınız olan komut şu:
Bu komut, en güncel PMM 2 sürümünü indirip çalıştıracak ve verileri /srv/pmm-data dizininde saklayacaktır. Tarayıcınızdan sunucunuzun IP adresine gittiğinizde (örn:
), PMM giriş ekranını göreceksiniz. Varsayılan kullanıcı adı ve şifresi admin / admin'dir. İlk girişte şifrenizi değiştirmeniz güvenlik için şart.
İzlenecek MySQL/MariaDB Sunucusuna PMM İstemcisi Kurulumu
Şimdi sıra, izlemek istediğimiz veritabanı sunucusuna PMM Client (istemcisi) kurmaya geldi. Bu işlem, veritabanı metriklerini PMM Server'a gönderecek aracıyı yükler. Öncelikle Percona'nın depo anahtarını ekleyip depoları güncelliyoruz.
Ardından pmm2-client paketini kuruyoruz:
Kurulum tamamlandıktan sonra, istemciyi daha önce kurduğumuz PMM Server'a bağlamamız gerekiyor. Burada 192.168.1.100 yazan yere kendi PMM Server IP'nizi yazmalısınız.
Dikkat Edilmesi Gerekenler
Bu aşamada sık karşılaşılan bir sorun, istemcinin sunucuya erişememesidir. Lütfen güvenlik duvarınızda (UFW veya firewalld) 443 portunun açık olduğundan emin olun. Ayrıca, eğer kendi sertifikanızı kullanmıyorsanız, yukarıdaki komutta --server-insecure-tls parametresini kullanmak zorunda olduğumuzu unutmayın. Bu, kendine imzalı sertifika için bir geçici çözümdür. Üretim ortamlarında mutlaka geçerli bir TLS sertifikası kullanmalısınız.
MySQL/MariaDB İzlemeyi Başlatma
Artık istemci kuruldu ve sunucuya bağlandı. Şimdi, asıl izleme işlemini başlatma zamanı. PMM istemcisine, "şuradaki MySQL servisini izle" komutunu vereceğiz. Bu komut için veritabanına bağlanacak bir kullanıcıya ihtiyacımız var. PMM için özel bir kullanıcı oluşturmanızı şiddetle tavsiye ederim.
MySQL/MariaDB içinde şu şekilde bir kullanıcı oluşturun:
Şimdi terminale dönüp, pmm-admin aracılığıyla izlemeyi ekleyelim. Burada mysql servis adını ve bağlantı bilgilerini veriyoruz.
Dashboard'ları Kullanma ve Optimizasyon
Her şey tamam! Artık PMM Server arayüzüne gidip (örn:
), sol menüden "Dashboard"ları seçebilirsiniz. Karşınıza onlarca hazır panel gelecek. Benim en sık baktıklarım:
MySQL Overview: Genel sağlık durumu.
MySQL InnoDB Metrics: InnoDB motorunun detaylı istatistikleri.
MySQL Query Analytics: Bu panel bir harika! Hangi sorgunun ne kadar sürede çalıştığını, ne kadar satır etkilediğini ve full-scan yapıp yapmadığını gösterir. Performans optimizasyonunun anahtarı burada.
Bu dashboard'lar sayesinde, "sunucu neden yavaş?" sorusuna artık tahminle değil, veriyle cevap verebileceksiniz. Örneğin, Query Analytics'te sürekli yavaş çıkan bir sorgu görürseniz, onu optimize etmek veya indeks eklemek için harekete geçebilirsiniz.
Umarım bu rehber faydalı olmuştur arkadaşlar. PMM, özellikle birden fazla veritabanı sunucusunu merkezi olarak izlemek isteyenler için bulunmaz bir nimet. Ben kendi ortamlarımda hem fiziksel hem de bulut sunucularım için kullanıyorum ve memnuniyetle tavsiye ederim.
Siz bu tarz izleme çözümleri olarak başka neler kullanıyorsunuz? Ya da PMM kurulumunda takıldığınız bir nokta oldu mu? Aşağıya yorumlarınızı yazabilirsiniz, birlikte çözelim.
PMM, açık kaynak kodlu ve tamamen ücretsiz bir veritabanı izleme ve yönetim platformudur. İçinde Grafana, Prometheus ve VictoriaMetrics gibi güçlü araçları barındırır. Kurulumu oldukça basittir ve bize, hangi sorgunun ne kadar CPU yediğini, hangi indeksin kullanılmadığını veya bellek tüketiminin nasıl seyrettiğini detaylı grafiklerle sunar. Özellikle yavaş sorgu analizi konusunda benim en büyük yardımcım.
İlk adım, izleme verilerini toplayıp bize dashboard'ları sunacak olan PMM Server'ı kurmaktır. Bunun için Docker kullanacağız. Eğer Docker kurulu değilse, öncelikle onu kurmanızı tavsiye ederim. PMM Server'ı çalıştırmak için tek ihtiyacınız olan komut şu:
Bash:
docker run -d \
-p 80:80 \
-p 443:443 \
--name pmm-server \
--restart always \
-v /srv/pmm-data:/srv \
percona/pmm-server:2
Bu komut, en güncel PMM 2 sürümünü indirip çalıştıracak ve verileri /srv/pmm-data dizininde saklayacaktır. Tarayıcınızdan sunucunuzun IP adresine gittiğinizde (örn:
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
Şimdi sıra, izlemek istediğimiz veritabanı sunucusuna PMM Client (istemcisi) kurmaya geldi. Bu işlem, veritabanı metriklerini PMM Server'a gönderecek aracıyı yükler. Öncelikle Percona'nın depo anahtarını ekleyip depoları güncelliyoruz.
Bash:
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
sudo apt-get update
Ardından pmm2-client paketini kuruyoruz:
Bash:
sudo apt-get install -y pmm2-client
Kurulum tamamlandıktan sonra, istemciyi daha önce kurduğumuz PMM Server'a bağlamamız gerekiyor. Burada 192.168.1.100 yazan yere kendi PMM Server IP'nizi yazmalısınız.
Bash:
sudo pmm-admin config --server-url=https://192.168.1.100:443 --server-insecure-tls
Bu aşamada sık karşılaşılan bir sorun, istemcinin sunucuya erişememesidir. Lütfen güvenlik duvarınızda (UFW veya firewalld) 443 portunun açık olduğundan emin olun. Ayrıca, eğer kendi sertifikanızı kullanmıyorsanız, yukarıdaki komutta --server-insecure-tls parametresini kullanmak zorunda olduğumuzu unutmayın. Bu, kendine imzalı sertifika için bir geçici çözümdür. Üretim ortamlarında mutlaka geçerli bir TLS sertifikası kullanmalısınız.
Artık istemci kuruldu ve sunucuya bağlandı. Şimdi, asıl izleme işlemini başlatma zamanı. PMM istemcisine, "şuradaki MySQL servisini izle" komutunu vereceğiz. Bu komut için veritabanına bağlanacak bir kullanıcıya ihtiyacımız var. PMM için özel bir kullanıcı oluşturmanızı şiddetle tavsiye ederim.
MySQL/MariaDB içinde şu şekilde bir kullanıcı oluşturun:
SQL:
CREATE USER 'pmm'@'localhost' IDENTIFIED BY 'GucluBirSifreBuraya' WITH MAX_USER_CONNECTIONS 10;
GRANT SELECT, PROCESS, REPLICATION CLIENT, RELOAD, BACKUP_ADMIN ON . TO 'pmm'@'localhost';
FLUSH PRIVILEGES;
Şimdi terminale dönüp, pmm-admin aracılığıyla izlemeyi ekleyelim. Burada mysql servis adını ve bağlantı bilgilerini veriyoruz.
Bash:
sudo pmm-admin add mysql --username=pmm --password=GucluBirSifreBuraya --service-name=MySQL-Prod-Sunucu1
Her şey tamam! Artık PMM Server arayüzüne gidip (örn:
Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.
MySQL Overview: Genel sağlık durumu.
MySQL InnoDB Metrics: InnoDB motorunun detaylı istatistikleri.
MySQL Query Analytics: Bu panel bir harika! Hangi sorgunun ne kadar sürede çalıştığını, ne kadar satır etkilediğini ve full-scan yapıp yapmadığını gösterir. Performans optimizasyonunun anahtarı burada.
Bu dashboard'lar sayesinde, "sunucu neden yavaş?" sorusuna artık tahminle değil, veriyle cevap verebileceksiniz. Örneğin, Query Analytics'te sürekli yavaş çıkan bir sorgu görürseniz, onu optimize etmek veya indeks eklemek için harekete geçebilirsiniz.
Umarım bu rehber faydalı olmuştur arkadaşlar. PMM, özellikle birden fazla veritabanı sunucusunu merkezi olarak izlemek isteyenler için bulunmaz bir nimet. Ben kendi ortamlarımda hem fiziksel hem de bulut sunucularım için kullanıyorum ve memnuniyetle tavsiye ederim.
Siz bu tarz izleme çözümleri olarak başka neler kullanıyorsunuz? Ya da PMM kurulumunda takıldığınız bir nokta oldu mu? Aşağıya yorumlarınızı yazabilirsiniz, birlikte çözelim.