Zabbix İle MSSQL Server Monitoring

Kurum içerisinde MSSQL server kullanıyor ve monitor etmek istiyorsanız zabbix kullanabilirsiniz. Bunun için aşağıdaki işlemleri yapmanız ve sonrasında grafana üzerinde bir dashboard yapıp kullanmanız yeterli olacaktır.

Zbx_monitor isminde bir SQL User oluşturun. Ve Securables tabında View Server State ve View Any Definition yetkilerine yetkilerine izin verin (GRANT).

2. Msdb veritabanı içerisinde yer alan;

  • Sysjobschedules
  • Sysjobhistory
  • sysjobs

Tablolarına okuma yetkisi verin.

Eğer yetki sql server management studio üzerinden GUI olarak verecekseniz zbx_monitor kullanıcısını göremeyebilirsiniz. Bunun nedeni kullanıcı oluşturulurken kullanıcı özelliklerinde User Mapping tabında msdb veritabanının seçilmemesidir. Seçip devam edelim.

Yukarıdaki gibi 3 tabloyada aynı işlemi yapalım. Eğer tsql kullanarak yapacak isek;

  1. GRANT SELECT ON OBJECT::msdb.dbo.sysjobs TO zbx_monitor
  2. GRANT SELECT ON OBJECT::msdb.dbo.sysjobservers TO zbx_monitor
  3. GRANT SELECT ON OBJECT::msdb.dbo.sysjobactivity TO zbx_monitor
  4. GRANT EXECUTE ON OBJECT::msdb.dbo.agent_datetime TO zbx_monitor

Komutlarını kullanabiliriz.

3. Microsoft ODBC driver driverini zabbix sunucusu içerisine kurmalıyız. Bunun için zabbix sunucusuna ssh ile bağlanıp;

https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15

Linkinde bulunan dökümanlara göre işlem yapabiliriz. Örneğin ben docker üzerinde alpine linux containerı içerisinde zabbxi server barındırıyorum. Odbc driverini yüklemek için;

docker container exec -it -u root zabbix-server bash

Komutu ile container içerisine ulaşıyorum.

Alpine linux üzerinde kurulum apk komutu ile yapılmaktadır. Apk add komutunu kullanabiliriz.

Öncelikle curl kuralım

Apk add curl

curl -O https://download.microsoft.com/download/8/6/8/868e5fc4-7bfe-494d-8f9d-115cbcdb52ae/msodbcsql18_18.1.2.1-1_amd64.apk

curl -O https://download.microsoft.com/download/8/6/8/868e5fc4-7bfe-494d-8f9d-115cbcdb52ae/mssql-tools18_18.1.1.1-1_amd64.apk

Komutlarını çalıştıralım.

sudo apk add –allow-untrusted msodbcsql18_18.1.2.1-1_amd64.apk

sudo apk add –allow-untrusted mssql-tools18_18.1.1.1-1_amd64.apk

Komutları ile kurulumu yapalım.

Odbc konfigürasyonu ise;

/etc/odbc.ini

Dosyası içerisine

Odbcinst.ini dosyası içerisine ise

İçeriği kontrol edilmelidir.

4. İlgili template dosyasını ki yaml dosyasıdır https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mssql_odbc?at=release/6.2 linkinden zabbix versiyonunuza göre indirin.

Sonrasında zabbix server içerisine import edin. İmport etmek için

Configuration – templates – import

yolunu kullanabilirsiniz.

5. Zabbix server üzerinde macro değerlerini değiştirelim.

Bunun için

{$MSSQL.DSN} – bu değer odbc.ini dosyası içerisinde yazmış olduğunuz en baştaki tanımlama bilgisidir. Ben [mssql] yazmıştım. O değeri buraya yazıyorum.

{$MSSQL.USER} – zbx_monitor

{$MSSQL.PASSWORD} – zbx_monitor parolasını yazalım.

Sonrasında update ile ekranı kapatalım.

Test ettiğimizde ki

Yukarıdaki ekranda aşağıdaki gibi bir ekran gelecektir.

Ve sonunda artık ilgili template dosyasını host objem içinde seçtikten sonra zabbix agent servisini sql sunucumda restart ediyorum. Akabinde verilerin gelmesi için biraz zaman gerekli. Eğer işlemleri yaptınız Items alanında hiçbir obje yok ise yine de bekleyin zabbix gerekli verileri çektikten sonra Items alanı kendiliğinden gelecektir.

Grafana tarafında örnek bir dashboard yapıp izlemeye başlayabiliriz.

Sonraki yazımızda da sql server metriklerinin grafana üzerine yansıtıp dashboard örneği hazırlayalım.

Author: idelibalta

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir