SQL Server Açık Kaynak Kodlu Sistemleri İzleme (Monitör)

SQL Server Açık Kaynak Kodlu Sistemleri İzleme (Monitör)


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.

Resim1.png

Resim-1

InfluxDB kurulumunu ise ürünün resmi sitesini kaynak alıyor olacağım. ( Installing InfluxDB OSS | InfluxDB OSS 1.7 Documentation )

Aşağıdaki kurulum komutlarını çalıştırıyorum.

Resim2.png

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.


Resim3.png

Resim-3

apt-get install influxdb ile kurulumu tamamladıktan sonrasında influxdb start ediyorum. ( sudo service influxdb start )

Resim4.png

Resim-4

InfluxDB’nin kurulumunu tamamladık. systemctl status influxdb.service ile kurulum işlemini teyit ediyorum.

Resim5.png

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.

Resim6.png

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.

Resim7.png

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.

Resim8.png

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.



Resim9.png

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. ( Install Grafana on Debian or Ubuntu | Grafana documentation ) 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

Resim10.png

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

Resim11.png

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.

Resim12.png

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.



Resim13.png

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.


Resim14.png

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.

Resim15.png

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.
Resim16.png

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.

Resim17.png

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.)

Resim18.png

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. ( SQL Server Monitoring | Grafana Labs ) Hazır dashboardı yüklemek için Grafana üzerinden Import menüsünden 409 numaralı taslağı uyguluyorum.

Resim19.png

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.


Resim20.png


Kaynak:sqlekibi
Kaynak2: mshowto













 

xezua

Katılımcı Üye
4 Tem 2023
332
97
Misconfiguration
SQL Server Açık Kaynak Kodlu Sistemleri İzleme (Monitör)


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.

Resim1.png

Resim-1

InfluxDB kurulumunu ise ürünün resmi sitesini kaynak alıyor olacağım. ( Installing InfluxDB OSS | InfluxDB OSS 1.7 Documentation )

Aşağıdaki kurulum komutlarını çalıştırıyorum.

Resim2.png

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.


Resim3.png

Resim-3

apt-get install influxdb ile kurulumu tamamladıktan sonrasında influxdb start ediyorum. ( sudo service influxdb start )

Resim4.png

Resim-4

InfluxDB’nin kurulumunu tamamladık. systemctl status influxdb.service ile kurulum işlemini teyit ediyorum.

Resim5.png

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.

Resim6.png

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.

Resim7.png

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.

Resim8.png

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.



Resim9.png

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. ( Install Grafana on Debian or Ubuntu | Grafana documentation ) 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

Resim10.png

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

Resim11.png

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.

Resim12.png

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.



Resim13.png

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.


Resim14.png

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.

Resim15.png

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.
Resim16.png

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.

Resim17.png

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.)

Resim18.png

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. ( SQL Server Monitoring | Grafana Labs ) Hazır dashboardı yüklemek için Grafana üzerinden Import menüsünden 409 numaralı taslağı uyguluyorum.

Resim19.png

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.


Resim20.png


Kaynak:sqlekibi
Kaynak2: mshowto













Eline sağlık .
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.