Docker & DevOps

    Zabbix Kurulumu ve İlk Host Ekleme

    Zabbix sunucusunu kurup ilk host'u ekleyerek merkezî izlemeye başlamanın adımları.

    11 dk okuma Güncellendi: 25 Ağustos 2026

    Prometheus ekosistemi son yıllarda çok konuşuluyor ama kurumsal ortamlarda hâlâ en yaygın izleme yazılımı Zabbix'tir ve bunun sağlam gerekçeleri var: tek bir arayüzden yüzlerce host'u yönetirsin, ajan kurulamayan cihazları SNMP ile izlersin, uyarı eskalasyonunu ekip hiyerarşisine göre kurgularsın ve envanter yönetimi kutudan çıkar. Zabbix kurulumu, Prometheus'a kıyasla daha çok adım içerir çünkü arkasında gerçek bir ilişkisel veritabanı vardır — ama bir kez oturduğunda yönetimi tamamen arayüz üzerinden yapılır.

    Bu rehberde Zabbix'in dört bileşenli mimarisini, veritabanı ve frontend dahil sıfırdan kurulumu, Zabbix Agent 2'nin kurulumunu ve aktif ile pasif kontrol arasındaki kritik farkı, ilk host'u ekleyip şablon bağlamayı, item-trigger-action zincirinin nasıl kurulduğunu, bildirim ve eskalasyon ayarlarını, son olarak da veritabanını şişirmemek için housekeeping yapılandırmasını anlatacağım.

    Zabbix Mimarisi: Dört Bileşen#

    Zabbix'i ilk kez kuranların takıldığı yer, tek bir program kurmuyor olmalarıdır. Dört ayrı parça birlikte çalışır ve her birinin ayrı bir görevi vardır:

    BileşenGöreviNerede çalışır
    Zabbix ServerVerileri toplar, trigger'ları değerlendirir, aksiyonları tetiklerMerkezî sunucu
    VeritabanıYapılandırma ve tüm geçmiş veriMySQL/MariaDB ya da PostgreSQL
    FrontendPHP tabanlı web arayüzüAynı sunucu ya da ayrı web sunucusu
    Zabbix Agentİzlenen makinede metrik toplarHer host'ta

    Bunlara ek olarak Zabbix Proxy vardır: uzak ağdaki host'ları yerel olarak toplar, tamponlar ve merkeze tek bağlantıyla iletir. Farklı veri merkezlerinde sunucun varsa neredeyse zorunludur.

    Zabbix'in Prometheus'tan en önemli farkı push/pull esnekliğidir. Prometheus yalnızca çeker; Zabbix hem çekebilir (pasif kontrol) hem de ajan gönderebilir (aktif kontrol). NAT ya da firewall arkasındaki makinelerde aktif kontrol seni kurtarır: merkez host'a ulaşamaz ama host merkeze ulaşır. Çekme modeli için Prometheus kurulumu yazısına bakabilirsin.

    Kurulum: Depo, Veritabanı ve Frontend#

    Zabbix'i dağıtımın kendi deposundan değil, projenin resmî deposundan kurmanı öneririm; dağıtım depoları genellikle eski sürüm taşır ve sürüm atlamak sonradan zahmetli olur.

    # Debian/Ubuntu için resmi depo (sürüm numarasını güncel LTS ile değiştir)
    wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu24.04_all.deb
    sudo dpkg -i zabbix-release_latest+ubuntu24.04_all.deb
    sudo apt update
    
    # Sunucu, frontend, agent
    sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
      zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2
    

    AlmaLinux ya da Rocky kullanıyorsan aynı akış dnf ile işler; paket yönetimi tarafında tazelenmek istersen DNF paket yönetimi yazısına göz atabilirsin.

    Sırada veritabanı var. Zabbix'in şeması büyüktür ve ilk yükleme birkaç dakika sürer:

    -- Veritabanı ve kullanıcı
    CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
    CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'guclu-bir-parola';
    GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
    -- Zabbix saklı yordam oluşturur, bu ayar gerekli
    SET GLOBAL log_bin_trust_function_creators = 1;
    FLUSH PRIVILEGES;
    
    # Şemayı yükle (parola sorar, birkaç dakika sürer)
    sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
    
    # Yükleme bitince geçici ayarı geri al
    mysql -uroot -p -e "SET GLOBAL log_bin_trust_function_creators = 0;"
    

    Ardından sunucu yapılandırmasında veritabanı parolasını tanıtırsın:

    # /etc/zabbix/zabbix_server.conf
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=guclu-bir-parola
    
    # Toplayıcı süreç sayıları — host sayısı arttıkça yükseltilir
    StartPollers=10
    StartPreprocessors=5
    # Değer önbelleği; "cache is fully used" hatası görürsen büyüt
    CacheSize=64M
    HistoryCacheSize=32M
    Timeout=10
    

    Servisleri başlat ve durumu doğrula:

    sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
    sudo systemctl enable zabbix-server zabbix-agent2 nginx php8.3-fpm
    
    # Sunucu gerçekten ayağa kalktı mı
    sudo tail -f /var/log/zabbix/zabbix_server.log
    # "Zabbix Server started" satırını görmelisin
    

    Arayüze http://SUNUCU_IP/zabbix adresinden ulaşırsın; kurulum sihirbazı veritabanı bilgilerini ister ve varsayılan giriş Admin kullanıcısıdır. İlk iş bu parolayı değiştirmek olmalı — varsayılan kimlik bilgileriyle açık bırakılmış Zabbix arayüzleri, internette taranarak bulunan klasik hedeflerdendir.

    Zabbix Agent 2 ve Aktif/Pasif Kontrol Farkı#

    İzlenecek her sunucuya ajan kurarsın. Agent 2, Go ile yazılmış güncel sürümdür ve eklenti mimarisi sayesinde MySQL, Redis, Docker gibi servisleri ek yazılım olmadan izleyebilir.

    # /etc/zabbix/zabbix_agent2.conf
    
    # Pasif kontroller: sunucu ajana bağlanır (bu IP'den gelen istekleri kabul et)
    Server=10.0.0.5
    
    # Aktif kontroller: ajan sunucuya bağlanır
    ServerActive=10.0.0.5
    
    # Bu ajanın kimliği — arayüzdeki host adıyla BİREBİR aynı olmalı
    Hostname=web-01
    
    # Kullanıcı tanımlı parametreler için
    Include=/etc/zabbix/zabbix_agent2.d/*.conf
    

    Aradaki farkı iyi anlamak, sonradan çıkacak birçok sorunu baştan önler:

    ÖzellikPasif kontrolAktif kontrol
    Bağlantı yönüSunucu → Ajan (port 10050)Ajan → Sunucu (port 10051)
    NAT/firewall arkasındaÇalışmazÇalışır
    Sunucu yüküDaha yüksekDaha düşük
    Host adı eşleşmesiGerekmezZorunlu
    Ajan geçici erişilemezseVeri kaybıAjan tamponlar

    Aktif kontrollerde Hostname değerinin arayüzdeki host adıyla harfi harfine eşleşmesi zorunludur. Eşleşmezse sunucu ajanı tanımaz, ajan loglarında host [web-01] not found yazar ve arayüzde hiçbir veri görünmez — ilk kurulumda en sık karşılaşılan sorun budur. Büyük filolarda aktif kontrolleri tercih etmek hem sunucu yükünü düşürür hem de firewall yönetimini basitleştirir.

    # Ajanın sunucuya ulaşıp ulaşmadığını sunucudan test et
    zabbix_get -s 10.0.0.11 -k agent.ping
    # Beklenen çıktı: 1
    
    # Ajan tarafındaki hataları oku
    sudo tail -30 /var/log/zabbix/zabbix_agent2.log
    

    İlk Host'u Eklemek ve Şablon Bağlamak#

    Zabbix'in gücü şablonlardadır. Bir host'a tek tek metrik tanımlamak yerine hazır bir şablon bağlarsın; şablon içindeki tüm item, trigger, grafik ve keşif kuralları o host'a otomatik uygulanır. Bir Linux sunucusu için standart akış şudur:

    1. Data collection → Hosts → Create host yolunu izle.
    2. Host name alanına ajanın Hostname değeriyle birebir aynı ismi yaz (web-01).
    3. Templates alanına Linux by Zabbix agent şablonunu ekle (aktif kontroller için Linux by Zabbix agent active sürümünü seç).
    4. Host groups alanına anlamlı bir grup ver (Uretim/Web), gruplar sonradan izin ve aksiyon filtrelemede kullanılır.
    5. Interfaces bölümünde Agent arayüzü ekle: IP ve port 10050.
    6. Kaydet ve birkaç dakika bekle; Monitoring → Latest data ekranında değerlerin akmaya başlaması gerekir.

    Şablon seçiminde küçük ama önemli bir ayrıntı var: Linux by Zabbix agent şablonu pasif item'lar içerir, Linux by Zabbix agent active ise aktif olanları. Ajanı aktif moda ayarlayıp pasif şablon bağlarsan hiçbir veri gelmez ve saatlerce ağ sorunu ararsın. İkisi birden bağlanmaz; ortamına uygun olan tek şablonu seç.

    Yaygın kullanılan hazır şablonlardan bazıları:

    ŞablonNe izler
    Linux by Zabbix agentCPU, bellek, disk, ağ, sistemd birimleri
    Nginx by HTTPBağlantı sayısı, istek hızı, durum uç noktası
    MySQL by Zabbix agent 2Sorgu hızı, bağlantılar, InnoDB tampon havuzu
    Docker by Zabbix agent 2Konteyner sayısı, imaj, kaynak kullanımı
    Generic by SNMPAjan kurulamayan switch, router, yazıcı
    Website certificate by Zabbix agent 2TLS sertifikası son kullanma tarihi

    Son satır özellikle işe yarar: sertifika bitiş tarihini izlemek, en ucuz ve en çok işe yarayan uyarılardan biridir. Sertifika yönetimini merak ediyorsan SSL sertifikası sayfamız süreçleri özetliyor.

    Item, Trigger ve Action Zinciri#

    Zabbix'te uyarı üç aşamalı bir zincirdir ve her aşamanın adını bilmek, arayüzde kaybolmamanı sağlar. Item ölçümü toplar, Trigger bir koşulu değerlendirir, Action koşul sağlandığında ne yapılacağını belirler.

    Trigger ifadeleri kendi söz dizimine sahiptir ve okunması alışkanlık ister:

    # Kök disk yüzde 85 üstünde
    last(/web-01/vfs.fs.size[/,pused]) > 85
    
    # Son 5 dakikanın CPU ortalaması yüzde 90 üstünde
    avg(/web-01/system.cpu.util,5m) > 90
    
    # Ajan 3 dakikadır erişilemiyor
    nodata(/web-01/agent.ping,3m) = 1
    
    # Kullanılabilir bellek 200 MB altına düştü VE takas kullanımı artıyor
    last(/web-01/vm.memory.size[available]) < 200M
      and last(/web-01/system.swap.size[,pfree]) < 20
    

    Trigger'lara severity atamayı ihmal etme; Zabbix altı seviye sunar (Not classified'dan Disaster'a) ve aksiyonları bu seviyelere göre filtreleyerek gece yalnızca kritik olanların bildirim göndermesini sağlarsın.

    Dependency (bağımlılık) özelliği ise gürültüyü kesen en değerli araçtır: "Disk doluluk" trigger'ını "Ajan erişilemiyor" trigger'ına bağımlı yaparsan, sunucu tamamen düştüğünde yalnızca tek bir uyarı alırsın, on farklı metrik için on ayrı bildirim değil. Bir anahtar arızasında bu ayarın olup olmaması, üç bildirimle üç yüz bildirim arasındaki farktır.

    Bildirim Kanalları ve Eskalasyon#

    Bildirimler Alerts → Media types altında tanımlanır; e-posta, Telegram, Slack, webhook ve SMS için hazır tipler gelir. E-posta için SMTP bilgilerini girip test etmen yeterlidir. Bildirimler gitmiyorsa neredeyse her zaman üç sebepten biridir: SMTP portu/TLS modu uyumsuzluğu, kullanıcı profiline medya eklenmemiş olması ya da aksiyon koşullarının hiç eşleşmemesi. Port ve şifreleme modu uyumunu SMTP test aracı ile hızlıca doğrulayabilirsin.

    Zabbix'in gerçekten öne çıktığı yer eskalasyondur. Bir aksiyonun operasyon adımlarına farklı gecikmeler ve farklı alıcılar tanımlarsın:

    1. Adım 1 (hemen): Nöbetçi sistem yöneticisine e-posta ve Telegram.
    2. Adım 2 (15 dakika sonra, sorun devam ediyorsa): Ekip liderine de gönder.
    3. Adım 3 (30 dakika sonra): Yöneticiye gönder ve otomatik bir kurtarma betiği çalıştır.
    4. Recovery operation: Sorun çözüldüğünde tüm alıcılara "normale döndü" bildirimi.

    Bu yapı, uyarıların "kimse görmedi" diye kaybolmasını yapısal olarak engeller. Otomatik kurtarma adımında uzaktan komut da çalıştırabilirsin, ancak dikkatli kullan: yanlış kurulmuş bir otomatik eylem sorunu çözmek yerine döngüye sokabilir.

    Performans ve Housekeeping#

    Zabbix kurulumlarının en yaygın uzun vadeli sorunu veritabanının şişmesidir. Her item her toplama aralığında bir satır yazar; yüz host ve host başına yüz item'la günde milyonlarca satır birikir. İki mekanizma bunu yönetir: history (ham veri) ve trends (saatlik özet).

    # Şablon/item düzeyinde tipik ayarlar
    History storage period : 7d      # ham veri 7 gün
    Trend storage period   : 365d    # saatlik özet 1 yıl
    

    Ham veriyi 90 gün tutmanın neredeyse hiçbir faydası yoktur; grafiklerde zaten trend verisi kullanılır. Administration → Housekeeping ekranından temizleme sıklığını ayarlarsın, ancak büyük kurulumlarda housekeeping'in kendisi veritabanını zorlar. Doğru çözüm bölümleme (partitioning) kullanıp Zabbix'in housekeeping'ini kapatmaktır — eski bölümü silmek milyonlarca satırı DELETE etmekten kat kat ucuzdur.

    Performans darboğazlarını izlemek için Zabbix kendi kendini de izler; Zabbix server health şablonu bağlıysa şu değerlere göz at:

    GöstergeSağlıklı aralıkAşılırsa
    Zabbix busy poller %%75 altıStartPollers değerini artır
    Value cache hit ratio%95 üstüCacheSize değerini artır
    History write cache %%50 altıVeritabanı disk G/Ç darboğazı
    Queue (bekleyen değer)100 altıToplayıcı ya da veritabanı yetersiz

    Kuyruk (Administration → Queue) sürekli büyüyorsa sunucu topladığı veriyi yazmaya yetişemiyor demektir; çözüm neredeyse her zaman daha hızlı disk ya da veritabanı ayarlarıdır, daha fazla CPU değil. Görselleştirme tarafını Grafana'ya taşımak isteyenler için Zabbix veri kaynağı eklentisi mevcuttur; pano kurulumunu Grafana dashboard oluşturma yazısındaki yaklaşımla birleştirebilirsin.

    Sık Yapılan Hatalar ve Tuzaklar#

    Host adı ile ajan Hostname değerinin uyuşmaması. Aktif kontrollerde veri hiç gelmez ve hata yalnızca ajan logunda görünür. İki değerin harfi harfine aynı olduğunu doğrula.

    Yanlış şablon sürümünü bağlamak. Linux by Zabbix agent pasif, ... agent active aktif item'lar içerir. Ajan modunla eşleşmeyen şablon sessizce boş kalır.

    Varsayılan Admin parolasını değiştirmemek. İnternete açık bir Zabbix arayüzü, varsayılan kimlik bilgileriyle taranarak bulunan hedeflerdendir. İlk girişte değiştir ve arayüzü mümkünse VPN arkasında tut.

    History saklama süresini uzun tutmak. 90 günlük ham veri, veritabanını gereksiz yere şişirir ve housekeeping'i boğar. Ham veri için 7-14 gün, trend için 365 gün makul bir başlangıçtır.

    Trigger bağımlılıklarını kurmamak. Bir sunucu düştüğünde onlarca bildirim alırsın ve gerçek kök neden bunların içinde kaybolur. Alt seviye trigger'ları "ajan erişilemiyor" trigger'ına bağımlı yap.

    Her şeyi izlemeye çalışmak. Şablonlardaki tüm item'ları açık bırakmak veri hacmini birkaç katına çıkarır. Kullanmadığın item'ları devre dışı bırak; izleme, veri toplama yarışı değildir.

    Sıkça Sorulan Sorular#

    Zabbix ücretsiz mi#

    Evet, Zabbix tamamen açık kaynaklıdır ve AGPLv3 lisansıyla dağıtılır; host, item ya da kullanıcı sayısına göre hiçbir lisans ücreti yoktur. Şirket, ticari destek, eğitim ve kurulum danışmanlığı satar ama yazılımın kendisi sınırsız kullanılabilir. Maliyetin tamamı, sunucu kaynakları ve harcadığın yönetim zamanıdır.

    Zabbix mi Prometheus mu kullanmalıyım#

    Ortamının şekline bağlı. Zabbix, ajan kurulabilen geleneksel sunucular, SNMP konuşan ağ cihazları, envanter yönetimi ve derin eskalasyon senaryolarında güçlüdür; her şey arayüzden yönetilir. Prometheus ise konteyner ve dinamik ortamlarda, servis keşfiyle sürekli değişen hedeflerde ve kodla yönetilen yapılandırmalarda öne çıkar. Karma bir altyapıda ikisinin bir arada kullanıldığını sıkça görürsün.

    Kaç host'u tek Zabbix sunucusuyla izleyebilirim#

    Doğru donanım ve veritabanı ayarlarıyla tek bir sunucu birkaç bin host'a kadar rahatlıkla çıkabilir. Sınırı belirleyen şey host sayısından çok saniyedeki yeni değer (NVPS) miktarıdır ve darboğaz neredeyse her zaman veritabanı disk performansıdır. SSD kullan, history saklama süresini kısa tut ve büyük kurulumlarda tablo bölümlemesine geç.

    Ajan kuramadığım cihazları nasıl izlerim#

    Üç yol var. SNMP en yaygınıdır; switch, router, yazıcı ve çoğu ağ cihazı SNMP konuşur ve Zabbix'in hazır SNMP şablonları vardır. İkinci yol basit kontrollerdir (simple checks): ping, TCP port kontrolü, HTTP yanıtı gibi ajansız ölçümler. Üçüncüsü IPMI ya da API tabanlı kontrollerdir; sunucu donanımı ve bulut servisleri için uygundur.

    Zabbix verileri ne kadar disk kaplar#

    Kabaca bir tahmin için saniyedeki değer sayısını (NVPS) baz al: 100 NVPS'lik bir kurulum, 7 günlük ham veri ve 1 yıllık trend saklamayla genellikle 20-50 GB aralığında yer tutar. Asıl büyümeyi ham veri saklama süresi belirler; onu ikiye katladığında disk kullanımı da yaklaşık ikiye katlanır. Trend verisi çok daha küçüktür ve uzun süre saklanması sorun olmaz.

    Kurulumdan sonra hangi ayarları ilk gün yapmalıyım#

    Beş şeyi ilk gün hallet: Admin parolasını değiştir, arayüzü TLS arkasına al ve mümkünse doğrudan internete açma, e-posta ya da mesajlaşma bildirim kanalını kurup test bildirimi gönder, history ve trend saklama sürelerini şablon düzeyinde makul değerlere çek, ve "ajan erişilemiyor" trigger'ını kurup diğer trigger'ları ona bağımlı yap. Bu beşi yapılmış bir Zabbix, ilk gerçek arızada işine yarar.

    Kapanış#

    Zabbix, kurulumu en uzun süren ama uzun vadede en az bakım isteyen izleme sistemlerinden biridir; şablon mantığı oturduktan sonra yeni sunucu eklemek bir dakikalık iştir. Aklında kalması gereken dört alışkanlık şunlar: host adı ile ajan Hostname değerini birebir aynı tut ve şablon sürümünü ajan moduna göre seç, history saklama süresini kısa tutup trend'e güven, trigger bağımlılıklarıyla bildirim selini kaynağında kes, ve arayüzü varsayılan parolayla ya da açık portla asla bırakma. Anlık ve saniyelik teşhis ihtiyacın da varsa Zabbix'in yanına Netdata koymak iyi bir tamamlayıcıdır.

    Zabbix sunucusu, veritabanı yükü nedeniyle kendi kaynaklarına sahip bir makinede çalışmalıdır; VDS ve bulut sunucu paketlerimiz SSD depolamayla bu iş için uygun bir zemin sunar, büyük filolar için dedicated sunucu tarafına bakabilirsin. Kurulumu, şablon yapılandırmasını ve uyarı zincirini bize bırakmak isterseniz sunucu yönetimi hizmetimiz izleme altyapısının kurulumunu da kapsıyor.

    ZabbixİzlemeLinux

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.