Aylık arşivler: Şubat 2020

Zabbix Discovery Özelliğini Kullanma

Merhabalar,

Bir önceki yazımda zabbix in nasıl kurulacağı hakkındaydı.
Bu yazımda zabbix de discovery özelliğini kullanarak networkümüzde bulunan servisleri ve cihazları nasıl bulacağımıza bakalım.

Configuration -> Discovery seçeneğine tıklayalım varsayılan olarak local network tanımlı geliyor.
Local networkü tıklayarak kendi networkümüzün ip bilgilerini giriyoruz.

Add linkine tıklayarak istediğimiz portları servisleri ekliyoruz.Burada varsayılan olarak ftp,ssh vb servisler geliyor.
Tcp olarak kendimiz de bulmak istediğimiz servis portlarını ekleyebiliyoruz.

Network bloğunu yazarken 192.168.1.1-254 olarak yazabileceğimiz gibi 192.168.1.0/23 geniş bir blok tanımlayabiliriz.

Port tanımlamalarında tek bir port tanımlaması yapılabildiği gibi port aralığı da verilebiliyor.

Örnek 139-445 gibi.

En altta bulunan update linkini tıklayarak zabbix in networkümüzü taramasını bekliyoruz.

Tarama sonucunu Monitoring -> Discovery altında bulabiliriz.

Bulunan cihaz ve servisler için daha sonra Configuration altında host olarak tanımlayıp gerekli bilgileri toplayabilirsiniz.

Bir sonraki yazıda buluşmak dileğiyle.

Zabbix Nedir? Nasıl kullanılır

Merhabalar,

Bu yazımda sizlere zabbix hakkında biraz bilgi ve deneyimlerimi paylaşacağım.

Zabbix, C ve PHP tabanlı, uç noktadaki ağ hizmetleri, sunucular, servisler ve ağ donanımlarını izlemek için Alexei Vladishev tarafından geliştirilmiştir.

Günümüzde git gide büyüyen yapılardan dolayı sistem yöneticileri için bu uç noktaların kontrolü büyük bir zorluk haline gelmiştir. Herhangi bir uç noktada meydana gelen bir aksaklık, sorunla bir süre sonra bir şekilde karşılaşılması ile haber olunur hale gelmiştir. Çünkü sistemler ve servisler artık çok genişledi ve takip edilmesi zor bir halde aldı.

İşte bu noktada zabbix işimize gerçektende çok yarayan bir tool. Zabbix üzerine tanımladığınız hostlarda, servislerde yada ağ cihazlarında herhangi bir anormallik tespit etmesi durumunda geliştirildiği sistem itibari ile bir çok aksiyonu sizin belirlediğiniz çerçevede gerçekleştirme sağlamaktadır.

Zabbix kurulumu nasıldır konusuna değinmeyeceğim çünkü artık kurulum yapmaya gerek kalmadan appliance olarak dağıtımları bulunmaktadır. Buradan appliance sürümlerine ulaşabilirsiniz. Böylece kurulum aşamalarından kurtulmuş olursunuz.

Siz var olan sisteminiz için kurulum yapacaksanız aşağıdaki adımları takip edebilirsiniz.
Şu an için Ubuntu 18.04 (Bionic Beaver) LTS versiyonu üzerinde paket olarak kurulabiliyor.

#wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
# dpkg -i zabbix-release_4.4-1+bionic_all.deb
# apt update

Veritabanı oluşturmak için

# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

Veritabanı bağlantısı için zabbix_server.conf dosyasını editliyoruz.

# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=#veritabanı şifresi#

Zabbix serverı çalıştırıp aktif etmek için aşağıdaki komutları giriyoruz.

# service zabbix-server apache2 php-fpm start
# update-rc.d zabbix-server apache2 php-fpm enable

Zabbix çalışma mantığını yukarıdaki resim üzerinden tanımlamaya çalışırsak.

İtem: Bilgi toplana modüldür ve her item farklı bir servis hakkında bilgi toplar. Ör: mysql bilgisini bir item alır, cpu bilgisini başka bir item

Trigger: Tetikleyici dersek direk bir çağrışım yapabilir. İtem’ın aldığı veride sizin belirlediğiniz durumlarda bir anormallik tespit edilirse trigger devreye girer.Ör: Mysql servisi için cevap veriyorsa 1 değeri döndürülür, fakar servis cevap vermiyorsa 0 değeri döner. Bu durumda siz mysql için 0 değeri aldığında bir trigger yazarsanız, servis cevap vermediğinde trigger devreye girmiş olur.Problem: Yukarıdaki örnekte belirtmiş olduğum problem modülünü içermektedir

Action: Bu modül ise servisin cevap vermemesi durumunda zabbix nasıl bir tepki versin onu belirliyoruz. Burada action modülü kullanmaz isek zabbix içeriğine girip triggerları izleyerek durumları kontrol edebiliriz. Fakat bir item’a bağlı bir trigger çalışmış ise bu trigger’a bağlı bir action gerçekleştirilip bu sorunun çözülmesi gerekmektedir.Action modülü bu sorunlara;
1 – Mail atarak
2 – SMS atarak
3 – Komut çalıştırarak müdahale edebilmektedir.

Sms atmak için usb modem kullanılabilir.

Gelin şimdi client makine üzerindeki mysql servisinin zabbix ile nasıl monitoring yapılacağını birlikte yapalım.

Ben appliance kurulumu yaptığım zabbix ile ilgili ayarlarla uğraşmadım direk ip adresi ile web üzerinden erişim sağlıyorum.

Giriş yapmak için varsayılan kullanıcı ismi Admin şifre zabbix.

Giriş yaptığımda beni bu şekilde bir sayfa karşılıyor. Burada ilk olarak host ekleme işlemini gerçekleştireceğim fakat bunun için client makine üzerinde öncelikle zabbix agent kuralım ve daha sonra burdan bağlantıyı gerçekleştirelim.

Zabbix Server -> 172.16.4.134 Ubuntu
Web Client -> 172.16.4.184 Centos 7

Komut satırı işlemleri CLİENT üzerinde yapılacaklartır.

wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
sudo yum install zabbix-release-4.0-1.el7.noarch.rpm
sudo yum install zabbix-agent

Yukarıdaki kurulumlardan sonra client makine üzerinde zabbix agent yapılandırmasına geçebiliriz.

vi /etc/zabbix/zabbix_agentd.conf#Dosyasında gerekli ayarları girelim.
Server= 172.16.4.134
ServerActive=172.16.4.134#Restart edelim
systemctl restart zabbix-agent

Yukarıdaki ayarlardan sonra artık client makine üzerinde zabbix agent restart ederek işlemi tamamlamış oluyor. Burada agent server tarafından gelecek isteği bekler. Server client üzerine hangi item için istek yollarda agent o servis ile ilgili bilgileri porttan iletir.

Şimdi zabbix üzerinden host tanımlamasına geçelim.

Zabbix web arayüzünden Configuration -> Hosts bölümüne giriyoruz. Kurmuş olduğum clienti tanıtacağız.

Bu bölümden Host sekmesinde bir isim veriyorum ve client makinenin IP adresini belirtiyorum. Default olarak 10050 portunu kullanıyor değiştirmediğim için öyle bırakıyorum. Daha sonra Templates sekmesinden hangi servisleri dinleyeceksem onları seçiyorum ve add diyorum. Daha sonra tekrar Hosts sekmesine tıklıyorum.

Burada ilk bir kaç dk yeşil olmayabilir istek ve cevap geldikten sonra artık yeşil olarak gözükmektedir. Burada Web Server yanında bazı Items Trigger’lar seçilen template ile otomatik gelmektedir. Buradan etkileşim kurarak actionlar oluşturulabilir.

Şimdi mysql servisinin durumunu dashboard üzerinde gösterelim. İlk olarak burada client üzerinde mysql’de kullanıcı oluşturmamız ve bunu agent tarafında göstermemiz gerekmektedir.

mysql# create user 'zabbix'@'localhost' IDENTIFIED BY 'Password';
Query OK, 0 rows affected (0.00 sec)
mysql# GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'Password';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql# flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql# exit

Yukarıda mysql üzerinde zabbix kullanıcı oluşturma aşaması gözükmektedir. Şimdi agent tarafında mysql ile ilişkili dosyayı oluşturalım.

Eğer bu dosya yoksa oluşturalım ve yukarıdakini içerisine olduğu gibi yapıştıralım. Bu dosya içerisinde /var/lib/zabbix belirtilen yere mysql erişim bilgilerini ekleyelim.

Bu dosyayı oluşturduktan sonra agenti restart ediyorum. Bu aşamalardan sonra Web Server hostu üzerinde Items bölümüne girdiğimizde MySQL ile ilgili alanları inceleyelim.

Yukarıda gözükeceği üzere MySQL items konfigürasyon öncesi bilgi alamadığı için uyarı vermektedir.

Server ve client iletişim kurduktan sonraki hali yukarıdaki gibi olacaktır. Mysql items artık bilgi toplamaya başlamış ve uyarı kaybolmuştur.

Şimdi iletişim sağlandığına göre dashboard kısmına geçebiliriz.

Monitoring -> All Dashboard -> Create Dashboard diyerek yeni bir dashboard oluşturalım. Daha sonra dashboard üzerinde Add widget ile dashboard ekranını görselleştirelim.