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;
- GRANT SELECT ON OBJECT::msdb.dbo.sysjobs TO zbx_monitor
- GRANT SELECT ON OBJECT::msdb.dbo.sysjobservers TO zbx_monitor
- GRANT SELECT ON OBJECT::msdb.dbo.sysjobactivity TO zbx_monitor
- 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;
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
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.