InfluxDB ve Grafana ile SQL Server Monitoring

By | 10 April 2019

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

[http]

bind-address = “:8088”
enabled = true

Konfigürasyon dosyası içerisinde aşağıdaki alanlarda değişiklikleri gerçekleştiriyorum.

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.

telegraf İndirme

TAGs: grafana, grafana dashboard, influx, InfluxDB, open source sql server monitor, sql, SQL Server, sql server grafana, sql server izleme, sql server monitor, telegraf

Share

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.