Kurumsal sistemlerde Windows Server altyapısının ve üzerinde çalışan Microsoft SQL Server veritabanlarının performansını anlık olarak takip etmek, sistem kararlılığı ve sorun tespiti açısından son derece kritiktir.
Bu makalede; sunucu üzerine Grafana kurulumu, izlenecek Windows Server ve MSSQL veritabanı sunucusuna windows_exporter bileşeninin dağıtılması, ardından Grafana arayüzünde Prometheus veri kaynağı (Data Source) tanımlanarak sistem ve veritabanı performans metriklerinin uçtan uca nasıl çekilip görselleştirileceği adım adım ele alınacaktır.
Grafana, farklı kaynaklardan gelen verileri tek bir ekranda görselleştirmeye, izlemeye (monitoring) ve analiz etmeye yarayan açık kaynaklı bir panolama (dashboard) yazılımıdır.
Sistem performansı, sunucu metrikleri, ağ trafiği ve veritabanı durumları gibi zaman serisi (time-series) verilerini grafikler, tablolar ve ısı haritaları ile anlık olarak takip etmenizi sağlar.
Grafana varsayılan olarak kendi dâhili veritabanı olarak SQLite3 kullanır. Dolayısıyla siz herhangi bir harici veritabanı kurmasanız dahi, Grafana kurulum adımları sırasında (paket yüklemesi bittiğinde) SQLite veritabanını ve gerekli tablo şemalarını otomatik olarak oluşturur ve kullanıma hazır hale getirir.
Farklı bir veritabanına kurulum yapılandırılacaksa, Grafana servisini ilk kez başlatmadan önce konfigürasyon dosyasında (/etc/grafana/grafana.ini) veritabanı bağlantı bilgilerini tanımlayabilirsiniz. Servis ilk kez ayağa kalktığında, gösterdiğiniz PostgreSQL veya MySQL veritabanına bağlanır ve gerekli tüm tabloları (migration işlemini) otomatik olarak oluşturur.
Ubuntu üzerinde sıfırdan Grafana kurulumundan başlayalım. İlgili link’ten Download bölümüne tıklanır.

Gelen ekranda OSS bölümüne tıklanır.

Gelen ekranda Grafana seçimi yapılmaktadır.

İlgili kurulum bölümüne gelmiş oluruz.

Hangi işletim sistemi üzerinde kurulum yapacaksak ilgili işletim sistemi seçilmektedir. Ben Linux sunucusu üzerine kurulum yapacağım için Linux işletim sistemini seçiyorum.

Ubuntu işletim sistemini kullandığımız için ilk bölümdeki kodlar çalıştırılır. İlgili linkteki üç komut sırasıyla çalıştırılmaktadır.
Ubuntu Üzerine Grafana Kurulumu

Ubuntu işletim sistemini kullandığımız için Ubuntu and Debian bölümündeki kod sırası ile çalıştırılır.
sudo apt-get install -y adduser libfontconfig1 musl

İkinci komut çalıştırılır.
wget https://dl.grafana.com/grafana-enterprise/release/13.2.0/grafana-enterprise_13.2.0_32077357341_linux_amd64.deb

3. komut çalıştırılır.
sudo dpkg -i grafana-enterprise_13.2.0_32077357341_linux_amd64.deb

Grafana; Apache, Nginx veya başka bir harici web sunucusuna ihtiyaç duymaz. Kendi içinde Go dilinde yazılmış dahili bir web sunucusu barındırır ve varsayılan olarak 3000 portundan doğrudan yayına başlar.
Ancak bu 3 komut paketi indirip sisteme yükler; servisi başlatmak ve otomatik başlatmayı açmak için ardından 2 küçük adım daha atmanız gerekir.
Aşağıdaki komut system dosyalarında değişiklik yapıldığında kullanılır.
sudo /bin/systemctl daemon-reload
Aşağıdaki komut, sunucu restart olduğunda servisin otomatik çalışmasını sağlar.
sudo /bin/systemctl enable grafana-server
Aşağıdaki komut ile servisimizin durumunu kontrol edebiliriz.
systemctl status grafana-server
Kurmuş olduğumuz grafana yapısına bağlanmak için bilgisayar üzerinde herhangi bir arama motorundan sunucuip:3000/login yapısıyla ile rahatlıkla bağlanılabilir.

Grafana giriş ekranı gelmektedir. Default şifre ile giriş yapılmaktadır.

Giriş yaptıktan sonra şifre değiştirme ekranı karşımıza çıkmaktadır. Skip seçeneği ile şifre değiştirme bölümü atlanabilir. Yeni şifremizi belirleyip onaylama işlemi yapılmaktadır.

Grafana ekranına giriş yapılmaktadır.

Windows ve MSSQL metriklerini çekmek için Windows Sunucuya windows_exporter ajanı kurulur.
Aşağıdaki linkten en güncel windows_exporter kurulum dosyasını doğrudan GitHub release sayfasından indirim işlemini gerçekleştiriyoruz.

- Resmi Proje Sayfası: github.com/prometheus-community/windows_exporter/releases
Windows sunucusu üzerinde mssql kolektörünün etkileştirilerek kurulması gerekmektedir.
PowerShell veya CMD ekranını Yönetici olarak (Run as Administrator) açın. Dosyayı indirdiğiniz dizine geçip aşağıdaki komutu çalıştırın:
msiexec /i windows_exporter-0.25.0-amd64.msi ENABLED_COLLECTORS="cpu,cs,logical_disk,net,os,service,system,mssql"
Bu komut; CPU, Ram, Disk ve Ağ metriklerinin yanında MSSQL performans sayaçlarını da toplayacak şekilde servisi başlatır. İndirmiş olduğum .msi uzantısı C:\MSI klasörü altında bulunmaktadır.

Kurulum işlemi başarılı bir şekilde gerçekleşti. Windows sunucusu üzerinde servis ve firewall kontrol işlemi yapılmaktadır. Windows sunucusu üzerinde services.msc çalıştırıp windows_exporter servisinin Running durumda olduğunu doğrulayın.

Ubuntu sunucunuzun Windows’a erişebilmesi için 9182 portuna güvenlik duvarından izin verilmelidir. PowerShell üzerinden şu komutla firewall kuralı açabilirsiniz:
New-NetFirewallRule -DisplayName "Windows Exporter (Prometheus)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 9182

Ubuntu sunucusu üzerinde bulunan Prometheus’a Windows sunucunuzu hedef (target) olarak tanıtın:
sudo nano /etc/prometheus/prometheus.yml
scrape_configs: Satırının en altına şu blokları ekleyin (WINDOWS_SUNUCU_IP alanını Windows makinenizin IP adresiyle değiştirin):
Not: Eğer bu klasör tamamen boşsa veya yoksa Prometheus paketi eksik yüklenmiştir. Tekrar kurmak için:
sudo apt-get update
sudo apt-get install --reinstall prometheus –y
Paketini yükledikten sonra nano ile giriş yapıldıktan sonra tekrardan aşağıdaki komut ile giriş yapılmaktadır.
sudo nano /etc/prometheus/prometheus.yml

scrape_configs: satırının en altına şu blokları ekleyin (WINDOWS_SUNUCU_IP alanını Windows makinenizin IP adresiyle değiştirin) 192.168.1.7 ip adresi windows server’ın ip adresidir. Sizde bu kurulum bölümünde kendi sunucunuzun ip adresinin yazılması gerekmektedir.
Windows Server ve MSSQL Metrikleri
- job_name: 'windows_mssql'
static_configs:
- targets: ['192.168.1.7:9182']

Yapılandırmayı kaydedip (Ctrl+O, Enter, Ctrl+X) Prometheus’u yeniden başlatın:
sudo systemctl restart prometheus
Grafana, doğrudan sunucunuza bağlanmak yerine sunucunuzdaki verileri toplayan servise (genellikle Prometheus, InfluxDB veya Loki) bağlanır.
Grafana arayüzünde sol menüden Connections > Data sources bölümüne gidin. Add data source butonuna tıklayın.


Sunucu metriklerinizi toplayan altyapıyı seçin (Linux/Windows sunucu izleme için çoğunlukla Prometheus seçilir).


HTTP başlığı altındaki Prometheus server URL alanına metrik toplayıcınızın IP ve port adresini girin (Örn: http://PROMETHEUS_IP:9090). Prometheus hangi sunucu üzerinde kurulu ise o sunucunun IP adresi yazılmaktadır.

Varsa parola veya API Anahtarı bilgilerinizi Auth bölümünden doldurun.

Sayfanın en altındaki Save & test butonuna basın. “Data source is working“ uyarısını gördüyseniz bağlantı tamamlanmıştır.


Dashboard ekranına girilir. Data source kısmında eklenen metriklerin geldiği görülmektedir. İlgili data sources kısmını seçtikten sonra sql server metrikleri gelmektedir.

İlgili data source yapısını seçtikten sonra metric kısmından Windows sunucusu ile ilgili metrikler gelmektedir.


Tekrardan data sources kısmına geldikten sonra Mssql server ile ilgili ayarlamaları yapabiliriz.

Gelen ekranda sql server sunucusu ip adresi ve sql server port numarası yazılmaktadır.

Sql server yapımıza bağlanacağımız bir kullanıcı adı ve şifresinin girilmesi gerekmektedir.


Save & test bölümüne tıklanıp yaptığımız işlemler kaydedilir.

İlgili bağlantıyı sağladıktan sonra sql server üzerinde kullanıcının yetkili olduğu veritabanı üzerinde tablomuz gelmiş bulunmaktadır.

Tablomuz üzerinde kaç satır olduğunu bulmak için aşağıdaki metrikler kullanılmaktadır.

Tablomuzda bulunan toplam satır sayısı görülmektedir.

SSMS üzerinden kontrol edildiğinde tablomuzda sadece 2 kaydın olduğu görülmektedir.

Grafana, Prometheus veri kaynağı yapısı ve Windows Exporter bileşimi; Windows Server ve MSSQL veritabanı ortamları için hafif, ölçeklenebilir ve yüksek çözünürlüklü bir izleme çözümü sunar. Bu mimari sayesinde sunucu kaynak kullanımı ve veritabanı performans metrikleri tek bir merkezi panelde toplanarak olası darboğazlar (bottleneck) hızlıca tespit edilebilir.
Başka makalede görüşmek dileğiyle…
De ki: “Şüphesiz benim namazım, ibadetlerim, yaşamım ve ölümüm alemlerin Rabbi olan Allah içindir” En’am Suresi, 162. Ayet