InfluxDB ve Grafana ile SQL Server Monitoring
Bugün sizlere SQL Server’ı açık kaynak sistemleri kullanarak nasıl izleyebileceğiniz- monitör edebileceğinizi anlatacağım. Kullanacağımız open-source kaynaklar olarak InfluxDB ve Grafana kullanıyor olacağız. Öncelikli olarak open-source ürünlerimizi tanıyalım.
InfluxDB Nedir?
GO ile hazırlanmış, gerçek zamanlı analitik çalışmaları, uygulama metriklerinin saklanması ve analizi gibi konularda kullanılan ve yüksek performans / sorgulara hızlı cevap verme gibi üstün özellikleriyle ön plana çıkan açık kaynak bir veritabanı türüdür.
Grafana Nedir?
Grafana, web uygulaması olarak çalışan, açık kaynak kodlu, genel amaçlı pano ve grafik programıdır. Farklı data kaynaklarından aldığı verileri size dashboard halinde göstermesi ile son dönemlerde oldukça popüler olduğunu söyleyebilirim.
İhtiyaçlarımız;
- Bir adet Linux sunucu
- Monitor edeceğiniz SQL Server Sunucusu
Linux Sunucuya InfluxDB ve Grafana Kurulumu
Demo da Ubuntu 16.04 TLS kullanıyor olacağız, hali hazırda Amazon AWS üzerinde bir Linux sunucuya sahibim ve bu sunucu üzerine kurulum işlemlerimizi yapıyor olacağız. Haydi kuruluma başlayalım.
Öncelikli olarak Linux sunucum üzerinde apt-get update çalıştırıp güncel dosyaları sunucuma uyguluyorum.
Resim-1
InfluxDB kurulumunu ise ürünün resmi sitesini kaynak alıyor olacağım. ( https://docs.influxdata.com/influxdb/v1.7/introduction/installation/ )
Aşağıdaki kurulum komutlarını çalıştırıyorum.
Resim-2
Yukarıdaki resimdeki gibi InfluxDB için gerekli repository sunucuya tanımladıktan sonra aşağıdaki kurulum komutlarını çalıştırıyorum.
Resim-3
apt-get install influxdb ile kurulumu tamamladıktan sonrasında influxdb start ediyorum. ( sudo service influxdb start )
Resim-4
InfluxDB’nin kurulumunu tamamladık. systemctl status influxdb.service ile kurulum işlemini teyit ediyorum.
Resim-5
Yukarıdaki resimde görüldüğü gibi influxdb kurulumu başarılı bir şekilde gerçeklemiş. Konfigürasyon dosyasının yolu ise /etc/influxdb/influxdb.conf olduğunu bize bildiriyor. Bu konfigürasyon dosyası üzerinde bazı değişiklikler gerçekleştireceğim. vi kullanarak konfigürasyon dosyasını düzenliyorum.
Resim-6
Konfigürasyon dosyası içerisinde aşağıdaki alanlarda değişiklikleri gerçekleştiriyorum.
[http]
bind-address = “:8088”
enabled = true
Değişiklikleri gerçekleştirdikten sonra kaydedip systemctl restart influxdb.service ile restart ediyorum.
Resim-7
InfluxDB’ye erişim için gerekli ayarlamaları gerçekleştirdik şimdi influxdb içerisinde bir veritabanı ve kullanıcı oluşturacağım. InfluxDB’ye bağlanmak için influx yazmam yeterlidir.
Resim-8
Resimde gördüğünüz gibi InfluxDB’ye eriştim ve artık InfluxQL kullanabileceğimi bana bildiriyor. Create database mshowto_influx ile mshowto_influx adında bir veritabanı oluşturuyorum.
Resim-9
Aşağıdaki komut ile telegraf isimli bir kullanıcı oluşturup gerekli yetkilendirmeyi gerçekleştiriyorum.
CREATE USER telegraf WITH PASSWORD ‘superpa$$word’
GRANT ALL ON mshowto_influx TO telegraf
InfluxDB tarafında gerekli işlemlerimi gerçekleştirdim. Şimdi InfluxDB de var olan verileri görselleştirmek için ihtiyacım olan Grafana kurulumuna geçiyorum.
Grafana Kurulumu
Grafana kurulumu için resmi sitesini kaynak alıyorum. ( http://docs.grafana.org/installation/debian/ ) Aşağıdaki komutlar ile Grafana kurulumunu gerçekleştiriyorum.
wget https://dl.grafana.com/oss/release/grafana_5.4.2_amd64.deb
sudo apt-get install -y adduser libfontconfig
sudo dpkg -i grafana_5.4.2_amd64.deb
Resim-10
sudo apt-get update
sudo apt-get install Grafana
Yukarıdaki kodları çalıştırdıktan sonra Grafana kurulumunu aşağıdaki komut ile doğruluyorum.
Systemctl status Grafana
Resim-11
Grafana kurulumuda tamamlandı ve admin isimli bir varsayılan bir kullanıcı oluşturduğu bilgisini veriyor. Şimdi tek yapmam gereken sunucu üzerine kurduğum influxdb ve Grafana için amazon aws üzerinde gerekli portlar olan 3000 ve 8086’ya izin vererek kurulum işlemlerimi sonlandırıyorum.
Resim-12
Yukarıdaki gibi bir ekran ile karşılaştığınızda kullanıcı adı admin şifre admin olarak giriş yapabilirsiniz. Bu aşamadan sonra sizden admin kullanıcısının şifresinin değiştirilmesini isteyecektir.
Resim-13
Yeni güçlü bir şifre belirledikten sonra save diyerek devam edebilir yada skip ile şifre değiştirmeden devam edebilirsiniz.
Grafana eriştikten sonra hangi veri kaynağınızı kullanacağınızı seçmeniz gerekli bu yüzden add data source kısımına tıklayıp influxdb seçiyoruz.
Resim-14
Yukarıdaki resimde gördüğünüz gibi InfluxDB haricinde çok sayıda veri kaynağından birini seçebilirsiniz. Biz InfluxDB’yi seçiyor ve devam ediyoruz. InfluxDB seçiminden sonra sizden kurulumunu gerçekleştirdiğiniz InfluxDB için gerekli konfigürasyon ayarlarını girmenizi isteyecektir. Biz aşağıdaki değerleri giriyoruz.
URL : http://localhost:8086
database : mshowto_influx
username : telegraf
password : superpa$$word
Bilgilerini girip kayıt ediyoruz. Kayıt işleminden sonra data source ekleme işlemimizi başarılı bir şekilde tamamlıyoruz.
Resim-15
Linux sunucumuz üzerinde bu kadar işlem gerçekleştirdikten sonra telegraf ile SQL Server’ı izlemek için gerekli ayarlamaları yapacağız. Telegraf için ekte paylaşacağım telegraf.exe ve telegraf.conf dosyasını kullanabilirsiniz.
Telegraf.conf Konfigürasyon dosyasının yapılandırılması
Ekte paylaştığım telegraf.conf dosyasını metin editörü ile açıp takip etmek istediğiniz SQL Server bilgilerini girmelisiniz. Fakat bu işlem için öncelikli olarak aşağıdaki kod bloğu ile SQL Server üzerinde telegraf isimli bir kullanıcı oluşturup gerekli yetkilendirmeyi yapmanız gerekmektedir.
USE master;
GO
CREATE LOGIN [telegrafuser] WITH PASSWORD = N’superpa$$word’;
GO
GRANT VIEW SERVER STATE TO [telegrafuser];
GO
GRANT VIEW ANY DEFINITION TO [telegrafuser];
GO
Kullanıcı tanımlamasını gerçekleştirdikten sonra telegraf.conf dosyası içerisinde yer alan OUTPUT PLUGINS bölümünde InfluxDB için erişim bilgilerini girmeniz gerekmektedir.
Resim-16
InfluxDB ayarlamalarını örnekte gösterdiğim gibi yaptıktan sonra INPUT PLUGINS bölümünde de monitör etmek istediğiniz SQL Server erişim bilgilerinizi girmelisiniz.
Resim-17
Servers bölümünde birden fazla sunucu erişmek istediğiniz sunucu bilgisini girebilirsiniz. Bu bilgileri de girdikten sonra son olarak telegraf.exe hazırladığınız konfigürasyon dosyası ile bir Windows servis olarak çalıştırmanız gerekmektedir. Bunun için ise powershell yada komut satırını yönetici olarak çalıştırıp aşağıdaki kod bloğunu kullanabilirsiniz. ( Ekte paylaştığım dosya dizini Program Files klasörü altında olduğunu varsayıyorum.)
Resim-18
Yukarıda gördüğünüz gibi telegraf ile data toplama işlemimiz başarılı bir şekilde çalışmaya başlamıştır. Artık tek yapmamız Grafana üzerinden dashboard yapılandırmasını sağlamak. Bunun içinde genellikle grafananın hazır dashboardlarından birini kullanıyorum. ( https://grafana.com/dashboards/409 ) Hazır dashboardı yüklemek için Grafana üzerinden Import menüsünden 409 numaralı taslağı uyguluyorum.
Resim-19
Dashboard için benden bir data kaynağı seçmemi istiyor. InfluxDB’yi seçiyorum ve import ediyorum. Import işlemi sonrasında aşağıdaki gibi ekran ile SQL Server sunucumu izleyebiliyorum.
Resim-20
Bir yazının daha sonuna geldik, farklı bir içerikte görüşmek üzere.