Sunucuları ve sistemleri izlememize imkan veren ve açık kaynak olarak kullanılabilen Zabbix yazılımının nasıl kurulduğuna ve temel kullanım senaryolarına buradaki yazımda değinmiştim. Bu yazımda ise biraz daha detay kullanım senaryolarına değineceğim.
Problemleri İnceleme
Sistemlerimizde her zaman anlık problemleri takip etmeyiz. Bazı sorunların tespitinin yapılabilmesi için geçmişe dönük incelemelere ihtiyaç duyulabilir. Bu incelemeleri yapabileceğimiz adreslerden ilki Monitoring > Problems sekmesi.
Bu sekmede belirli filtreler uygulayıp sisteminiz genelindeki problemler üzerinde incelemeler yapabilirsiniz. Aşağıdaki filtrelerin ne anlama tek tek açıklamaya gerek olduğunu düşünmüyorum. Merak ettiğiniz bir filtre olursa yorum kısmından belirtebilirsiniz.

Geçmişe dönük izleme yapabileceğimiz bir başka konum ise Monitoring > Latest data. Problems kısmında aslında bizim görüntülediklerimiz trigger tanımlarının tetiklenmiş olduğu değerledi. Burada ise host içerisinde tanımlanmış olan itemler özelinde incelemelerde bulunabiliyoruz. Listelenen Itemların sağ taraflarında bulunan Graph butonuna tıklarsanız seçtiğiniz item tarafından geçmiş dönük alınmış verileri görüntüleyebilirsiniz.


Eğer sağ üstte bulunan View as kısmını Graph seçeneğinden Values seçeneğine getirirseniz, alınan değerleri liste halinde gösterecektir. 500 latest values seçeneği ise item tarafından toplanan son 500 değeri listeler.

Ağ Haritası Oluşturma
Zabbix’in beğendiğim özelliklerinden bir tanesi de ağ haritası oluşturmamıza izin vermesidir. Bu özellik sayesinde network topolojinizi görsel olarak oluşturabilir ve takibini yapabilirsiniz. Yeni bir ağ haritası oluşturmak için öncelikle Monitoring > Maps seçmesine giriyoruz ve Sağ üstte Bulunan Create map seçeneğine tıklıyoruz.

Açılan menüde Map sekmesinde konfigürasyonlarımızı yaptıktan sonran Addbutonuna tıklayarak düzenlemeye geçebiliriz. Bu ayarları daha sonra Monitoring > Maps sekmesinde bulunan haritaların sağ taraflarında bulunan Properties butonuna tıklayarak da düzenleyebilriz. Sharing sekmesinde ise bu haritanın kimler tarafından görüntülenebileğini seçebiliriz.


Yukarıda görmüş olduğunuz gibi 800×600 piksel çalışma ortamımız açıldı. Buraya yen bir nesne eklemek için sol üstteki Map element kısmının yanında bulunan Add butonunu kullanıyoruz.

Ekleyeceğimiz nesnenin ne iş yapacağına ne şekilde görüneceğine hatta etiketlerinin nerede konumlandırılacağına karar verebileceğimiz bir ekran açılıyor.
TypeNesnemizin tipini seçtiğimiz bölümdür. Varsayılan fotmatında gelir; Host, Host Group, Trigger ve Map tanımları yapabiliriz. Altındaki ayarlar da buna göre değişecektir.LabelNesnemizi tanımlayan bir etikettir. Bunu istersek map ayarlarındanHost label typekısmınıCustom labelseçeneği ile düzenleyerek macro tanımları ile kullanabiliriz.Label locationEtiketin bulunacağı konumu seçmemizi sağlar.Applicationsadece host tanımlarında bulunanApplication‘lardaki triggerların problemlerini göstermesini sağlar.IconsHangi durumda hangi ikonun gösterileceğini seçebiliriz. Zabbix bize burada bulunan ikonların haricinde ikon ve gif ekleme imkanı veriyor.Coordinatessimetri takıntısı olanlar için (Mesela ben! ) nesnelerin yerlerini piksel piksel ayarlamamıza imkanı veriyor.URLskısmı ise üzerine tıklandığında listelenen bir URL listesi oluşturmamızı sağlıyor.
Ben neler yapılabileceğini göstermek amacıyla aşağıda bir sistem haritası hazırladım. Burada gördüğünüz gibi kabinet olarak konumlandırılmaya imkan verildiği gibi topolojik olarak da tasarımlar yapılmasını mümkün kılıyor.

Haritamızı çok güzel bir şekilde özene bezene hazırladık. Fakat göz önünde olmadığı sürece hiçbir işe yaramaz. O halde sıra geldi oluşturduğumuz haritayı Dashboard’a eklemeye. Dashboard’da düzenleme moduna geçiyoruz ve Add widget butonunu tıklıyoruz. Type olarak Map seçip bu widgeta bir isim veriyoruz. En altta bulunan Map seçeneği ile de biraz önce oluşturduğumuz haritayı seçip Add butonun tıklıyoruz. Tebrik ederim bu kadar!


Objelerden herhangi birinde bir sorun olduğunda ise aşağıdaki gibi görünecektir. Tabi ki isterseniz objelerden birinde hata alındığında başka türlü şekil veya gif olarak görünmesini sağlayabilirsiniz. Her şey size kalmış.

Discovery Rule Tanımlama
Discovery Rule kullanarak envanterinize yeni eklediğiniz sunucuları tek tek izleme ekranına eklemek zorunda kalmadan otomatize bir şekilde zabbix ekranlarına eklenmesini sağlayabilirsiniz. Sadece ekleme işlemi değil, hangi host group’a dahil olacak, hangi template’ler kullanılacak bunları seçmenizi sağlıyor. Discovery tanımları nasıl yapılır şimdi ona bakalım.
Öncelikle Configuration > Discovery sekmesinde sağ üstte Create discovery rule butonunu tıklıyoruz.

Bu kısım, sunucularınızın hangi kriterlere göre nerede taranacağını tanımladığımız yerdir.
IP rangekısmına aralarına virgül koyarak birden fazla IP aralığı tanımı yapabilirsiniz.Update intervalKontrol sıklığını belirtir. Burada belirttiğimiz IP aralığını saatte bir kontrol yapılmasını istediğimizi söyledik.ChecksBu aralıkta bir sunucu bulursa hangi parametre veya tanımın kontrol edileceğini seçtiğimiz kısımdır.Device uniqueness criteriatekilliğin neye göre belirleneceğini belirttiğimiz kısımdır. Burada seçilen kriter eğer sistemde bulunursa üzerinde yeni bir işlem yapılmayacaktır.Host nameveVisible nameHost tanımlarında ilgili kısımların nasıl doldurulacağını seçtiğimiz kısımdır.

Checks bölümünde Add butonuna tıkladıktan sonra nasıl bir kontrol yapmak istediğimizi giriyoruz. Ben burada system.uname parametresinin kontrol edilmesini istedim çünkü tanımlamaları yaparken eğer bulduğum sunucu bir Linux işletim sistemine sahipse uname çıktısından bunu yakalamak istiyorum. ( Bu kısımda girilen keylerin önceden agent üzerinde veya item olarak tanımlanmış olması gerekmektedir. Yoksa Zabbix agent bu parametrenin ne olduğunu anlayamayacaktır. system.uname varsayılan gelen bir parametredir.) Checks kısmında yer alan bilgiler aksiyon tanımları yaparken “Received Values” olarak karşımıza çıkacak.

Yaptığım son tanımlamaları aşağıda görebilirsiniz. Burada tekillik kriterine IP adresini, hostname ve visible name kısımlarına ise Zabbix agenttan çekilecek olan hostname bilgisinin yazılmasını istedik. Eğer sunucularda Zabbix agent konfigürasyon dosyasında HostnameItem=system.hostname parametresini aktif ederseniz hostname bilgisi direk sunucunun kendisinden gelecek ve ayrıca bir tanım yapmanıza gerek kalmayacaktır.

Discovery rule tanımlamamız bu kadar. Şimdi aksiyon alma vakti. Hatırlayacaksınız, Trigger aksiyon tanımlarını yaparken aşağıdaki sayfaya girmiştik. Şimdi ise Trigger actions başlığına tıklayarak Discovery actions sayfasına giriyoruz ve Create action butonuna tıklıyoruz.


Actions sekmesinde keşfedilmiş olarak gelen cihazlarımız arasında filtre uyguluyoruz. Yukarıda oluşturduğumuz “Zabbix Network” Discovery kuralına uyan sunucular içerisinde Linux parametresi geçen sunucuları seçiyoruz.


Son durum aşağıdaki gibi oldu. Burada yine triggerlar için action tanımı yaptığımız gibi önceliklendirme yapabiliyoruz.

Operations sekmesinde, uyguladığımız filtrelere uyan cihazlara nasıl bir konfigürasyon yapılacağını seçiyoruz. Ben burada önce ekleneceği host gruplarını belirledim, daha sonra envanter bilgilerinin otomatik çekilebilmesi için inventory mode seçeneğini otomatiğe çektim. Eklenen sunucuların izlenebilmesi için gerekli olan parametrelerin ayarlanabilmesi için bir template ayarladım. Eğer istersek Send message seçeneği ile belirli bir kullanıcı veya kullanıcı grubuna mail de atabiliriz.





Son tanımlamalarımız aşağıdaki gibi oldu. Artık envanterimize eklenen yeni sunucu ve cihazlarımız eğer belirlediğimiz kurallara uyuyorsa aşağıdaki konfigürasyonlar uygulanarak izlenmeye başlanacaktır.

Kullanıcı Grupları
Her kullanıcı bir gruba ait olmalıdır. Bu gruplar sayesinde kullanıcı yetkilerini ve giriş yöntemlerini düzenleyebiliriz. Yeni bir kullanıcı eklemek için Administration > User Groups sekmesine gidiyoruz ve sağ üstte bulunan Create user group butonuna tıklıyoruz.

Açılan User Group sekmesinde oluşturacağımız grubun ismini yazıyoruz ve ekleyeceğimiz kullanıcıları seçiyoruz. Frontend access kısmında bu gruba ait kullanıcıların Zabbix arayüzüne erişimi olup olmayacağı hakkında seçim yapabiliriz.

Önemli gördüğüm noktalardan birisi olarak Permissions kısmında oluşturulan bu gruba sahip kullanıcıların ne gibi yetkilerinin olduğunu seçiyoruz. Burada verebileceğimiz yetkiler;
Read-writesunucu parametreleri üzerinde değişiklik yapabilir ve aldığı değerleri görüntüleyebilir.Readparametrelerin aldığı değerleri görüntüleyebilir fakat değişiklik yapamazDenyBu grupta bulunan sunucuların verilerin görüntülenmesi ve değiştirilmesi engellenir.Include subgroupsZabbix de Host group’larda/karakteri ile alt gruplamalar tanımlayabilir, bu sayede bir host group ağacı oluşturabiliriz. Fakat bu gruplamalar sadece yazım gruplamasıdır. Birkaç yer dışında etki eden bir yer bulunmamaktadır. (Zabbix 5.0 öncesinde gruplama\karakteri ile yapılmaktaydı.)

Tag Filter sekmesini kullarak da belirli bir host group içerisinde belirli etikete sahip sunuculara bu kullanıcı grubuna sahip kullanıcıların erişebilmesini sağlayabiliriz.

Kendi Template’imizi Oluşturma
Template’ler aracılığı ile kolay bir şekilde birden fazla sunucuya item, trigger, macro, etiket vb. tanımları tek kalemden yapabiliriz. Şimdiye kadar hep önceden hazır olarak gelen template’lerden bahsettik. Zabbix hazır template’leri kullanmamıza izin vermesinin yanında kendi template’lerimizi de oluşturmamıza imkan verir. Kendi tamplate’imizi oluşturmak için öncelikle Configuration > Templates sekmesinden Create Template butonuna basıyoruz.

İlk sekmesinde Template’imizin temel bilgilerini giriyoruz.

Linked Templates sekmesinde ilişkilendireceğimiz template’leri seçiyoruz. İlişkilendirdiğimiz template’lerde bulunan tüm item ve trigger’ların hepsinin bu template içerisinde de bulunması için kullanmaktayız.

Tags ve Macros sekmelerinde ise Etiket ve Macro tanımlamaları yapabiliriz.


Sıra geldi item ve triggerları oluşturduğumuz template’e eklemeye. Eklemek istediğimiz item’ı seçiyoruz ve copy butonuna tıklıyoruz.

Gelen ekranda Target Type kısmında Templates seçeneğini seçiyoruz. Target kısmına da oluşturmuş olduğumuz template ismini yazıyoruz ve Copy butonuna tıklıyoruz.

İşlem bu kadar. Eklediğimiz item artık yeni template’imizde artık. Oluşturduğumuzda sunucularda kullanılabilir durumda. İstersek oluşturduğumuz template’i diğer kullanıcılar ile de paylaşabiliriz.

Kullanıcı Ekleme
Tetiklenen triggerların mail atabilmesi için öncelikle kullanıcı tanımlarını yapmamız gerekmektedir. Yeni bir kullanıcı oluşturmak için Administration > Users sekmesinden Create User butonuna tıklıyoruz.

User sekmesinde;
Aliaskullanıcı girişi yaparken kullanılacak olan kullanıcı adıdır.Groupskullanıcımızı dahil edeceğimiz kullanıcı gruplarını gösterir. Her kullanıcı en az bir gruba dahil olmalıdır.Passwordkullanıcının sisteme giriş için kullanacağı parolası (Eğer LDAP kullanıyorsak burayı boş bırakabiliriz.)LanguageKullanıcı giriş yaptıktan sonra kullanılacak olan dil.Themekısmını kullanarak kullanıcıya ait tema belirleyebiliriz.Auto-loginkullanıcı giriş bilgilerinin tarayıcıya kaydedilmesini sağlar.Auto-logoutkullanıcı hesabının aktivitesi sonlandıktan sonra otomatik logout olmasını sağlar.Refreshkullanıcı dashboardlarındaki varsayılan yenileme süresini belirlememizi sağlar.Row per pagelistelediğimiz sayfalarda kullanıcı için her sayfada listelenecek satır sayısını belirtir.URLkullanıcı sisteme giriş yaptıktan sonra yönlendirilecek olan sayfayı belirler.

Kullanıcı tanımı için gerekli bildirimleri girmemizin ardından kullanıcıya bir media tanımı yapmamız gerekiyor. Oluşturduğumuz kullanıcıya bir bildirim gönderileceği zaman burada belirlemiş olduğumuz media yöntemleri kullanılacaktır.

TypeHangi media yönetemi kullanılarak bildirimde bulunacağımız seçiyoruz.Send togönderilen bildirimin hangi adrese gönderileceğini belirtiyoruz.When activehangi gün ve saatler arasında bildirimde bulunulacağının seçimimim yapılmasını sağlar.Use if severityilgili kullanıcıya sadece belirli bir uyarı seviyesi bildirimlerin gitmesini istiyorsak buradan seçebiliriz.Enabledgirmiş olduğumuz bu kullanıcı mediasının aktif olarak mı yoksa pasif olarak mı oluşturulacağını belirttiğimiz alandır.

Burası oluşturduğumuz kullanıcılara yetki verdiğimiz alandır.
- Zabbix User: Sistem üzerinde bulunan cihazlarda sadece görüntüleme yapabilen kullanıcı tipidir. Sunucu bilgilerini, item ve trigger değerlerini değiştirme yetkisi yoktur.
- Zabbix Admin: Sistem üzerinde bulunan cihazlar üzerinde configürasyon değişikliğinin yapılmasına izin verilen kullanıcı tipidir.
- Zabbix Super Admin: Zabbix altyapısına dair tüm ayarları yönetebilen kullanıcı tipidir.
LDAP Giriş Doğrulama Sistemi Entegrasyonu

Eğer sistemimizde LDAP giriş doğrulama sistemi kullanıyorsak parola yönetim sistemimizi buraya entegre edebiliriz. Öncelikle Administration > Authentication sayfasında Authentication sekmesinde Default Authentication seçeneğini LDAP olarak değiştiriyoruz.
LDAP Settings sekmesinde LDAP sunucumuza ait gerekli bilgileri girdik. Altta bulunan test kısmından girdiğimiz sunucu bilgilerinin doğruluğunu kontrol edebiliriz.

Script kullanma
Her zaman zabbix içerisinde kullandığımız item’lar yeterli gelmeyebilir veya özel bir komuttan aldığımız çıktıları izlemek isteyebiliriz. Bu işlem için sunuculardaki zabbix agent dosyalarında bir parametre ekleyerek gerçekleştirebiliyoruz.
Komutun çalıştırılacağı client üzerindeki zabbix agent konfigürasyon dosyasını (konfigürasyon dosyası; zabbix-agent için /etc/zabbix/zabbix_agent.conf, zabbix-agent2 için /etc/zabbix/zabbix_agent2.conf konumunda bulunmaktadır.) açıyoruz. Tanımlama yaparken kullanacağımız format;
UserParameter=<key>,<shell command>
key: item tanımlarken tanımlayıcı olarak kullanacağımız anahtar kelime
shell command: tanımlamanın yapıldığı sunucu üzerinde çalıştırmak istediğimiz komut
Örnek olarak /boot dizininin boyutunu takip eden item oluşturalım. Agent konfigürasyon dosyasına aşağıdaki satırı ekliyoruz.
UserParameter=bootsize,df -h | grep boot | awk '{ print $4 }' | awk -F'M' '{ print $1 }'
Sonrasında servisi restart etmemiz gerekiyor.
[root@zabbix-client burak]# service zabbix-agent2 restart
Redirecting to /bin/systemctl restart zabbix-agent2.service
Sıra uygulama tarafındaki konfigürasyonları yapmada.. Konfigürasyon dosyasını düzenlediğimiz sunucuya aşağıdaki gibi item tanımlaması yapıyoruz.

Item tanımlamasının yapılmasının ardından Test butonuna tıklayarak düzgün yapılandırmış mıyız kontrol edebiliriz.

Artık yapılandırmamızın doğru olduğunu gördükten sonra Add butonuna tıklayarak item oluşturmamızı tamamlayabiliriz. Monitoring > Latest sekmesinden gelen verilerin takibini yapabiliriz.

Yazımı okuduğunuz için çok teşekkür ederim. Yazımı faydalı bulduysanız paylaşmayı unutmayınız. Her türlü sorularınızı yorum kısmından veya iletişim kısmında bana sorabiliriniz. Sevgiler..



