Zabbix kurulumu deneyimli sistem yöneticilerinin vazgeçilmez araçlarından biri. Açık kaynak dünyasının en kapsamlı izleme çözümü olan Zabbix, yedinci major sürümüyle birlikte performans iyileştirmeleri ve yeni özellikler getirdi.
Kurulum Öncesi Hazırlık
Zabbix 7.0 LTS, 4 Haziran 2024 tarihinde duyuruldu. Kurulum için Ubuntu 22.04 LTS veya Debian 12 tercih edilebilir. Bu işletim sistemlerinde Zabbix resmi deposu üzerinden kurulum yapmak en pratik yöntem.
Öncelikle sistemin güncel olması gerekiyor:
apt update && apt upgrade -y
Sonra Zabbix deposu eklenir. Ubuntu 22.04 için depo paketi şu şekilde kurulur; Debian 12 için zabbix.com/download sayfasındaki ilgili paket kullanılır:
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu22.04_all.deb
dpkg -i zabbix-release_latest_7.0+ubuntu22.04_all.deb
apt update
Zabbix bileşenleri için gerekli paketler kurulmalı. Bunlar arasında web sunucusu (Apache2 veya Nginx), PHP ve veritabanı sunucusu (MySQL veya MariaDB) yer alıyor. Ubuntu'da Apache2 kullanacağımızı varsayalım:
apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent mariadb-server
Kurulum tamamlandıktan sonra MariaDB servisi başlatılmalı ve açılışta etkinleştirilmeli:
systemctl enable mariadb && systemctl start mariadb
Veritabanı Yapılandırması
Zabbix veritabanı, izleme verilerinin depolandığı kritik bileşen. Yeni bir veritabanı ve kullanıcı oluşturulmalı:
mysql -u root -p
MySQL konsolunda şu komutları çalıştırın:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'sifreniz';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Şimdi Zabbix'in veritabanı şemasını import etmek gerekiyor. Bu dosya sistemde
/usr/share/zabbix-sql-scripts/mysql/server.sql.gz konumunda bulunuyor:
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Import işlemi birkaç dakika sürebilir. MySQL üzerinde binary log açıksa import öncesi
SET GLOBAL log_bin_trust_function_creators = 1; çalıştırmak, işlem bitince bu ayarı sıfırlamak gerekiyor. Veritabanı yapısı oluşturulduktan sonra Zabbix sunucu yapılandırma dosyasına geçebilirsiniz.
Zabbix Sunucu Yapılandırması
Ana konfigürasyon dosyası
/etc/zabbix/zabbix_server.conf konumunda. Bu dosyada veritabanı bağlantı parametreleri düzenlenmeli:
nano /etc/zabbix/zabbix_server.conf
Dosyada şu satırları bulun ve güncelleyin:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=sifreniz
Bu ayarlardan sonra Zabbix sunucusu başlatılabilir:
systemctl restart zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent
Servislerin çalışıp çalışmadığını kontrol etmek için:
systemctl status zabbix-server
Web Arayüzü Kurulumu
Zabbix'in güçlü web arayüzü tarayıcı üzerinden erişilebilir durumda. Apache2 kullanıyorsanız, yapılandırma dosyası zaten kurulumla birlikte geliyor. Tarayıcıda
http://sunucu-ip/zabbix adresine gittiğinizde kurulum sihirbazı karşınıza çıkacak.
İlk adımda dil seçimi yapılır. Türkçe seçeneği mevcut. Sonraki adımlarda ön koşul kontrolü yapılır; PHP ayarlarında bazı değerlerin güncellenmesi gerekebilir. Zabbix 7.0, PHP 8.0 ve üstünü bekliyor. Beklenen değerler:
max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
Ubuntu 22.04 üzerinde ilgili dosya
/etc/php/8.1/apache2/php.ini. Zabbix'in kendi Apache yapılandırması bu değerlerin çoğunu zaten içerir; eksik kalan tek parametre genellikle
date.timezone olur. Değişikliklerin ardından Apache yeniden başlatılmalı:
systemctl restart apache2
Kurulum sihirbazını tamamladıktan sonra karşınıza giriş ekranı gelecek. Varsayılan kullanıcı adı
Admin, şifre
zabbix. İlk girişte şifreyi mutlaka değiştirin.
Template Yapısı
Zabbix'te template, izleme konfigürasyonunu gruplandırmanın standart yolu. Bir template; item'ları, trigger'ları, grafikleri ve diğer yapılandırma öğelerini bir arada tutar. Template kullanımı, aynı konfigürasyonu birden fazla hosta uygulamayı kolaylaştırır.
Yeni bir template oluşturmak için sol menüden
Data collection ardından
Templates seçilir. Sağ üstteki
Create template butonuna tıklanır. Template adı ve gruplama için bir template group belirlenir.
Bir template içinde tanımlanabilecek öğeler:
- Items: Toplanan metrik veriler. CPU kullanımı, disk alanı, ağ trafiği gibi.
- Triggers: Belirli koşullar gerçekleştiğinde üretilen uyarılar.
- Graphs: Item verilerinin görselleştirilmesi.
- Discovery rules: Otomatik keşif kuralları.
- Web scenarios: HTTP izleme senaryoları.
Zabbix 7 ile birlikte gelen önceden tanımlanmış template'ler var. Linux için
Linux by Zabbix agent, Windows için
Windows by Zabbix agent template'leri en sık kullanılanlar. SNMP cihazları için de çeşitli vendor-specific template'ler mevcut.
Trigger Oluşturma
Trigger, bir item'ın değerine göre problem durumu oluşturan koşul tanımı. Örneğin disk kullanımı %90'ın üzerine çıktığında uyarı üretmek için trigger tanımlanır.
Bir trigger oluşturmak için önce template seçilir, ardından
Triggers sekmesine geçilir.
Create trigger ile yeni trigger eklenir. İsim, önem derecesi ve ifade girilir.
İfade örneği:
last(/Linux by Zabbix agent/vfs.fs.size[/,pused])>90
Bu ifade, bağlı hostun disk kullanımı itemının son değeri %90'ın üzerindeyse tetiklenir. Önem dereceleri bilinen şekilde:
Not classified,
Information,
Warning,
Average,
High,
Disaster.
Zabbix 6.0 ile birlikte trigger fonksiyonları birleşik sözdizimine geçti; fonksiyonlar item referansını
/host/key biçiminde alıyor.
last(),
nodata(),
change() bu yapının yaygın örnekleri. Birden fazla koşulu birleştirmek için
and,
or operatörleri kullanılır.
SNMP İzleme Yapılandırması
SNMP, ağ cihazları ve sunucuların izlenmesinde standart protokol. Zabbix, SNMPv1, v2c ve v3'ü destekliyor. Switch, router, firewall gibi cihazları izlemek için SNMP en pratik yöntem.
Zabbix sunucusu tarafında snmpwalk gibi test araçları ve MIB dosyaları için paketler kurulmalı:
apt install -y snmp snmp-mibs-downloader
İzlenecek Linux makinesinde ise SNMP daemon yapılandırılır.
/etc/snmp/snmpd.conf dosyasında erişim için topluluk adı (community string) belirlenir:
rocommunity public 192.168.1.0/24
Bu satır, 192.168.1.0/24 ağından gelen SNMP isteklerine "public" topluluk adıyla yanıt verilmesini sağlar. Üretim ortamında daha güvenli bir topluluk adı kullanılmalı.
Zabbix'te SNMP host eklemek için
Data collection menüsünden
Hosts seçilir. Sağ üstteki
Create host ile yeni host eklenir. Host adı, görünen ad, gruplar ve SNMP arayüzü bilgileri girilir.
SNMP arayüzü kısmında:
- IP address: Cihazın IP adresi
- DNS name: İsteğe bağlı
- Connect to: IP veya DNS
- Port: Varsayılan 161
- SNMP version: v2c veya v3
- Community: v2c için topluluk adı
Host kaydedildikten sonra SNMP item'ları eklenir. Bir item oluştururken
Type alanında
SNMP agent seçilir.
SNMP OID kısmına izlenecek metriğin OID değeri girilir.
Örneğin sistem uptime izlemek için:
sysUpTimeInstance
veya sayısal OID:
1.3.6.1.2.1.1.3.0
Zabbix'in önceden tanımlı SNMP template'leri var. Cisco, Juniper, HP gibi vendor'lar için hazır template'ler mevcut. Bu template'ler yaygın OID'leri otomatik izler. Yeni bir cihaz eklerken uygun template'i seçmek yeterli.
Önemli Yapılandırma İpuçları
Veritabanı performansı kritik. Büyük ortamlarda PostgreSQL tercih edilebilir. Housekeeping ayarları, tarihli verilerin ne kadar süre saklanacağını belirler.
Agent yapılandırması da önemli.
/etc/zabbix/zabbix_agentd.conf dosyasında
Server ve
ServerActive parametreleri Zabbix sunucusunun IP adresini göstermeli. Pasif kontroller için
Server, aktif kontroller için
ServerActive kullanılır.
Güvenlik duvarı kullanılıyorsa, Zabbix port'ları açılmalı. Zabbix agent 10050, Zabbix server 10051 port'unu kullanır. SNMP 161 port'u da erişilebilir olmalı.
Zabbix 7, kurumsal düzeyde izleme ihtiyaçlarını karşılayacak yeteneklere sahip. Template ve trigger yapısı, büyük altyapılarda tutarlı konfigürasyon yönetimi sağlar. SNMP desteği sayesinde ağ cihazları tek merkezden izlenebilir. İlk kurulum birkaç saat sürebilir ancak altyapınızı sağlıklı şekilde izlemeye başladığınızda bu yatırım kendini amorti eder.