
Aşağıdaki rehber, Ubuntu 24.04 LTS üzerinde Zabbix 7.4’ü kaynak koddan (source) derleyerek kurmak için uçtan uca bir “runbook”tur: dependency paketleri, veritabanı hazırlığı, derleme, frontend kurulumu, systemd unit dosyaları ve servisleri ayağa kaldırma adımları dahil.
Not: Source kurulumda yolları ve kullanıcıları standartlaştırmak için /usr/local + /etc/zabbix + ayrı servis kullanıcıları (server/agent) yaklaşımını kullanıyorum (best practice).
0) Hazırlık: Sunucu güncelleme + temel araçlar
sudo -s
apt update && apt upgrade -y
apt install -y curl wget git vim nano unzip ca-certificates gnupg lsb-release
1) Zabbix için kullanıcılar ve dizinler (Best practice)
1.1 Ayrı kullanıcılar (server/agent ayrı)
addgroup --system --quiet zabbixsrv
adduser --system --disabled-login --ingroup zabbixsrv --home /var/lib/zabbix --no-create-home zabbixsrv
addgroup --system --quiet zabbixagt
adduser --system --disabled-login --ingroup zabbixagt --home /var/lib/zabbix --no-create-home zabbixagt
1.2 Dizinler
mkdir -p /etc/zabbix
mkdir -p /var/log/zabbix
mkdir -p /var/lib/zabbix
mkdir -p /run/zabbix
chown -R zabbixsrv:zabbixsrv /var/log/zabbix /run/zabbix
chown -R zabbixagt:zabbixagt /var/lib/zabbix
chmod 0755 /run/zabbix
2) Build dependency paketleri (Ubuntu 24.04)
Aşağıdakiler, Zabbix server + agent (agentd) derlemek için tipik ve güvenli bir set:
apt install -y \
build-essential pkg-config autoconf automake libtool \
libpcre2-dev libevent-dev zlib1g-dev \
libcurl4-openssl-dev libxml2-dev \
libsnmp-dev libssh2-1-dev \
libopenipmi-dev \
libldap2-dev libsasl2-dev \
libssl-dev \
default-libmysqlclient-dev
DB tercihi PostgreSQL ise default-libmysqlclient-dev yerine libpq-dev kurup configure’da --with-postgresql kullanırsın.
3) Veritabanı (MySQL/MariaDB) kurulumu ve Zabbix DB hazırlığı
3.1 MariaDB (Ubuntu repo) kurulumu
Ubuntu 24.04’te pratik ve yaygın tercih: MariaDB (MySQL uyumlu).
apt install -y mariadb-server
systemctl enable --now mariadb
3.2 DB ve kullanıcı
Aşağıdaki örnekte DB adı zabbix, kullanıcı zbxuser. Parolayı kendine göre değiştir.
mysql -uroot <<'SQL'
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zbxuser'@'localhost' IDENTIFIED BY 'Str0ngPassw0rd!ChangeMe';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zbxuser'@'localhost';
FLUSH PRIVILEGES;
SQL
4) Zabbix 7.4 kaynak kodunu indir ve çıkar
4.1 Arşiv indir (örnek sürüm: 7.4.0)
Sürümü ihtiyacına göre güncelle.
cd /usr/src
wget -O zabbix-7.4.0.tar.gz https://cdn.zabbix.com/zabbix/sources/stable/7.4/zabbix-7.4.0.tar.gz
tar -zxvf zabbix-7.4.0.tar.gz
cd zabbix-7.4.0
5) Derleme: configure / make / make install
5.1 Configure (Server + Agent)
Bu komut, server + agentd derler; MySQL/MariaDB backend kullanır; SNMP, curl, XML, IPMI, LDAP, SSH gibi tipik özellikleri açar:
export CFLAGS="-std=gnu99"
./configure \
--prefix=/usr/local \
--sysconfdir=/etc/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--with-openipmi \
--with-ssh2 \
--with-ldap \
--with-openssl
Hata alırsan en hızlı teşhis: config.log dosyasına bakılmalıdır.
5.2 Derle ve kur
make -j"$(nproc)"
make install
Kurulum sonrası beklenen binary yolları:
- Server:
/usr/local/sbin/zabbix_server - Agent:
/usr/local/sbin/zabbix_agentd - Tools:
/usr/local/bin/zabbix_get/usr/local/bin/zabbix_sender - Conf:
/etc/zabbix/*.conf(biz sysconfdir böyle verdik)
6) Zabbix Server DB şemasını import et
Source tree içindeki SQL dosyaları Zabbix sürümüne göre klasörlenir. Zabbix 7.x’te MySQL/MariaDB için genel yaklaşım schema + images + data import etmektir.
Aşağıdaki komutları Zabbix kaynak dizininde çalıştır:
cd /usr/src/zabbix-7.4.0
# DB import (MySQL/MariaDB)
mysql -u zbxuser -p zabbix < database/mysql/schema.sql
mysql -u zbxuser -p zabbix < database/mysql/images.sql
mysql -u zbxuser -p zabbix < database/mysql/data.sql
Eğer dosya yolları farklı görünürse (bazı paketlerde alt klasörler değişebilir), find database -maxdepth 3 -type f | grep mysql ile kontrol et.
7) Zabbix konfigürasyon dosyaları
7.1 Server conf (oluştur)
Source kurulumda örnek conf’lar conf/ veya misc/conf/ altında olabilir. Pratik yöntem: örnek conf’u kopyalayıp düzenlemek.
Örnek kopyalama (dosya yoksa find ile yerini bul):
cd /usr/src/zabbix-7.4.0
find . -maxdepth 3 -name "zabbix_server.conf" -o -name "zabbix_agentd.conf"
# Örnek varsayım:
cp -v conf/zabbix_server.conf /etc/zabbix/zabbix_server.conf
cp -v conf/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf
7.2 /etc/zabbix/zabbix_server.conf düzenle
nano /etc/zabbix/zabbix_server.conf
Minimum kritik parametreler:
DBHost=localhost
DBName=zabbix
DBUser=zbxuser
DBPassword=Str0ngPassw0rd!ChangeMe
LogFile=/var/log/zabbix/zabbix_server.log
PidFile=/run/zabbix/zabbix_server.pid
Best practice: Büyük ortamlarda Cache/Poller/Preprocessing ayarları optimize edilir; şimdilik default’lar ile başlayıp yük ölçerek büyütmek mantıklı.
7.3 /etc/zabbix/zabbix_agentd.conf düzenle
nano /etc/zabbix/zabbix_agentd.conf
Önerilen temel:
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix-Server
LogFile=/var/log/zabbix/zabbix_agentd.log
PidFile=/run/zabbix/zabbix_agentd.pid
Agent başka makinelerde olacaksa Server= satırına Zabbix Server IP’sini yaz.
8) Systemd unit dosyaları (server + agent)
8.1 Zabbix Server unit
/etc/systemd/system/zabbix-server.service oluştur:
cat >/etc/systemd/system/zabbix-server.service <<'EOF'
[Unit]
Description=Zabbix Server (source build)
After=network.target mariadb.service
Wants=mariadb.service
[Service]
Type=forking
User=zabbixsrv
Group=zabbixsrv
RuntimeDirectory=zabbix
RuntimeDirectoryMode=0755
PIDFile=/run/zabbix/zabbix_server.pid
ExecStart=/usr/local/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5s
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
8.2 Zabbix Agent unit
/etc/systemd/system/zabbix-agent.service oluştur:
cat >/etc/systemd/system/zabbix-agent.service <<'EOF'
[Unit]
Description=Zabbix Agent (source build)
After=network.target
[Service]
Type=forking
User=zabbixagt
Group=zabbixagt
RuntimeDirectory=zabbix
RuntimeDirectoryMode=0755
PIDFile=/run/zabbix/zabbix_agentd.pid
ExecStart=/usr/local/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5s
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
8.3 systemd reload + enable + start
systemctl daemon-reload
systemctl enable --now zabbix-server zabbix-agent
systemctl status zabbix-server zabbix-agent --no-pager
Log kontrol:
tail -n 200 /var/log/zabbix/zabbix_server.log
tail -n 200 /var/log/zabbix/zabbix_agentd.log
9) Frontend (Web UI) kurulumu (Apache + PHP)
9.1 Apache + PHP + gerekli PHP extension’lar
Ubuntu 24.04’te PHP 8.3 yaygın gelir.
apt install -y apache2 php php-mysql php-gd php-xml php-bcmath php-mbstring php-ldap php-curl
systemctl enable --now apache2
9.2 PHP ayarları (Zabbix için önerilen)
cat >/etc/php/8.3/apache2/conf.d/99-zabbix.ini <<'EOF'
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
upload_max_filesize = 16M
date.timezone = Europe/Istanbul
EOF
systemctl restart apache2
9.3 Zabbix UI dosyalarını kopyala
Source dizinindeki ui klasörünü web root altına al:
mkdir -p /var/www/html/zabbix
cp -a /usr/src/zabbix-7.4.0/ui/. /var/www/html/zabbix/
chown -R www-data:www-data /var/www/html/zabbix
Tarayıcıdan:
http://SUNUCU_IP/zabbix
Kurulum sihirbazında DB bilgilerini gir:
- DB:
zabbix - User:
zbxuser - Password: (belirlediğin parola)
- Host:
localhost
10) Firewall (UFW) hızlı açılımlar (opsiyonel)
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 10051/tcp
ufw allow 10050/tcp
ufw enable
ufw status
Daha güvenlisi: 10050/10051’i sadece gerekli network’lere sınırlandırmak.
11) Hızlı doğrulama checklist
- Servisler ayakta mı?
systemctl is-active zabbix-server
systemctl is-active zabbix-agent
- Portlar dinliyor mu?
ss -lntp | egrep '10050|10051|80'
- DB tabloları oluştu mu?
mysql -u zbxuser -p -e "USE zabbix; SHOW TABLES;" | head