← Tüm yazılar

Zabbix 7.0 ile 248 Sunucuyu Nasıl İzliyorum?

20 yıllık IT kariyerimde onlarca izleme aracı denedim. Bugün KRK Holding bünyesindeki 248 sunucuyu Zabbix 7.0 ile tek dashboard'dan yönetiyorum. Kurulum, yapılandırma ve gerçek hayat deneyimlerimle bu yazıda anlattım.

Zabbix 7.0 ile 248 Sunucuyu Nasıl İzliyorum?

KRK Holding'de IT Manager olarak göreve başladığımda karşımdaki tablo şuydu: farklı lokasyonlarda dağılmış onlarca sunucu, tutarsız izleme pratikleri ve "bir şey çöktüğünde anlıyoruz" yaklaşımı. İlk işim merkezi, güvenilir ve ölçeklenebilir bir izleme altyapısı kurmaktı.

2022'de Zabbix'i seçtim. Bugün 248 sunucu, saniyede 18.000'den fazla metrik ve ortalama 2 dakikalık sorun tespit süresiyle çalışıyoruz. Bu yazıda o yolculuğu ve öğrendiklerimi paylaşıyorum.

Neden Zabbix?

Piyasada onlarca izleme aracı var: Prometheus, Nagios, Datadog, Grafana, PRTG... Her birini değerlendirdim. Zabbix'i seçmemin üç ana sebebi vardı.

Birincisi: tamamen açık kaynak ve ücretsiz. Kurumsal lisans maliyeti yok, kullanıcı başına ücret yok, metrik başına ücret yok. Altyapı büyüdükçe maliyet artmıyor.

İkincisi: gerçek anlamda enterprise özellikleri. Distributed monitoring (Zabbix Proxy), auto-discovery, şablonlar, eskalasyon kuralları, özelleştirilebilir dashboard'lar — bunların hepsi kutudan çıktığı gibi geliyor.

Üçüncüsü: Türkiye'de yetkin topluluk ve dokümantasyon. Sorunla karşılaştığımda çözüm bulmak zaman almıyor.

Mimari: Nasıl Kurdum?

Tek sunucuya Zabbix kurmak 10 dakika iş. Ama 248 sunucu için ölçeklenebilir bir mimari gerekiyor.

Şu yapıyı kurdum:

Merkezi bir Zabbix Server PostgreSQL veritabanıyla İstanbul'daki ana veri merkezinde çalışıyor. İzmir ve Çukurova lokasyonlarında birer Zabbix Proxy var. Her proxy kendi bölgesindeki sunucuların verilerini topluyor, bağlantı kesilse bile yerel olarak tamponluyor ve merkeze iletiyor.

Bu mimarinin avantajı: WAN bağlantısı kesilse bile izleme devam ediyor. Bağlantı yeniden kurulduğunda veriler otomatik senkronize ediliyor.

Agent Kurulumu: 248 Sunucuya Nasıl Dağıttım?

El ile 248 sunucuya agent kurmak mümkün ama verimli değil. Ansible playbook yazdım:

Her sunucuya Zabbix Agent 2 (Go tabanlı, yüksek performanslı) kuruluyor, yapılandırma dosyası sunucu IP'siyle otomatik oluşturuluyor ve agent servisi etkinleştiriliyor. Tüm fleet için bu işlem 12 dakika sürdü.

Şablonlar: Tekrar Yazmamak İçin

Zabbix'in en güçlü özelliklerinden biri şablonlar. Bir kez yapılandırıyorsun, yüzlerce sunucuya uyguluyorsun.

Standart Linux sunucular için kullandığım şablon şunları izliyor: CPU kullanımı ve load average, RAM ve swap kullanımı, disk I/O ve doluluk yüzdesi, ağ trafiği (gelen/giden), sistem uptime, çalışan process sayısı ve SSH servis durumu.

MySQL sunucuları için ek olarak: query per second, slow query sayısı, replikasyon gecikmesi ve bağlantı havuzu durumu izleniyor.

Uyarı Mantığı: Doğru Alarm, Doğru Zamanda

İlk kurulumda en büyük hata yaptığım yer burasıydı: her şey için alarm kurdum. Sonuç: alarm yorgunluğu. Ekip bildirimleri ciddiye almamaya başladı.

Şimdi üç seviyeli bir yapı kullanıyorum.

Birinci seviye bilgilendirme: CPU yüzde 70'i geçti, disk yüzde 75 doldu. Sadece Zabbix dashboard'ında görünüyor, kimseyi rahatsız etmiyor.

İkinci seviye uyarı: CPU yüzde 85'i 15 dakika aştı, disk yüzde 85 doldu. E-posta ve Telegram bildirimi gönderiliyor.

Üçüncü seviye kritik: servis çöktü, sunucu yanıt vermiyor, disk yüzde 95 doldu. Hem e-posta hem Telegram, 30 dakika çözülmezse eskalasyon — bir üst yetkiliye iletiliyor.

Bu yapıyla alarm sayısı yüzde 70 azaldı. Gelen her alarm artık gerçekten önemli.

Gerçek Bir Örnek: Kesinti Olmadan Önce Yakaladık

Geçen yıl İzmir lokasyonundaki bir veritabanı sunucusunda disk doluluk trendi anormal bir hızla artmaya başladı. Zabbix trend analizi sayesinde "bu hızda giderse 4 gün içinde disk dolar" öngörüsü oluştu ve alarm tetiklendi.

Sunucuya baktık: bir uygulama hatalı çalışıyor, log dosyaları kontrolsüz büyüyordu. Log rotasyonunu düzenledik, eski dosyaları temizledik. Kullanıcılar hiçbir şey fark etmedi.

Eski sistemde bu sorunu disk dolunca, yani hizmet kesilince öğrenirdik.

Öğrendiklerim

İzleme sistemi kurmak zor değil. Doğru izleme sistemi kurmak zor.

Ne izleyeceğini iyi tanımla. Her metriği izlemek gürültü yaratır. İşine yarayan metrikleri seç.

Alarm yorgunluğundan kaç. Az ama anlamlı alarm, çok ama gürültülü alarmdan iyidir.

Trend analizi kullan. Anlık değerler değil, zaman içindeki eğilim seni uyarır.

Test et. Yedek gibi izleme sistemi de düzenli test edilmeli. Alarm çalışıyor mu? Bildirim gidiyor mu?

Sonuç

Zabbix, kurumsal ölçekte ücretsiz ve güvenilir bir izleme çözümü arıyorsanız en iyi seçeneklerden biri. Öğrenme eğrisi var ama harcadığınız zaman kendini çabuk amorti ediyor.

248 sunucudan oluşan filomuzda Zabbix sayesinde son 18 ayda planlanmamış kesinti süremiz yüzde 94 azaldı.

Kurulum, yapılandırma veya ölçekleme konusunda sorularınız varsa iletişim formundan ulaşabilirsiniz.

İK
İdris Koç
Linux Engineer · IT Manager @ KRK Holding · linux.ist Kurucusu