Merhaba;

Bugün Zabbix hakkında yazdığım ilk yazının devamı niteliğinde Zabbix konusunda bilgi aktarmaya devam edeceğim. İlk yazımın linkine https://www.linkedin.com/pulse/zabbix-izleme-yaz%C4%B1l%C4%B1m%C4%B1-b%C3%B6l%C3%BCm-1-sarav-asiye-yigit/ adresinden ulaşabilirsiniz.

Anlatacağım ilk konu, Zabbix ile Grafana’nın entegrasyonu olacak. Grafana, Prometheus ve Graphite ölçümlerinden (“metrics”), günlüklere (“log”) ve uygulama verilerine kadar her şeyi içeren gözlemlenebilirlik gösterge tabloları oluşturmak için kullanılan dünyanın en popüler teknolojisi haline geldi dersek yanlış olmayacaktır. Grafana Enterprise, mevcut veri kaynaklarınızı alan ve bunları doğrudan Grafana’ya eklemenize izin veren kurumsal eklentilere erişim içerir. Bu, tüm verileri daha kolay ve daha etkili bir şekilde görselleştirerek karmaşık, pahalı izleme çözümlerinizden ve veritabanlarınızdan en iyi şekilde yararlanabileceğiniz anlamına gelir. Grafana açık kaynak ile Grafana Enterprise arasındaki farkları https://grafana.com/products/enterprise/ adresinden inceleyebilirsiniz. Elbette Grafana Enterprise’ın inanılmaz etkileyici özellikleri var. https://grafana.com/grafana/download adresinden, “Enterprise Edition”ı indirebilirsiniz. “Enterprise Edition”ı ücretsiz olarak kullanabilirsiniz. “Open Source Edition” ile aynı özellikleri sağlıyor ve istediğinizde, “Enterprise plugin”lerin desteğini de içerecek şekilde “Enterprise feature set”e yükseltme yapabiliyorsunuz.

Ben kurulumu RHEL 8.2 sistemime yapacağım. Kurulumu oldukça kolay. Aşağıdaki iki komut ile kurulum yapıyorsunuz.

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-7.3.7-1.x86_64.rpm

sudo yum install grafana-enterprise-7.3.7-1.x86_64.rpm

Sistem üzerinde kurulum çıktılarına bakmak istersiniz diye aşağıya ilgili çıktıları ekledim.

[root@shiina ~]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-7.3.7-1.x86_64.rpm

–2021-01-30 23:15:35– https://dl.grafana.com/enterprise/release/grafana-enterprise-7.3.7-1.x86_64.rpm

Resolving dl.grafana.com (dl.grafana.com)… 199.232.194.217, 199.232.198.217, 2a04:4e42:4d::729, …

Connecting to dl.grafana.com (dl.grafana.com)|199.232.194.217|:443… connected.

HTTP request sent, awaiting response… 200 OK

Length: 54647210 (52M) [application/x-redhat-package-manager]

Saving to: ‘grafana-enterprise-7.3.7-1.x86_64.rpm’

 

grafana-enterprise-7.3.7-1.x86_64 100%[===========================================================>] 52.12M 4.83MB/s   in 12s

2021-01-30 23:15:49 (4.50 MB/s) – ‘grafana-enterprise-7.3.7-1.x86_64.rpm’ saved [54647210/54647210]

[root@shiina ~]# sudo yum install grafana-enterprise-7.3.7-1.x86_64.rpm

Updating Subscription Management repositories.

Last metadata expiration check: 2:07:57 ago on Sat 30 Jan 2021 09:08:12 PM +03.

Dependencies resolved.

======================================================================================================================================

Package                               Architecture              Version                    Repository                       Size

======================================================================================================================================

Installing:

grafana-enterprise                    x86_64                    7.3.7-1                    @commandline                     52 M

 

Transaction Summary

======================================================================================================================================

Install 1 Package

Total size: 52 M

Installed size: 173 M

Is this ok [y/N]: y

Downloading Packages:

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

Preparing       :                                                                                                             1/1

Installing      : grafana-enterprise-7.3.7-1.x86_64                                                                           1/1

Running scriptlet: grafana-enterprise-7.3.7-1.x86_64                                                                           1/1

### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd

sudo /bin/systemctl daemon-reload

sudo /bin/systemctl enable grafana-server.service

### You can start grafana-server by executing

sudo /bin/systemctl start grafana-server.service

POSTTRANS: Running script

Verifying       : grafana-enterprise-7.3.7-1.x86_64                                                                           1/1

Installed products updated.

Pipe does not exist (/var/run/fapolicyd/fapolicyd.fifo)

Perhaps fapolicy-plugin does not have enough permissions

or fapolicyd is not running…

Installed:

grafana-enterprise-7.3.7-1.x86_64

Complete!

[root@shiina ~]#

“more /etc/grafana/grafana.ini” komutuyla Grafana’nın konfigürasyon dosyasına bakabilirsiniz. Ardından Grafana servisini “systemctl start grafana-server” komutuyla başlatabilir ve “systemctl status grafana-server” komutuyla servisin durumuna bakabilirsiniz. Aşağıda yine RHEL 8.2 sistemindeki çıktıyı görebilirsiniz.

[root@shiina ~]# systemctl start grafana-server

[root@shiina ~]# systemctl status grafana-server

● grafana-server.service – Grafana instance

Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; disabled; vendor preset: disabled)

Active: active (running) since Sat 2021-01-30 23:23:12 +03; 11s ago

Docs: http://docs.grafana.org

Main PID: 337315 (grafana-server)

Tasks: 11 (limit: 75164)

Memory: 27.3M

CGroup: /system.slice/grafana-server.service

Bu işlemlerin ardından “Grafana”nın güzeller güzeli GUI’sine Şekil 1.’de olduğu gibi bağlandık. Varsayılan portu, 3000, varsayılan kullanıcı ismi ve şifresi admin/admin. Sayfaya ilk giriş yaptığınızda yeni şifre tanımlaması yapmanızı istiyor.

No alt text provided for this image

Şekil 1. Grafana GUI.

Zabbix’i, Grafana’ya veri kaynağı olarak göstereceğimiz için, Grafana’ya Zabbix plugin’i eklememiz gerekiyor. https://grafana.com/grafana/plugins/alexanderzobnin-zabbix-app?pg=plugins&plcmt=featured-undefined&src=grafana_plugin_list sayfasından ilgili plugin’i görebiliriz. RHEL 8.2 makinemize Zabbix plugin’i yükleyelim. Grafana’yı sisteme yükledikten sonra, grafana-cli komutumuz aşağıdaki gibi geliyor.

[root@shiina ~]# which grafana-cli

/usr/sbin/grafana-cli

[root@shiina ~]# grafana-cli

NAME:

Grafana CLI – A new cli application

USAGE:

grafana-cli [global options] command [command options] [arguments…]

VERSION:

7.3.7

AUTHOR:

Grafana Project <hello@grafana.com>

COMMANDS:

plugins Manage plugins for grafana

admin   Grafana admin commands

help, h Shows a list of commands or help for one command

GLOBAL OPTIONS:

–pluginsDir value      Path to the Grafana plugin directory (default: “/var/lib/grafana/plugins”) [$GF_PLUGIN_DIR]

–repo value            URL to the plugin repository (default: “https://grafana.com/api/plugins”) [$GF_PLUGIN_REPO]

–pluginUrl value       Full url to the plugin zip file instead of downloading the plugin from grafana.com/api [$GF_PLUGIN_URL]

–insecure              Skip TLS verification (insecure) (default: false)

–debug                 Enable debug logging (default: false)

–configOverrides value Configuration options to override defaults as a string. e.g. cfg:default.paths.log=/dev/null

–homepath value        Path to Grafana install/home path, defaults to working directory

–config value          Path to config file

–help, -h              show help (default: false)

–version, -v           print the version (default: false)

[root@shiina ~]#

“grafana-cli plugins install alexanderzobnin-zabbix-app” komutuyla Zabbix plugin’i yükleyebiliriz. Aşağıya ekran çıktısını ekledim.

[root@shiina ~]# grafana-cli plugins install alexanderzobnin-zabbix-app

installing alexanderzobnin-zabbix-app @ 4.1.2

from: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/4.1.2/download

into: /var/lib/grafana/plugins

✔ Installed alexanderzobnin-zabbix-app successfully

Restart grafana after installing plugins . <service grafana-server restart>

[root@shiina ~]#

“Grafana-server”ı yeniden başlatmamız gerekiyor.

[root@shiina ~]# systemctl restart grafana-server

[root@shiina ~]#

Şekil 2.’de Zabbix plugin’in geldiğini görüyoruz. Ekranda gördüğünüz gibi “Enable” butonuna basmamız yeterli.

No alt text provided for this image
No alt text provided for this image

Şekil 2. Zabbix plugin.

Şimdi, Grafana’ya, Zabbix’i veri kaynağı (“data source”) olarak girmemiz gerekiyor. Grafana’nın “configuration” menüsünden, “Data Sources”ı seçmemiz gerekiyor. Seçtikten sonra Şekil 3’deki adımlar karşınıza geliyor.

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

Şekil 3. Zabbix veri kaynağının Grafana’ya eklenmesi.

Şekil 3.’de Zabbix’i veri kaynağı olarak eklediğimizi ve Zabbix API’sinin doğrulandığını görebiliriz. Doğrudan DB Bağlantısı özelliği ile, geçmiş verileri doğrudan Zabbix veritabanından sorgulamak için mevcut SQL veri kaynağının kullanılmasına izin verilir. Bu yöntem, özellikle geniş zaman aralıklarında Zabbix API’den veri çekmekten daha hızlıdır. Zabbix sunucum, MySQL veritabanına sahip. MySQL veritabanını da veri kaynağı olarak ekledim, Şekil 4. Veritabanını veri kaynağı olarak eklerken, veritabanına Grafana sunucudan uzak erişim olması gerekiyor. Aksi halde, “t=2021-01-31T02:16:28+0300 lvl=eror msg=”query error” logger=tsdb.mysql err=”Error 1130: Host ‘10.1.1.73’ is not allowed to connect to this MySQL server””a benzer bir mesaj alırsınız.

No alt text provided for this image

Şekil 4. Zabbix MySQL veritabanının veri kaynağı olarak Grafana’ya eklenmesi.

Bu işlemden sonra, Zabbix veri kaynağına, “Direct DB Connection” özelliğini aktif hale getirerek, tanımladığınız “MySQL Zabbix”i seçebiliyorsunuz, Şekil 5.

No alt text provided for this image

Şekil 5. “Zabbix” veri kaynağında “Direct DB Connection”ın etkinleştirilmesi.

Şimdi ise, ilk gösterge panelimizi “dashboard” oluşturacağız. Grafana’nın soldaki menüsünden “+” işaretini tıkladığınızda, “Create”in altından “Dashboard”u seçmeniz yeterli, Şekil 6. Örnek olması açısından Zabbix sunucunun “CPU idle time” ve “CPU utilization” değerlerini ekledim. Kendinize çok şık grafikler, göstergeler yapabilirsiniz. Menülerden görüldüğü gibi yapılandırabileceğimiz çok özellik var.

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

Şekil 6. Gösterge paneli eklenmesi. “Zabbix_Server” isimli gösterge panelini görüyorsunuz.

Örneğin aşağıda, Şekil 7., grafik değilde değer gösterir şekilde gösterge panelini değiştirdim. “CPU user time” ekledim.

No alt text provided for this image

Şekil 7. Değer gösteren gösterge paneli oluşturulması.

Aşağıda, Zabbix_Server’a eklediğim iki panel görülmektedir.

No alt text provided for this image

Şekil 8. Gösterge paneli eklenmesi.

Gördüğünüz gibi, Grafana ile Zabbix’in entegrasyonuyla çok fazla ek olanağa sahip olabilirsiniz. Ayrıca resmi Grafana Laboratuvarlarından eklentiler, ek paneller de indirilebilirsiniz. Grafana’daki hemen hemen her şey düzenlenebilir, yapılandırılabilir. Görselleştirme özelleştirilebilir, bu da şık ve güzel grafikler oluşturmamıza olanak sağlar. Ayrıca yeni kullanıcılar ekleyebilir ve izinleri de kısıtlayabiliriz.

Bu yazımda, Zabbix ve Grafana entegrasyonunu genel anlamda aktardım. Bundan sonrası sizin bu yapıları kurarak menülerinde dolaşıp, neler yapabildiğinizi keşfetmeye kalıyor. Sonraki yazımda, Zabbix ile ELK Stack yapısını nasıl izleyeceğimizi aktarıyor olacağım.

Sarav Asiye Yiğit – 31 Ocak 2021 – Pazar

Kaynakça:

https://blog.zabbix.com/configuring-grafana-with-zabbix/8007/

https://grafana.com/

https://graphiteapp.org/

https://alexanderzobnin.github.io/grafana-zabbix/configuration/