MariaDB Processlist Kontrol Scripti: Veritabanı İzleme ve Hata Tespiti İçin Temel Çözüm

0 Yanıtlar 2 Görüntülenme
·
Katılımcılar
Konuyu Açan #0
MariaDB'de aktif sorguları ve işlemleri düzenli olarak izlemek, performans sorunlarını tespit etmek ve olası hataları önlemek açısından kritik öneme sahiptir. Bu noktada, otomatik olarak processlist komutunu çalıştırıp sonuçları analiz eden bir script geliştirmek, sistem yöneticilerinin işini büyük ölçüde kolaylaştırabilir.


Bir script yazarak, her belli aralıklarla SHOW PROCESSLIST komutunu çalıştırmak ve sonuçları belirli kriterlere göre filtrelemek, oldukça faydalı olabilir. Örneğin, uzun süredir çalışan ve kaynak tüketimi yüksek olan sorguları tespit etmek için bu scriptler kullanılabilir. Ayrıca, belirli kullanıcılar veya sorgu tipleri bazında da filtreleme yapabilirsiniz.

Basit bir örnekle, Bash ve MySQL client kullanarak şu adımları takip edebilirsiniz:

  1. Scriptte, mysql komut satırı aracılığıyla SHOW PROCESSLIST sorgusunu çalıştırın.
  2. Sonuçları belirli bir süreyle karşılaştırın veya belirli kriterlere göre filtreleyin (örneğin, çalışma süresi 60 saniyeden fazla olan sorguları).
  3. Kritik sorguları, uyarı veya log dosyasına kaydedin veya e-posta ile bildirim gönderin.


İşte temel bir örnek:

KOD
12345678910111213141516171819202122232425
#!/bin/bash

HOST='localhost'
USER='kullanici'
PASSWORD='sifre'
LONG_RUNNING_THRESHOLD=60  # saniye

[b]Uzun süredir çalışan sorguları tespit et[/b]
mysql -h $HOST -u $USER -p$PASSWORD -e "SHOW PROCESSLIST" -sN | while read -r line; do
    # Çalışma süresi, sorgu metni, kullanıcı ve diğer detaylar
    id=$(echo $line | cut -f1)
    user=$(echo $line | cut -f2)
    host=$(echo $line | cut -f3)
    db=$(echo $line | cut -f4)
    command=$(echo $line | cut -f5)
    time=$(echo $line | cut -f6)
    state=$(echo $line | cut -f7)
    info=$(echo $line | cut -f8- -d$'\t')
    
    if [ "$time" -ge "$LONG_RUNNING_THRESHOLD" ]; then
        echo "Uyarı: $id numaralı sorgu $time saniye çalışıyor. Sorgu: $info" >> /var/log/mariadb_long_running.log
        # Ekstra: e-posta veya bildirim gönderilebilir
    fi
done


Bu temel script, uzun süredir çalışan sorguları tespit ederek loglar. Daha gelişmiş analizler veya otomasyonlar için, sorgu karmaşıklığını, kullanıcı bazlı filtrelemeleri veya grafiksel gösterimleri entegre edebilirsiniz.

Soru: Sizler, bu tarz otomatik izleme sistemlerini nasıl yapılandırıyorsunuz? Ya da karşılaştığınız en büyük zorluklar nelerdir?

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi