SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor

Ubuntu 24.04'te Zabbix 7.0 LTS kurulumu

Ubuntu 24.04 üzerinde Zabbix 7.0 LTS kurulumunu anlatır: repository ekleme, MySQL şeması, nginx arayüzü ve agent2 ayarı ile sık görülen hataların çözümü.

Ne inşa ediyorsunuz

Tam kapsamlı Zabbix 7.0 LTS yığınını çalıştıran tek bir Ubuntu 24.04 VPS: metrikleri toplayan ve uyarı gönderen zabbix-server arka plan süreci, her metriği depolayan bir MariaDB/MySQL veritabanı, nginx tarafından sunulan bir PHP arayüzü ve sunucunun kendisinden metrikleri toplayan zabbix-agent2. Sistem hazır olduğunda, onu ikinci bir sunucuya yönlendirip bir şablon atadığınızda, disk dolduğu veya bir servis durduğu anda e-posta alırsınız.

Zabbix, bir durum sayfası aracından daha kapsamlıdır: şablonlar, tetikleyiciler, yükseltme mekanizmaları ve geçmiş verisi saklama özelliklerine sahip gerçek bir zaman serisi sistemidir. Zorlukların neredeyse tamamı, insanların atladığı üç adımda yaşanır: veritabanı şemasını içe aktarmak, sunucunun gerçekten okuduğu veritabanı parolasını ayarlamak ve nginx yapılandırmasında iki satırın yorum işaretini kaldırmak. Bunları doğru yaptığınızda geri kalan işlemler oldukça basittir. Yalnızca çalışıyor/çalışmıyor kontrolleri ve paylaşılabilir bir durum sayfası istiyorsanız, hafif bir Uptime Kuma durum izleyicisi bunu tek bir container ile yapar; Zabbix ise birçok sunucu genelinde metrik bazlı eşik değerleri ve yükseltme süreçleri istediğinizde gerçek değerini gösterir.

7.0 LTS sürüm hattını kullanın: sunucu, arayüz, agent2 ve şema sürümleri birbiriyle uyumludur ve yıllarca güvenlik güncellemeleri alır. Aşağıdaki depo dosya adını kopyalamadan önce resmi Zabbix indirme sayfasına göz atın. latest sürüm paketi yalnızca 7.0 deposunu yapılandırır, belirli bir ara sürümü seçmez: apt, depoda bulunan hangi 7.0.x paketi varsa onu kurar, böylece en güncel sürüme sahip olursunuz. Sayfa ayrıca numaralandırılmış 7.0-N sürüm paketlerini de listeleyebilir, ancak bu numara Zabbix yapısını değil, depo kurulumunu sürümler. Buradaki diğer tüm komutlar, 7.0 hattının tamamında kararlıdır.

Boyutlandırma, portlar ve ön gereksinimler

root veya sudo yetkilerine sahip, temiz bir Ubuntu 24.04 KVM VPS kullandığınızı varsayıyoruz. Kaynaklar konusunda gerçekçi olun: 2 GB RAM ve iki vCPU, sunucu, veritabanı, Nginx ve PHP'nin tek bir makinede çalıştırıldığı ve birkaç ana bilgisayarın izlendiği bir kurulum için gerçekçi alt sınırdır. 1 GB RAM'e sahip bir makine açılış yapar ancak geçmiş veriler arttıkça veritabanı kaynak yetersizliği çeker; birkaç düzine ana bilgisayardan sonrası için 4 GB RAM planlayın ve yüzün üzerine çıktığınızda veritabanını ayrı bir sunucuya taşıyın. Disk alanı, topladığınız öğe sayısına ve geçmiş verileri ne kadar süre sakladığınıza bağlı olarak artar; başlangıç için birkaç gigabayt ayırın. Housekeeper süreci, belirlediğiniz saklama pencerelerine göre eski verileri temizleyecektir.

Portlar: Arayüz için 80 ve 443 numaralı portlar; bu portları herkese açık hale getirebilir veya yalnızca kendi IP adresinizle kısıtlayabilirsiniz. Sunucu, veri gönderen aktif agent'lar için TCP 10051 portunu dinler; her agent ise sunucunun veri çekmesi (polling) için TCP 10050 portunu dinler. Ön tarafta bir güvenlik duvarı (firewall) varsa yalnızca dışarıya açtığınız portları izinli hale getirin. Arayüz için bir DNS A kaydı oluşturmanız faydalı olacaktır, çünkü gerçek bir sertifikaya ihtiyaç duyacaksınız. Zabbix sunucusu, çalıştırdığınız diğer tüm servisleri izlediği için, sonradan eklenen bir parça olarak değil, 2026 yılında çalıştırılmaya değer geniş self-hosting yığını içerisinde yer almalıdır.

Adım 1, Resmi Zabbix 7.0 deposunu ekleyin

zabbix-release paketi tek bir işlev görür: apt kaynak listesini ve imzalama anahtarını sisteminize yerleştirir. Paketi kurun ve ardından dizini yenileyin.

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update

Eğer wget komutu 404 Not Found çıktısını verirse, dosya adı değişmiş demektir; Zabbix indirme sayfasını açın, Ubuntu 24.04 sürümünü seçin ve ekranda görünen tam zabbix-release URL adresini kopyalayın. Temiz bir apt update çıktısı, bir repo.zabbix.com satırı gösterir ve anahtar uyarısı vermez; The following signatures couldn't be verified because the public key is not available hatası, sürüm paketinin anahtarını yükleyemediği anlamına gelir; bu durumda dpkg -i komutunu tekrar çalıştırın ve güncellemeyi yineleyin.

Adım 2, Sunucu, arayüz ve aracın kurulumu

MySQL ile derlenmiş sunucuyu, PHP arayüzünü, nginx yapılandırmasını, SQL şema dosyalarını ve agent2 paketini tek seferde kurun.

sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
  zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

zabbix-server-mysql, MySQL/MariaDB için derlenmiş sunucudur; PostgreSQL için bunun yerine zabbix-server-pgsql paketini kurun ve aşağıdaki veritabanı adımlarını buna göre düzenleyin. zabbix-sql-scripts, bir sonraki adımda içe aktaracağınız şemayı içerir; bu, 7.0 sürümünde ayrı bir pakettir ve unutulması, içe aktarma yolunun daha sonra bulunamamasına neden olur. Bu paketlerin hiçbiri veritabanı motorunu otomatik olarak kurmaz, bu nedenle sunucuda halihazırda yüklü değilse MariaDB kurulumunu şimdi gerçekleştirin.

sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb

Adım 3, Veritabanını doğru karakter setiyle oluşturun

Zabbix, harmanlama (collation) konusunda katıdır: yalnızca utf8mb4_bin ile utf8mb4 veya utf8_bin ile daha eski utf8 (diğer adıyla utf8mb3) destekler ve belgeleri, bu kılavuzda kullanılan utf8mb4_bin ile utf8mb4 kullanımını şiddetle önerir. sudo mysql ile bir root kabuğu açın ve şu komutu çalıştırın:

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'choose-a-strong-password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;

O SET GLOBAL satırı, içe aktarma işlemi için bir güvenlik supabıdır. Zabbix şeması, içe aktarma sırasında deterministik tetikleyiciler oluşturur ve zabbix gibi SUPER olmayan bir hesap, ikili günlük kaydı (binary logging) açıkken bunları oluşturamaz. MySQL 8 varsayılan olarak ikili günlük kaydını etkinleştirir ve bazı yönetilen MariaDB sürümleri de bunu yapar (standart MariaDB yapmaz). İkili günlük kaydı etkin olan bir sunucuda bu bayrağı atlarsanız, içe aktarma işlemi ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled hatasıyla durur. Bunu root olarak ayarlamak sorunu çözer; içe aktarma işleminden sonra tekrar kapatabilirsiniz. Parolayı tam olarak not edin, sunucu yapılandırmasının aynı karakter dizisine bayt bazında ihtiyacı vardır.

Adım 4, Şemayı içe aktarma (atlanan adım)

Yeni kurulan bir arayüzün yüklenmemesinin en yaygın nedeni budur: oluşturduğunuz veritabanı boştur. zabbix-sql-scripts içinde sunulan şemayı veritabanına yükleyin.

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | \
  mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

Komut, zabbix parolasını ister, küçük bir VPS üzerinde otuz ila altmış saniye çalışır ve başarılı olduğunda hiçbir çıktı vermez; sessizlik burada doğru durumdur. zcat: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz: No such file or directory hatası, zabbix-sql-scripts paketinin yüklü olmadığı anlamına gelir (Adım 2'ye dönün). ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' hatası, Adım 3'teki parolanın veya yetkilendirmenin yanlış olduğunu gösterir. İşlem tamamlandığında güvenlik bayrağını tekrar kapatın:

sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 0;"

Yüklemeyi sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;" ile doğrulayın; bir sayı görmeniz, doesn't exist hatası almadığınız ve şemanın yüklendiği anlamına gelir.

Adım 5, zabbix_server.conf dosyasında veritabanı parolasını ayarlama

Sunucu, veritabanı kimlik bilgilerini /etc/zabbix/zabbix_server.conf dosyasından okur. Yalnızca parolanın ayarlanması gerekir; DBName ve DBUser değerleri varsayılan olarak zabbix şeklindedir. # DBPassword= satırının başındaki açıklama işaretini kaldırın ve şu şekilde ayarlayın:

DBName=zabbix
DBUser=zabbix
DBPassword=choose-a-strong-password

Parola, 3. Adımdaki ile birebir aynı olmalıdır. Boş veya hatalı bir DBPassword, daha sonra karşılaşacağınız "Zabbix server is not running" uyarısının en yaygın nedenidir: daemon başlar, giriş yapamaz ve kapanır. Ekranda buna dair bir bilgi görünmez, yalnızca günlük kayıtlarında yer alır.

Adım 6, Nginx'i arayüze yönlendirme

zabbix-nginx-conf paketi, /etc/zabbix/nginx.conf konumuna bir sunucu bloğu yükler ve bunu /etc/nginx/conf.d/zabbix.conf üzerinden Nginx'e bağlar; ancak bu dosya listen ve server_name satırları yorum satırı haline getirilmiş şekilde gelir. Bu nedenle, siz bu satırları düzenleyene kadar Nginx, Zabbix için herhangi bir içerik sunmaz:

server {
    listen          80;
    server_name     zabbix.example.com;
    ...
}

Henüz bir DNS kaydınız yoksa kendi alan adınızı veya sunucunun genel IP adresini kullanın. Dikkat etmeniz gereken iki nokta vardır. Ubuntu'nun varsayılan Nginx karşılama sayfası da 80 numaralı portu dinler ve varsayılan sunucu olarak işaretlenmiştir; bu nedenle eşleşmeyen tüm istekler için bu sayfa görüntülenir. Bu sayfayı kaldırmanız gerekir, aksi takdirde yanlış sayfa yüklenir: sudo rm -f /etc/nginx/sites-enabled/default. Eğer /etc/nginx/conf.d/zabbix.conf bir şekilde eksikse (bu bilinen bir paketleme hatasıdır), bağlantıyı sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/conf.d/zabbix.conf komutuyla manuel olarak oluşturun. Ardından yapılandırmayı test edin ve yeniden yükleyin:

sudo nginx -t
sudo systemctl reload nginx

nginx -t komutu test is successful çıktısını vermelidir. Eğer bunun yerine nginx: [emerg] a duplicate default server for 0.0.0.0:80 çıktısını veriyorsa, hem varsayılan site hem de Zabbix bloğu default_server üzerinde hak iddia ediyor demektir; varsayılan siteyi kaldırın ve testi tekrarlayın. Çoğu zaman test yalnızca bir conflicting server name uyarısıyla başarılı olur ancak tarayıcıda hala varsayılan karşılama sayfası görünür: bu durum, eşleşmeyen bir isimde varsayılan sitenin öne geçmesinden kaynaklanır ve varsayılan siteyi kaldırmak sorunu çözer.

Adım 7, Servisleri başlatma ve etkinleştirme

Sunucuyu, ajanı, PHP-FPM'i ve nginx'i çalıştırın; yeniden başlatma sonrasında da aktif kalmaları için bunları etkinleştirin.

sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl enable  zabbix-server zabbix-agent2 nginx php8.3-fpm

Ubuntu 24.04, PHP 8.3 sürümü ile gelir, bu nedenle FPM servisi php8.3-fpm şeklindedir; zabbix-nginx-conf paketi, frontend arayüzünü aynı ana süreç altında çalıştırır. Sunucunun başladığını ve çalışır durumda kaldığını doğrulayın:

sudo systemctl status zabbix-server --no-pager
sudo tail -n 20 /var/log/zabbix/zabbix_server.log

Sağlıklı bir günlük kaydı, sunucunun başladığını ve housekeeper, poller ile trapper süreçlerinin çalıştığını gösteren satırlarla biter. Eğer [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' hatası alıyorsanız, Adım 5'teki DBPassword değeri eşleşmiyordur; bunu düzeltin ve yeniden başlatın. [Z3005] query failed: [1146] Table 'zabbix.dbversion' doesn't exist satırı, Adım 4'teki şema içe aktarma işlemini atladığınız anlamına gelir; bu durumda sunucunun okuyabileceği bir veri yoktur.

Adım 8, Web kurulum sihirbazını tamamlama

http://your-domain-or-ip adresine gidin. Zabbix kurulum sihirbazı açılır. Adımları takip edin:

  1. Welcome (Hoş geldiniz), bir dil seçin.
  2. Check of pre-requisites (Ön gereksinim kontrolü), her satır varsayılan olarak OK durumunda olmalıdır; paketlenmiş /etc/zabbix/php-fpm.conf havuzu, Zabbix'in ihtiyaç duyduğu PHP limitlerini zaten karşılar.
  3. Configure DB connection (Veritabanı bağlantısını yapılandırma), veritabanı türü olarak MySQL, sunucu olarak localhost, port olarak 0 (varsayılan port veya soket anlamına gelir), veritabanı adı olarak zabbix, kullanıcı olarak zabbix ve 3. Adımdaki parolayı girin. Hatalı kimlik bilgileri veya eksik şema burada ortaya çıkar.
  4. Settings (Ayarlar), Zabbix sunucu ana bilgisayarını localhost, portu 10051 olarak bırakın ve kuruluma bir isim verin.
  5. Pre-installation summary (Kurulum öncesi özet), ardından Install (Kur) seçeneğine tıklayın; sihirbaz /etc/zabbix/web/zabbix.conf.php dosyasını yazar.
  6. Finish (Bitir), Admin (büyük A harfi ile) kullanıcı adı ve zabbix parolası ile giriş yapın ve Users (Kullanıcılar) menüsü altından bu parolayı hemen değiştirin.

Sihirbaz Cannot create the configuration file hatası verirse, web kullanıcısı /etc/zabbix/web/ dosyasına yazamıyor demektir; sunduğu zabbix.conf.php dosyasını indirin, sudo komutu ile manuel olarak ilgili dizine yerleştirin ve Finish (Bitir) düğmesine tıklayın.

Adım 9, Yerel sunucuyu ekleme ve şablon atama

Zabbix kendini otomatik olarak izlemez. Data collection → Hosts → Create host yolunu izleyin, sunucu adını zabbix-server olarak ayarlayın, Linux servers grubuna ekleyin ve 127.0.0.1 IP adresi ile 10050 portunu kullanarak bir Agent arayüzü tanımlayın. Templates sekmesi altında Linux by Zabbix agent şablonunu bağlayın (pasif sorgulama varyantı; Linux by Zabbix agent active ise verinin agent tarafından gönderildiği aktif moddur). Kaydedin.

Bir dakika içinde sunucu satırında yeşil bir ZBX etiketi görünecek ve metrikler Monitoring → Latest data altında akmaya başlayacaktır. Kırmızı bir ZBX etiketi, sunucunun agent'a ulaşamadığı anlamına gelir; bu durum bir hata değil, aşağıda ele alınan bir başarısızlık modudur.

Adım 10, Kullanışlı bir tetikleyici ve e-posta uyarısı

Linux by Zabbix agent şablonu, yüksek CPU, düşük bellek ve dolu diskler için tetikleyicilerle birlikte gelir, bu nedenle onu bağladığınız anda uyarılara sahip olursunuz. Bir tetikleyicinin nasıl oluşturulduğunu görmek için kendinizinkini ekleyin: ana bilgisayarı açın, Triggers → Create trigger yolunu izleyin, adını Root filesystem over 90% full on {HOST.NAME} koyun, önem derecesini High olarak ayarlayın ve şu ifadeyi kullanın:

last(/zabbix-server/vfs.fs.dependent.size[/,pused])>90

vfs.fs.dependent.size[/,pused], şablonun dosya sistemi keşfinin kök dosya sistemi için oluşturduğu yüzde-kullanım öğesidir (7.0'ın Linux şablonu vfs.fs.get verisini bir kez toplar ve bağlama noktası başına bağımlı öğeler türetir), bu nedenle tetikleyici ek veri toplama gerektirmeden çalışır. Kaydedin.

Bir tetikleyici, bir action (eylem) birini bilgilendirene kadar panodaki bir satırı yalnızca yeniden renklendirir. Alerts → Media types → Email altında SMTP sunucusunu, portu, gönderen adresini, bağlantı güvenliğini (genellikle STARTTLS) ve varsa röle kimlik bilgilerini ayarlayın, ardından Test özelliğini kullanın; burada bir hata alırsanız, herhangi bir gerçek uyarı gerçekleşmeden önce SMTP yolunun yanlış olduğu anlamına gelir. Users → Users → Admin → Media → Add altından Admin kullanıcısına bir adres verin ve hangi önem derecelerinin bildirim göndereceğini seçin. Ardından Alerts → Actions → Trigger actions → Create action altında yapılandırın: Trigger severity >= Warning gibi bir koşul ekleyin ve Operations altında Admin'e e-posta yoluyla gönderilmesini sağlayın. Kaydedin ve etkinleştirin. Sohbet uygulamalarını mı tercih ediyorsunuz? Zabbix 7.0, Slack, Discord ve Telegram için webhook medya türleriyle gelir, ancak her biri SMTP ayarları yerine kendi servis kurulumuna ihtiyaç duyar: örneğin Telegram, BotFather aracılığıyla oluşturulmuş bir bot, medya türünün api_token parametresinde bir token ve kullanıcının Send to alanında alıcının sohbet kimliğini ister. Entegrasyonun README dosyasını izleyin, medya türünü etkinleştirin, bir kullanıcıya atayın ve eylem içinde tıpkı e-posta gibi kullanın.

İkinci bir sunucuyu agent ile izleme

Başka bir sunucuyu izlemek için Zabbix deposunu oraya da ekleyin; Ubuntu 24.04 kendi bünyesinde Zabbix paketleri barındırmaz, ardından sadece agent yazılımını kurun:

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update
sudo apt install -y zabbix-agent2

/etc/zabbix/zabbix_agent2.conf dosyasını düzenleyin, Server değerini Zabbix sunucusunun IP adresi olarak ayarlayın (pasif yoklama için). Aktif kontroller için ServerActive değerini ve arayüzde oluşturduğunuz ana makine (host) ile eşleşen benzersiz bir Hostname değerini girin:

Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01

sudo systemctl restart zabbix-agent2 komutunu çalıştırın ve Zabbix sunucusundan bu makineye giden TCP 10050 portunu açın. Yeniden başlatma işlemi önemlidir: paket, kurulum tamamlanır tamamlanmaz agent'ı varsayılan Server=127.0.0.1 ayarlarıyla başlatmıştır ve agent yapılandırma dosyasını yalnızca başladığı sırada okur. enable --now komutu agent'ın zaten çalıştığını görecek ve hiçbir şeyi değiştirmeyecektir; bu durumda agent, Zabbix sunucunuzdan gelen bağlantıları reddetmeye devam edecektir. Paket, birimi (unit) otomatik olarak etkinleştirdiği için sistem açılışında başlatma ayarı zaten yapılmıştır. Arayüzde, Agent arayüzü ilgili makinenin IP adresine işaret eden bir ana makine oluşturun, Linux şablonunu bağlayın; veriler bir dakika içinde raporlanacaktır.

Hata modları ve karşılaşacağınız dizgeler

Arayüzde Error connecting to database veya bir veritabanı hatası görüntüleniyor. Sihirbazın DB adımında Access denied for user 'zabbix'@'localhost' (using password: YES) hatası, parolanın 3. Adım ile eşleşmediği veya GRANT işleminin hiç çalıştırılmadığı anlamına gelir. Veritabanı bağlantısı başarılı olmasına rağmen arayüz The frontend does not match Zabbix database veya Table 'zabbix.users' doesn't exist hatası veriyorsa, 4. Adımdaki şema içe aktarma işlemi atlanmış veya başarısız olmuştur; işlemi yeni oluşturulmuş bir veritabanı üzerinde tekrar çalıştırın.

Turuncu başlık: Zabbix server is not running: the information displayed may not be current. Arayüz çalışıyor ancak canlı sunucuya erişemiyor. En olasıdan başlayarak üç neden mevcuttur. Servis durmuş olabilir; systemctl status zabbix-server komutuyla kontrol edin ve başlatın. Servis çalışıyor ancak veritabanına erişemiyor olabilir; günlük kayıtlarında [Z3001] connection to database 'zabbix' failed: [1045] Access denied hatası görünüyorsa bu, DBPassword değerinin yanlış veya boş olduğu anlamına gelir. Veya arayüz yanlış sunucuya yönlendirilmiş olabilir; bu değer /etc/zabbix/web/zabbix.conf.php dosyasında host localhost ve port 10051 olarak saklanır. Ubuntu üzerinde varsayılan olarak SELinux bulunmaz, bu nedenle RHEL kılavuzlarında belirtilen SELinux-socket sorunu burada geçerli değildir; bu durum neredeyse her zaman veritabanı parolası veya durmuş bir servisten kaynaklanır.

Host üzerinde kırmızı ZBX etiketi; öğe hatası Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused. Agent çalışmıyor veya dinleme yapmıyor. systemctl status zabbix-agent2 komutunu kontrol edin ve ListenPort=10050 durumunu doğrulayın. "Connection refused" yerine zaman aşımı (timeout) hatası alınıyorsa, bir güvenlik duvarı 10050 numaralı portu engelliyor demektir. İlgili Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions. hatası, agent'a erişilebildiğini ancak Server= satırında Zabbix sunucusunun IP adresinin listelenmediğini gösterir; IP adresini ekleyin ve agent'ı yeniden başlatın.

Düz nginx karşılama sayfası veya 502 Bad Gateway. Karşılama sayfası, varsayılan sitenin hala etkin olduğunu veya Zabbix bloğunun bağlı olmadığını gösterir; /etc/nginx/sites-enabled/default dosyasını kaldırın ve 6. Adımda belirtildiği gibi /etc/nginx/conf.d/zabbix.conf dosyasının varlığını doğrulayın. 502 hatası, nginx'in PHP'ye ulaştığını ancak PHP-FPM'in kapalı olduğunu veya farklı bir socket üzerinde dinleme yaptığını gösterir; php8.3-fpm servisini başlatın ve Zabbix bloğundaki fastcgi_pass socket yolunun çalışan havuz ile eşleştiğinden emin olun.

Yedeklemeler, yükseltmeler ve TLS

Veritabanı tüm geçmişi barındırır; bu nedenle mysqldump ile düzenli olarak yedekleyin ve dump dosyasını sunucu dışında bir yerde saklayın:

mysqldump --single-transaction zabbix | gzip > zabbix-$(date +%F).sql.gz

/etc/zabbix yapılandırma dosyaları küçüktür ve yedeklenmeleri önerilir ancak bunlar yeniden oluşturulabilir; veriler ise yeniden oluşturulamaz. Geri yükleme işlemi tersidir: veritabanını oluşturun, dump dosyasını içe aktarın ve yapılandırmayı veritabanına yönlendirin.

7.0 serisi içindeki yükseltmeler standart apt update && apt upgrade komutlarıyla gerçekleştirilir; sunucu, bir sonraki başlatma sırasında gerekli şema geçişlerini uygular. Bu nedenle paketleri yükseltin ve zabbix-server servisini yeniden başlatın. Gelecekteki bir ana sürüm yükseltmesi bilinçli bir adımdır; yükseltme notlarını okuyun, önce veritabanı dump dosyasını alın ve tek yönlü bir şema değişikliği olacağını göz önünde bulundurun. Bu tek yönlü değişim, bir LTS sürümüne sabitlenip o sürümde kalmanızın temel nedenidir.

Önyüzü (frontend) şifrelenmemiş HTTP üzerinde bırakmayın. DNS kayıtları sunucuyu işaret ettiğinde, Ubuntu 24.04 üzerinde nginx ile Certbot ve Let's Encrypt rehberini kullanarak bir sertifika kurun. Bu işlem, sunucu bloğunu 443 portunu dinleyecek ve 80 portundan gelen trafiği yönlendirecek şekilde günceller. Yönettiğiniz diğer tüm sunuculara erişim sağlayan bir sunucuyu güvenli hale getirirken, fail2ban ile kaba kuvvet SSH saldırılarını engelleme rehberini kullanarak SSH erişimini de kısıtlayın. Bir izleme girişi açık metin olarak iletilmemeli ve ana giriş kapısı parola tahmincilerine açık bırakılmamalıdır.

FAQ

Zabbix agent kullanmam gerekiyor mu, yoksa agent olmadan da izleme yapabilir miyim?

Her iki yöntem de çalışır. Agent (agent2), CPU, bellek, diskler, süreçler, servisler ve günlük dosyaları gibi zengin ana makine metrikleri sağlar ve kontrolünüz altındaki sunucular için standart tercihtir. Agentless izleme, yazılım kuramadığınız cihazları kapsar: anahtarlar ve yazıcılar için SNMP, erişilebilirlik için ICMP ping, uç noktalar için HTTP kontrolleri ve donanım sağlığı için IPMI. Çoğu gerçek kurulum bu iki yöntemi bir arada kullanır.

Arayüz neden Zabbix server çalışmıyor diyor?

Arayüz çalışır ancak canlı bir zabbix-server sürecine ulaşamaz. Genellikle sunucu başlamış, zabbix_server.conf içindeki DBPassword yanlış veya boş olduğu için oturum açamamış ve doğrudan kapanmıştır. systemctl status zabbix-server komutunu çalıştırın ve /var/log/zabbix/zabbix_server.log dosyasını okuyun; bir [Z3001] connection to database ... failed satırı durumu doğrular. Parolayı düzeltip yeniden başlatın, uyarı bir dakika içinde kaybolacaktır.

MySQL kullanmak zorunda mıyım, yoksa PostgreSQL kullanabilir miyim?

Her ikisi de tam olarak desteklenir: bu kılavuzda olduğu gibi MariaDB veya MySQL ile zabbix-server-mysql ya da PostgreSQL ile zabbix-server-pgsql. Küçük kurulumlar için seçimin pek bir önemi yoktur. Büyük kurulumlarda ise TimescaleDB eklentisine sahip PostgreSQL, geçmiş tablolarını bölümlere ayırır ve temizlik işlemlerini çok daha düşük maliyetli hale getirir; büyük sitelerin bu yöne eğilmesinin nedeni budur. Birini seçin ve onunla devam edin; daha sonra geçiş yapmak bir yapılandırma değişikliği değil, tam bir dışa aktarma ve yeniden içe aktarma süreci gerektirir.

Hepsi bir arada bir Zabbix sunucusu ne kadar RAM'e ihtiyaç duyar?

Birkaç ana makineyi izleyen tek bir sunucu için 2 GB gerçekçi bir alt sınırdır ve birkaç düzine ana makineden sonra 4 GB rahat bir kullanım sağlar; bellek büyük ölçüde veritabanı önbelleğine ve sunucunun yoklayıcılarına (pollers) gider. 1 GB'lık bir VPS çalışır ancak geçmiş veriler büyüdükçe veritabanı kaynak sıkıntısı çeker. Yüz ana makinenin ötesinde, veritabanını kendi sunucusuna ayırın ve tek bir makineye daha fazla RAM yığmak yerine veritabanının tampon havuzunu (buffer pool) optimize edin.

Zabbix birkaç sunucu için gereğinden fazla mı?

Olabilir. Eğer tek ihtiyacınız "sunucu ayakta mı?" sorusunun yanıtı ve paylaşabileceğiniz bir sayfa ise, Uptime Kuma ile çalışma süresi ve durum izleme gibi daha hafif bir araç, kurulumu daha hızlı ve bir bakışta okunması daha kolaydır. Metrik bazlı eşik değerleri, geçmiş grafikler, şablonlanmış ana makineler ve yükseltme kuralları gibi basit bir ping aracının bir filo genelinde sağlayamayacağı özelliklere ihtiyaç duyduğunuzda Zabbix'i seçin.