Zabbix 7.0 + MySQL Kurulum ve Yapılandırma
Zabbix Nedir ve Ne İçin Kullanılır?
Zabbix, açık kaynak kodlu, kurumsal düzeyde izleme ve yönetim platformudur. IT altyapısındaki ağ cihazları, sunucular, sanal makineler, uygulamalar ve veritabanları gibi bileşenleri izlemek ve yönetmek amacıyla kullanılır. Kullanıcılara gerçek zamanlı izleme, performans verileri toplama ve analiz etme, anormal durumları bildirme gibi işlevler sunar.
Zabbix, açık kaynak ve ücretsiz bir izleme yazılımı olarak maliyet avantajı sunar. Kullanıcılar yazılımı indirip ihtiyaçlarına göre özelleştirebilirler. Modüler yapısı sayesinde farklı izleme ihtiyaçlarına uyum sağlayarak genişletilebilir ve neredeyse her türlü sisteme entegre olabilir. Gerçek zamanlı izleme yetenekleri, kritik sistemlerde olası arızaları anında tespit etmeye olanak tanır. Ayrıca Zabbix, zengin raporlama ve grafik oluşturma özellikleriyle kullanıcıların sistem performansını detaylı şekilde analiz etmelerini sağlar. Esnek bildirim mekanizması sayesinde olaylar meydana geldiğinde e-posta, SMS veya üçüncü parti uygulama entegrasyonları aracılığıyla uyarılar gönderilebilir. SNMP, IPMI, JMX, VMware gibi teknolojilerle geniş entegrasyon seçenekleri sunarak birçok farklı cihaz ve uygulamayla çalışabilir.
Ancak Zabbix’in bazı zorlukları da vardır. Gelişmiş özellikleri ve esnek yapısı, özellikle başlangıç seviyesindeki kullanıcılar için yüksek bir öğrenme eğrisi oluşturabilir. Büyük ölçekli izleme projelerinde yüksek CPU, bellek ve disk kaynakları tüketebilir, bu da ek kaynak yönetimini zorlaştırabilir. Ayrıca, karmaşık yapılandırmalar ve özel izleme kuralları oluşturulurken bazen zorluklar yaşanabilir. Açık kaynaklı bir yazılım olduğu için destek topluluk tarafından sağlanır, ancak daha kapsamlı bir destek gerektiğinde ücretli hizmetler tercih edilebilir.
Zabbix’in Kullanım Alanları
- Ağ İzleme: Switch, router, firewall gibi cihazların performansını izler.
- Sunucu İzleme: Linux, Windows gibi işletim sistemlerine sahip sunucuları ve üzerinde çalışan servisleri izler.
- Uygulama İzleme: Veritabanları, web sunucuları, uygulama sunucuları gibi çeşitli uygulama katmanlarını izler.
- Servis İzleme: Web servisleri, e-posta sunucuları, DNS gibi kritik servisleri izler.
- SLA İzleme: Servislerin performansına dayalı SLA (Hizmet Seviyesi Anlaşmaları) izleme ve raporlama sağlar.
Zabbix’in Çalışma Mantığı
Zabbix, izlediği sistemlerden topladığı verileri işlemek için iki temel bileşen kullanır: Zabbix Sunucusu ve Zabbix Ajanı. Sunucu, izleme ve raporlama işlemlerini yöneten merkezi bileşendir, ajanlar ise izlenen makinelerde yerel olarak çalışan küçük uygulamalardır.
Temel Bileşenler
- Zabbix Sunucusu: Zabbix sunucusu, sistemden gelen tüm verileri toplar, saklar ve analiz eder. İzleme kurallarını ve eşik değerlerini belirler, uyarı gönderir, rapor oluşturur ve grafikler üretir. Sunucu aynı zamanda Zabbix ajanlarıyla iletişimi sağlar.
- Zabbix Ajanı: Ajan, sunucunun izlemek istediği makinelere (sunucu, ağ cihazı, uygulama vb.) kurulan küçük bir yazılımdır. Ajanlar, izledikleri sistemin CPU kullanımı, bellek kullanımı, disk durumu, ağ trafiği gibi verileri toplar. Zabbix ajanları iki modda çalışabilir: pasif ajan ve aktif ajan.
- Veritabanı: İzlenen veriler, olaylar, alarmlar, ve diğer tüm izleme bilgileri bir veritabanında saklanır. Zabbix genellikle MySQL, PostgreSQL gibi veritabanlarını kullanır.
- Web Arayüzü: Zabbix, kullanıcıların merkezi izleme sistemine web üzerinden erişim sağlaması için bir web arayüzü sunar. Bu arayüzden grafikler oluşturabilir, uyarıları izleyebilir ve sistem performansını analiz edebilirsiniz.
Aktif ve Pasif Ajanlar
Zabbix ajanları, izlenecek makinedeki verileri toplamak için aktif veya pasif modda çalışabilir.

1. Pasif Ajan (Passive Agent):
Pasif ajan, Zabbix sunucusunun ajanı sorguladığı bir yapıdadır. Sunucu ya da proxy, ajan yüklü makineye bir sorgu gönderir ve ajan bu sorguya cevap olarak izlenen verileri geri gönderir. Pasif ajanların çalışma mantığı “Sunucu sorar, ajan yanıt verir” şeklindedir. TCP 10050 portu üzerinden iletişim sağlanır.
Pasif ajan mantığı:
- Zabbix sunucusu veya proxy, ajanı belirli aralıklarla sorgular.
- Ajan, CPU kullanımı, disk alanı gibi sistem bilgilerini Zabbix sunucusuna geri gönderir.
- Veri toplama işlemi sunucu veya proxy tarafından tetiklenir.
Avantajları:
- İzleme işlemi sunucu tarafından kontrol edilir, bu sayede belirli zamanlarda toplu veri sorgulaması yapılabilir.
- Ağ üzerinden gelen isteklere cevap verdiği için düşük ağ trafiği yaratır.
Dezavantajları:
- Sunucu veya proxy’nin tüm ajanlara erişebilir olması gerekir. Eğer sunucu/ajan arasında bir ağ problemi varsa veri toplanamayabilir.
2. Aktif Ajan (Active Agent):
Aktif ajan, Zabbix sunucusundan bir dizi izleme öğesi isteği alır ve daha sonra belirli aralıklarla bu öğelere ilişkin verileri toplar. Ajan, topladığı verileri Zabbix sunucusuna geri gönderir. Bu yapıda, veri toplama işlemi ajan tarafından tetiklenir ve sunucuya veri iletimi yapılır. Aktif ajan mantığında “Ajan, sunucuya verileri iletir” şeklinde bir çalışma modeli vardır. TCP 10051 portu üzerinden iletişim sağlanır.
Aktif ajan mantığı:
- Ajan, Zabbix sunucusuna bağlanarak “hangi verilerin izlenmesi gerektiğini” öğrenir.
- Belirlenen verileri toplar ve sunucuya geri gönderir.
- Ajan, kendisi veri toplama işlemini başlatır ve sunucuya iletir.
Avantajları:
- Ajanlar, merkezi sunucuya sürekli bağlı değildir. Yalnızca veriyi topladıktan sonra sunucuya iletirler, bu da ağ trafiğini hafifletir.
- Sunucunun ajanı sorgulaması gerekmediği için daha güvenilirdir, ajan sunucuya ulaşabildiği sürece veri gönderir.
Dezavantajları:
- Aktif ajan yapılandırması daha karmaşıktır.
- Özellikle çok sayıda ajan ile çalışıldığında, her ajan belirli aralıklarla sunucuya veri gönderdiği için sunucuya giden ağ trafiği yükselebilir.
Kurulum Hazırlıkları
Zabbix izleme sistemini CentOS 9 Stream üzerinde kuracağım ve veri tabanı olarak MySQL kullanacağım. Hem Zabbix hem de MySQL aynı sunucu üzerinde çalışacak, ancak dilerseniz veritabanını farklı bir sunucuya kurarak yapılandırmayı genişletebilirsiniz. Bu kurulum, küçük ölçekli ortamlardan büyük altyapılara kadar esnek ve ölçeklenebilir bir izleme sistemi oluşturmanıza olanak tanır.
A- Centos 9 Stream Kurulumu
CentOS 9 ISO dosyasını aşağıdaki linkten indirip kurulumu gerçekleştirebilirsiniz. Minimal bir kurulum yapmayı planladığım için aslında boot dosyası yeterli olabilirdi, ancak ben full DVD versiyonunu indirdim. Bu versiyon üzerinden minimum bir kurulum gerçekleştireceğim, böylece gerekli bileşenler manuel olarak eklenebilecek
CentOS ISO dosyasını VMware sanal makinenize taktıktan sonra, CentOS’u kurmak için aşağıdaki adımları izleyebilirsiniz:
Sanal makinenizi başlattığınızda CentOS 9 ISO dosyasını kullanarak bir boot ekranı gelir.
Install CentOS Stream 9 seçeneğini seçin ve Enter tuşuna basın.

Karşınıza dil ve klavye düzeni ekranı gelir. Buradan kurulumu yapacağınız dili ve klavye düzenini seçin (örneğin, Türkçe veya English). Devam Et butonuna tıklayın.

Burada birkaç yapılandırma seçeneği vardır. Bunları sırasıyla yapılandırmanız gerekecek:
Keyboard: Klavye dilinizi seçebilirsiniz.
Language Support: Dil ayarlarınızı değiştirebilirsiniz.
Time & Date: Saat diliminizi seçebilirsiniz.
Installation Source: Hangi kaynak üzerinden kurulum yapacağınızı seçebilirsiniz. ISO dosyası üzerinden kurulum yapacağımız için Local Media olarak bırakıyoruz.
Software Selection: Bu adımda kurulum türünü seçebilirsiniz. Ben burada Minimal Kurulum (Minimum Install) seçeneğini tercih ediyorum.
Installation Destination: Hangi diske kurulacağını belirtmelisiniz. VMware sanal makinenizde oluşturduğunuz sanal disk burada listelenecek. Diskin otomatik bölümlendirilmesini istiyorsanız, “Otomatik Bölümlendirme” seçeneğini işaretleyin. Özel bölümlendirme yapmak isterseniz Custom seçeneğini kullanarak manuel olarak yapılandırabilirsiniz (örneğin, /boot, swap, / (root) bölümleri).
Network & Hostname: Sanal makinenizin ağ ayarlarını ve hostname adını yapılandırabilirsiniz.
Root Password: Root (yönetici) hesabı için bir parola belirlemeniz gerekir. Root Password seçeneğine tıklayarak güçlü bir parola girin.
User Creation: İsteğe bağlı olarak bir kullanıcı hesabı da oluşturabilirsiniz. Bu işlem için User Creation seçeneğine tıklayıp, kullanıcı adı ve parola belirleyin.
Tüm ayarları yaptıktan sonra Begin Installation butonuna tıklayarak kurulum işlemini başlatın.

Bu adımda CentOS 9 gerekli dosyaları diske kopyalayacak ve sisteminiz kurulumunu tamamlayacaktır. Kurulum sırasında herhangi bir işlem yapmanıza gerek yoktur.

Kurulum tamamlandığında, Reboot System butonuna tıklayarak sistemi yeniden başlatın.VMware sanal makineniz yeniden başlatıldığında, artık CentOS 9 Stream’i kullanmaya başlayabilirsiniz.

B- Zabbix 7.0 + MySQL Database Kurulumu
Zabbix, bir sunucu ve bir istemci (agent) yapısına sahiptir. Sunucu tarafında MySQL veritabanı ile Apache web sunucusu kurulumunu yapacağız.
Kurulum işlemine başlamadan önce, sudo su komutuyla root yetkisine geçiş yapıyoruz ve ardından yum update komutunu kullanarak mevcut güncellemeleri kontrol ediyoruz. sudo su, geçici olarak root kullanıcısına tam yetkilerle erişim sağlar.
sudo suyum update
Disable Selinux
Zabbix Server’ın düzgün çalışabilmesi için SELinux politikalarının, bazı gerekli süreç ve dosya erişimlerini engelleyebilme ihtimali bulunuyor. Bu nedenle, uyumluluk sorunlarını önlemek ve Zabbix’in sorunsuz çalışmasını sağlamak için SELinux’u kapatıyoruz.
nano /etc/selinux/configSELINUX=disabled
1. Adım: Zabbix Deposu Ekleme
Güncellemeleri kontrol ettikten aşağıdaki komut ile Zabbix RPM paketini yüklüyoruz. Bu komut, Zabbix yazılımının en son sürümünü sistemimize indirip yüklememizi sağlar. Bu linklere Zabbix resmi web sitesi üzerinden istediğimiz işletim sistemi ve uygulamayı seçerek erişebilriz.

Yükleme işlemi tamamlandıktan sonra, DNF paket yöneticisinin önbelleğini temizlemek için dnf clean all komutunu kullanıyoruz. Bu komut, DNF’nin kullandığı tüm geçici dosyaları silerek sistemin daha güncel ve temiz bir şekilde çalışmasını sağlar.
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/9/x86_64/zabbix-release-latest.el9.noarch.rpm
dnf clean all
2. Adım: Zabbix ve Bağımlılıkları Yükleme
Aşağıdaki komut ile Zabbix sunucusunu, web arayüzünü, veritabanı bileşenlerini ve ajanı kuruyoruz. Bu işlem 2-3 dakika sürecektir:
yum install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
3. Adım: Veritabanı Kurulumu
Aşağıdaki komutu çalıştırdıktan sonra tüm bileşenleri yüklemek için Y tuşuna basıp ilgili bileşenlerin kurulmasını bekliyoruz.
yum install mysql-server.x86_64
Kurulum işlemi tamamlandıktan sonra MYSQL veritabanını yapılandırmamız gerekecektir. MYSQL kurulumu yapılmış olduğu için ve henüz servis olarak çalışmadığı için kurulum adımlarında hata alabilirsiniz. Bu nedenle aşağıdaki komut ile MYSQL Servis durumunu kontrol etmeniz gerekecektir.
systemctl status mysql-serviceEğer veritabanı servisi çalışmıyorsa aşağıdaki komut ile servisin çalışmasını sağlayabilirsiniz.
systemctl start mysql-serviceMYSQL veritabanının ilk kurulum ayarlarını tanımlamak için bir kaç adımı tamamlamamız gerekmektedir. Bunun için mysql_secure_installation aracını kullanmamız gerekiyor.
mysql_secure_installation aracı, MySQL veritabanı sunucusunu güvenli hale getirmek için kullanılan bir komuttur. Bu araç, veritabanı sunucusunu kurduktan sonra yapmanız gereken temel güvenlik ayarlarını yapmanıza yardımcı olur. İşlevselliği, şifre güvenliği, anonim kullanıcıların kaldırılması, root kullanıcısının şifresinin ayarlanması gibi önemli adımları içerir.
mysql_secure_installation komutunu girdikten sonraki sorulara aşağıdaki gibi cevap vermemiz gerekmektedir.
#mysql_secure_installation
Enter current password for root (enter for none): <enter>
Set root password? [Y/n] y
New password: P@55vv0rd
Re-enter new password: P@55vv0rd
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] yGüvenlik adımlarını tamamladıktan sonra sırasıyla aşağıdaki komutları girerek Zabbix için bir veritabanı oluşturuyoruz. Ben burada veritabanı parolası olarak ‘P@55v0rd’ kullandım. Bu tamamen isteğe bağlıdır, siz farklı bir parola kullanabilirsiniz.
# mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'P@55vv0rd';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
4. Adım: Zabbix İçin Veritabanını İçe Aktarma
Aşağıdaki komut ile Zabbix veritabanı şemasını ve ön verilerini yüklüyoruz.
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
İçe aktarım işlemi tamamlandıktan sonra tekrar veritabanına bağlanıyoruz ve aşağıdaki komutları giriyoruz.
# mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
5. Adım: Zabbix Sunucu Yapılandırması
Zabbix sunucu ve veritabanı kurulumunu tamamladıktan sonra uygulama ve veritabanı bağlantısı kurabilmesi için zabbix_server.conf dosyasında aşağıdaki değişiklikleri kontrol ediyoruz. DBPassword satır başındaki diyez # işaretini kaldırdıktan sonra 3. adımda tanımlamış olduğumuz DB parolamızı buraya girdikten sonra sayfayı kaydedip kapatıyoruz.
nano /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=P@55vv0rdZabbix Server, Apache Server, Zabbix Agent ve PHP uygulamalarının servislerini çalıştırmamız gerekiyor. Bu servislerin, sunucumuz her yeniden başlatıldığında otomatik olarak çalışabilmesi için enable komutunu kullanarak bu servisleri varsayılan hale getirmemiz gerekmektedir.
# systemctl restart zabbix-server zabbix-agent httpd php-fpm
# systemctl enable zabbix-server zabbix-agent httpd php-fpm6. Adım: Firewall Yapılandırması
Sunucu üzerinde firewall var ise aşağıdaki portlara erişim vermemiz gerekmektedir. Aksi takdirde sunucu çalışacaktır fakat bizim ve client sistemlerin erişimi olmayacaktır.
firewall-cmd --zone=public --add-port=80/tcp --permanent > HTTP Erişimi için gereklidir.
firewall-cmd --zone=public --add-port=443/tcp --permanent > HTTPS Erişimi için gereklidir.
firewall-cmd --zone=public --add-port=10050/tcp --permanent > Pasive Agent Erişimi için gereklidir.
firewall-cmd --zone=public --add-port=10051/tcp --permanent > Active Agent Erişimi için gereklidir.
firewall-cmd --reload > Kuralların ektif olması için gereklidir.
firewall-cmd --list-all > Eklediğiniz kuralları kontrol edebilirsiniz.
7. Adım: Web Arayüzü Yapılandırma
Kurulum işlemlerini tamamladıktan sonra http://sunucu_ip_adresi/zabbix adresine gidiyoruz ve dil seçimini yapıp ilerliyoruz.

Ön kontrolleri sağladıktan sonra herhangi bir sorun yok ise bir sonraki adıma geçiş yapıyoruz.

Veritabanı bağlantı bilgilerini kontrol ediyoruz ve veritabanı için tanımladığımız kullanıcı adı ve parola bilgisini girdikten sonra bir sonraki adıma geçiyoruz.

Zaman dilimini kendimize göre ayarladıktan sonra bir sonraki adıma ilerliyoruz.

Kurulum özetini aşağıdaki gibi gözden geçiridikten sonra bir sonraki adıma geçiyoruz.

Herşey yolunda gittikten sonra aşağıdaki gibi kurulumu tamamlıyoruz. Finish butonuna tıkladıktan sonra kurulumu tamamlıyoruz.

Anasayfaya gelmek için http://sunucu_ip_adresi/zabbix adresine gidiyoruz ve login oluyoruz. Varsayılan giriş bilgisi aşağıdaki gibidir.
Username: Admin
Password: zabbix
8. Adım: Agent Tanımlama
Zabbix agent kurulumu için aşağıdaki link üzerinden Agent yazılımını indirip sunucuya aktarıyoruz.

Kurulum dosyasını sunucuya kopyaladıktan sonra Administrator olarak çalıştırıyoruz.

Tüm adımlar seçili gelmektedir. Bir değişiklik yapmadan Next ile ilerliyoruz.

Host name otomatik olarak gelmektedir. Bir değişiklik yapmıyoruz.
Zabbix Server IP olarak zabbix sunucu ip adresini giriyoruz.
Agent listen port olarak 10050 varsayılan olarak gelmektedir. Bir değişiklik yapmıyoruz.
Server or Proxy for active checks kısmı 127.0.0.1 olarak gelmektedir. Eğer aktif ajan kullanmayı planlıyorsak buraya Zabbix Server IP adresini yazmalıyız. Pasif ajan kullanacağımız için ben buraya dokunmuyorum.
Enable PSK kutucuğunu boş bırakıyorum. Eğer client ve sunucu arasındaki bağlantıyı preshared key ile şifrelemek istiyorsak bu kutucuğu etkinleştirmemiz gerekecektir.
Bu adımları tamamladıktan sonra Next ile ilerleyerek kurulumu tamamlıyoruz.

Zabbix web arayüzünde Monitoring / Hosts sekmesine girdikten sonra, sağ üst köşede bulunan Create Host butonuna tıklıyoruz. Açılan sayfada izlemek istediğimiz sunucu bilgilerini giriyoruz. Templates kısmında, önceden tanımlı gelen ve Windows işletim sistemi parametrelerini izleyen bir şablonu kullanmayı tercih ediyorum. Host groups alanında, sunucunun hangi gruplarda yer alacağını belirliyoruz. İsterseniz, bu aşamada yeni gruplar oluşturabilirsiniz. Interface bölümünde Agent seçeneğini seçerek sunucunun IP adresini tanımlıyoruz. Son olarak Add butonuna tıklayarak sunucuyu ekliyoruz.

Sunucu ekleme işlemini tamamladıktan yaklaşık 1-2 dakika sonra, Availability sütununda yer alan ZBX butonu yeşil olarak görünecektir. Bu, her şeyin doğru yapıldığını ve sunucu ile Zabbix sunucusu arasında iletişimin başarıyla kurulduğunu gösterir.
Bir makalenin daha sonuna geldik. Umarım faydalı olmuştur. Bir sonraki makalede görüşmek üzere! 🙂
Paylaş