Merhaba,
Bu makalemizde Zabbix üzerinde Active Agent ve Auto Registration kuralını kullanarak otomatik olarak Hostların sisteme nasıl ekleneceğini anlatıyor olacağım.
Öncelikle ihtiyacımız nedir ona bakalım. Yapıda 400-500 tane sunucunun olduğunu düşünüyoruz ve bu sunucuların Zabbix üzerinde izlemeye dahil edilmesi isteniyor. Her birisinin FQDN adına göre görünmesi ve sistematik bir şekilde karışıklık olmadan görüntülenmesi talep ediliyor.
Yapıda bir Active Directory ortamı var ise tüm sunuculara Sistemi yöneten arkadaştan Group Policy ile Agent kurmasını isteriz. Tüm Agent’lar sunuculara kurulur ancak işin Zabbix tarafında bekleyen 400-500 kadar sunucunun eklenme işi duruyor.
1. Yöntem
Devamında Zabbix tarafında tüm hostları tek tek ekleriz ki 400-500 sunucu için bu iş çok can sıkıcı olacaktır. (Hata yapma ihtimalimiz çok fazla)
2. Yöntem
Phyton ile API kullanarak tüm hostların bir csv dosyası ile Zabbix üzerine aktarılmasını sağlayabiliriz burada da işin içine kodlama giriyor ve biraz da Phyton bilgisi gerekiyor. (Bunu da şimdilik geçiyorum.)
3. Yöntem
Tüm Agent’lar Active Agent olarak Group policy ile sunuculara dağıtılır ve zabbix tarafında yazacağımız bir kural ile üzerinde Agent olan tüm sunucular kendisini Zabbix üzerine kayıt eder ve izlemeye dahil olurlar. (Bu yöntem çok daha basit ve zahmetsiz.)
Biz burada 3. Yöntem ile ilerliyor olacağız ve hem Active hem de Passive Agent özelliklerinden faydalanarak yapıdaki sunucu ekleme işlemini otomatize etmiş olacağız. Öncelikle Active ve Passive Agent ile ilgili buradaki dokümanı okumanızı tavsiye ederim.
Passive Agent için 10050 portunun Host tarafında açık olması.
Active Agent için ise Zabbix tarafında 10051 portunun açık olması gerekmektedir.
Active Agent Host izleme metriklerini kendisi Zabbix veya Proxy Sunucuya iletirken, Passive Agent da ise Zabbix veya Proxy sunucu sürekli olarak Host’a istek yaparak host üzerindeki 10050 portundan izleme metriklerini talep etmektedir. En temel fark iki Agent modeli arasında bu şekildedir.
Şimdi sözü fazla uzatmadan işlemlerimize geçelim.
Yapımızda Zabbix 6.0 Sunucumuz bulunuyor ve IP Adresi: 192.168.1.60
Zabbix üzerinde hiçbir Host ekli değil sadece kendisini izliyor.
Resmi site üzerinden Zabbix Agent kısmına tıklıyorum ve indireceğim Agent dosyasını özelliklerini seçiyorum.
Sayfanın aşağısında yaptığım seçime göre çıkan Agent dosyasını indiriyorum.
İndirdiğim Agent dosyasını klasöre çıkartıyorum.
İçerisinde 2 tane klasör geliyor. Bin ve Conf adında.
Bin klasörü içerisinde 3 tane uygulama var.
Conf klasöründe ise Zabbix_Agent konfigürasyon dosyası bulunuyor. Bu dosyaları kullanarak nasıl kurulum yapacağımızı Zabbix dokümantasyonundan bakacağız.
Dokümantasyonu açıyorum ve Agent başlığını buluyorum.
Burada bana C:\ dizini altında zabbix isminde bir klasör oluşturmamı istiyor ve indirdiğim tüm agent dosya içeriklerini bu klasörde toplamamı söylüyor ve kurulum için gerekli komutu belirtiyor.
Bende Agent kuracağım makine üzerinde C:\zabbix adında bir klasör oluşturuyorum.
İndirdiğim Agent dosyasındaki bin klasöründe bulunan tüm uygulamaları C:\zabbix klasörüne taşıyorum.
Ardından Conf klasöründeki konfigürasyon dosyasını da C:\zabbix altına taşıyorum. Bundan sonra yapacağımız işlemler default gelen konfigürasyon dosyasındaki 5 parametrenin değiştirilmesi işlemi olacak.
1-) Log dosya konumu (Opsiyoneldir ben bu şekilde derli toplu olması için yapıyorum)
2-) Server (Passive Agent için Zabbix Server IP Adresini yazıyoruz)
3-) Server Active (Active Agent için Zabbix Server IP Adesimizi yazıyoruz)
4-) Hostname=Windows host (Bu satırı yorum satırına dönüştürüyoruz)
5-) HostMetadataItem=system.uname (Bu satırı düzenliyoruz ve system.uname yazıyoruz)
İlk olarak log dosya yolu satırını düzenliyorum. Ben C:\zabbix altındaki klasörde log adında bir klasör daha açıyorum ve Agent ile ilgili herşeyi burada görmek istiyorum. C:\zabbix\log dışında bir yere log atmasını istemiyorum.
LogFile=c:\zabbix\log\zabbix_agentd.log yolunu konfigurasyon dosyasında düzeltiyorum.
“Server=” yazan kısma Zabbix sunucumun IP Adresini yazıyorum. Bu kısım Passive Agent için girdiğimiz alan.
“ServerActive=” yazan kısma da yine Zabbix IP Adresi’ni yazıyorum ve alttaki kırmızı alanı yani “Hosname=Windows host” kısmını yorum satırına çeviriyorum.
Hostname kısmına siz ne yazarsanız Zabbix tarafında Host Adı alanında buraya yazdığınız isim gelecektir. Bu hali ile bıraksaydık “Windows host” olarak görecektik. Biz her bir Host adını dinamik olarak çekeceğimiz için bu kısmı kullanmayacağız.
Bizim kullanacağımız parametre “HostMetadataItem” parametresi. Bu kısmıda karşısına system.uname yazarak bu satırı aktif hale getiriyorum. Agent’ımız host üzerinde system adını system.uname parametresi ile alacak ve Zabbix sunucusuna o şekilde iletecek. Bu HostMetadataItem parametresinin nasıl bu işe yaradığını merak ediyorsanız dokümanı buradan okuyabilirsiniz.
Tüm işlemlerimizi tamamladık ve toplamda 5 satıra müdahale ettik. Şimdi bu konfigürasyon dosyasını kaydedip çıkıyorum.
Komut satırını yönetici hakları ile çalıştırıyorum ve C:\zabbix dizinine geçiyorum. Burada
zabbix_agentd.exe -c zabbix_agentd.conf -i
komutunu çalıştıryorum. Agent kurulumu işte bu kadar.
Servis yönetimini açıyorum ve kontrol ediyorum. Zabbix Agent kurulmuş ve servis olarak izleyeceğim Host makine üzerinde duruyor ancak çalışmıyor. Servisi başlatıyorum.
Servisim çalışıyor. Agent hizmet vermeye başladı.
Şimdi Zabbix üzerinden Auto Registration kuralımızı yazabiliriz.
Create Action diyerek yeni bir Auto Registration kuralı yazmaya başlıyorum.
Burada Name kısmında bir isim veriyorum ve Host metadata contains “Windows” diyerek bir condition ekliyorum. Yani Active Agent’lar tarafından Zabbix sunucuma gelen kayıt olma işlemlerinde Windows olanları burada bu kondisyon ile ayrımış oluyorum.
Condition eklendi. Şimdi sıra Action sekmesinde.
Gelen bu Windows cihazları hangi grupta toplayacağımı ve hangi template ile eşleştireceğimi burada yazacağım Action kuralları ile belirleyeceğim.
Benim BSH_Windows_Servers adında bir grubum var ve buna ait template ile eşleştireceğim için grup seçimimi o şekilde yapıyorum.
Template eşleşmemi de seçiyorum.
Gelen Windows cihazların hangi gruba gideceği ve hangi template ile eşleşeceğini tanımladık Add diyerek ekliyorum.
Auto Registration kuralım tanımlandı ve Enable durumda.
Şimdi Host ekranıma geçiyorum ve Host’um geldi mi diye bakıyorum. Host gelmiş burada bir sorun yok. Active Agent ile geldiği için yeşil ikonun görünmemesi normal. Host makine adımızı ve eklendiği şekli kontrol edelim.
Makine adımızı SULEYMANK olarak Host üzerinde görüntülüyorum. Zabbix tarafına da bu isimle geldi sorun yok zaten “HostMetadataItem” kullanmamızdaki amaç da buydu.
Latest data sekmesinden baktığımda Host ile ilgili parametreler akmaya başlamış durumda. Yani biz bu hostu artık izliyoruz.
Devamında kısa bir süre sonra availability ikonu kırmızıya dönüyor ve bize bir 10050 portu hatası veriyor. Bu şu demek oluyor Agent Active modda izleniyor ancak Passive Mod için Host üzerinde TCP 10050 portunu geçemediği için Passive data toplayamıyor. Bu sebeple bu ikon kırmızı olarak görünüyor. Bu kırmızılığın bizi yanılmaması için ilgili portu açalım ve Host’u hem Active hem de Passive Mod ile monitör edelim.
Host üzerinde firewall için bir kural tanımlaması yapıyorum.
Kuralıma isim veriyorum.
Kuralımı ekledim.
Host üzerinde servisi yeniden başlatıyorum.
Servis Restart oluyor.
Tekrar gelip Host ekranıma baktığımda Host Availability kısmının Yeşil renge döndüğünü görüyorum ve artık Passive Chek ile de monitoring başlamış oldu.
Log dosyasına bakıyorum Host üzerinde herhangi bir hata var mı diye herşey temiz görünüyor.
Şimdi oluşturduğum bir sanal makine içinde kurulum yapacağım. İlk kurulum için hazırladığım C:\zabbix klasörünü yeni kurulum yapacağım sanal makine de aynı konuma atıyorum.
Ardından komut satırını açıyorum ve C:\zabbix dizininde
zabbix_agentd.exe -c zabbix_agentd.conf -i
komutunu girerek kurulumu yapıyorum.
Servisimi başlatıyorum.
Host adımı kontrol ediyorum.
İzleme ekranına geldiğini görüyorum. Aynı şekilde bu makinede de 10050 portuna izin veriyorum.
Artık bu host da izlemeye dahil olmuş durumda. Herşey net bir şekilde istedimiz gibi tamamlandı.
Artık 400-500 sunucunun olduğu ve Active Directory ile yönetilen bir sistemde tüm sunuculara agent deploy işlemini tarif edebiliriz. Dikkat ettiyseniz yeni bir sunucunun sisteme dahil edilmesi toplamda 4 aşamadan oluşuyor.
1-) C:\ dizini altına ilgili \zabbix klasörünün atılması.
2-) Host üzerinde TCP 10050 portuna izin verilmesi.
3-) CMD Komut satırından Agent kurulum komutunun yazılması.
4-) Agent Servisinin başlatılması.
Bu 4 aşamanın tamamını Active Directory yöneticiniz ile görüşerek otomatik olarak tek seferde tüm sunuculara yaptırabilirsiniz. Devamında ise size kalan iş sadece Zabbix ekranından hostların gelmesini beklemek olacaktır. 😎
Umarım faydalı olmuştur başka bir makalede görüşmek üzere.
Hocam Merhaba bir soru sormak istiyorum,
c:\ dizinine oluşturulan zabbix klasörünü tüm yükleyeceğimiz makinelere kopyalamamız gerekiyor mu?
GPO ile zabbix msi dağıtımını yaptıktan sonra mı sizin 3. yöntem ile bahsettiğiniz işlemleri yapmalıyız yoksa c dizininde bulunan zabbix klasörü içirisinden mi kurulum yapmalıyız tüm makinelere bu kısmı tam olarak anlayamadım
Burada anlatılan kurulum yöntemini GPO ile uygulamanız gerekiyor. MSI depoyment yaparsanız yine tek tek her bir ajanın olduğu makinede geri dönerek işlem yapmanız gerekecektir.