SSD Nodes Learn
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-07-24

Cara Install Zabbix 7.0 LTS di Ubuntu 24.04

Panduan lengkap instalasi Zabbix 7.0 LTS di Ubuntu 24.04. Pelajari cara konfigurasi nginx, import skema MySQL, dan solusi error saat setup server Zabbix.

Apa yang Anda bangun

Satu VPS Ubuntu 24.04 yang menjalankan seluruh stack Zabbix 7.0 LTS: daemon zabbix-server untuk polling dan alert, database MariaDB/MySQL untuk menyimpan setiap metrik, frontend PHP yang dilayani oleh nginx, dan zabbix-agent2 untuk mengumpulkan metrik dari server itu sendiri. Setelah aktif, Anda dapat menghubungkannya ke server kedua, memasang template, dan menerima email saat disk penuh atau layanan mati.

Zabbix lebih berat daripada alat halaman status: ini adalah sistem time-series nyata dengan template, trigger, eskalasi, dan retensi riwayat. Sebagian besar kendala terjadi pada tiga langkah yang sering dilewati pengguna — mengimpor skema database, mengatur kata sandi database yang dibaca server, dan membuka komentar pada dua baris di konfigurasi nginx. Jika langkah tersebut benar, sisanya akan sangat mudah. Jika Anda hanya membutuhkan pengecekan up/down dan halaman status yang dapat dibagikan, monitor status Uptime Kuma yang ringan dapat melakukannya dalam satu container; Zabbix sangat berguna saat Anda membutuhkan ambang batas per-metrik dan eskalasi di banyak host.

Gunakan lini 7.0 LTS: server, frontend, agent2, dan skemanya memiliki versi yang selaras, serta mendapatkan perbaikan keamanan selama bertahun-tahun. Sebelum menyalin nama file repositori di bawah, periksa halaman unduhan resmi Zabbix — paket rilis latest selalu mengarah ke rilis poin 7.0 terbaru, tetapi jika Anda ingin mengunci build 7.0-N yang spesifik, halaman tersebut juga mencantumkan nama filenya. Semua perintah lainnya di sini bersifat stabil untuk seluruh lini 7.0.

Ukuran, port, dan prasyarat

Asumsikan menggunakan Ubuntu 24.04 KVM VPS baru dengan akses root atau sudo. Perhatikan kebutuhan sumber daya: 2 GB RAM dan dua vCPU adalah batas minimum realistis untuk menjalankan server, database, nginx, dan PHP dalam satu mesin guna memantau beberapa host. Mesin dengan 1 GB dapat melakukan booting, namun akan kekurangan memori untuk database seiring bertambahnya data histori; rencanakan penggunaan 4 GB jika jumlah host melebihi beberapa lusin, dan jika melebihi seratus host, pindahkan database ke server terpisah. Kapasitas disk akan bertambah sesuai dengan jumlah item yang dikumpulkan dan durasi penyimpanan histori; siapkan beberapa gigabyte untuk awal, dan fitur housekeeper akan menghapus data lama berdasarkan jendela retensi yang Anda tentukan.

Port: 80 dan 443 untuk frontend, dapat bersifat publik atau dibatasi hanya untuk IP Anda sendiri. Server mendengarkan pada TCP 10051 untuk agen aktif yang mengirimkan data, dan setiap agen mendengarkan pada TCP 10050 untuk pengambilan data oleh server. Buka hanya port yang Anda ekspos jika terdapat firewall di depan. Memiliki DNS A record untuk frontend sangat disarankan, karena Anda akan membutuhkan sertifikat asli pada layanan tersebut — sebuah mesin Zabbix memantau setiap layanan lain yang Anda jalankan, sehingga layanan ini merupakan bagian dari stack self-hosting yang layak dijalankan pada 2026 dan bukan sekadar tambahan di akhir.

Langkah 1 — Tambahkan repositori resmi Zabbix 7.0

Paket zabbix-release hanya melakukan satu hal: menambahkan daftar sumber apt dan kunci tanda tangan ke sistem Anda. Instal paket tersebut, lalu segarkan indeks.

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

Jika wget mengembalikan 404 Not Found, nama berkas telah berpindah — buka halaman unduhan Zabbix, pilih Ubuntu 24.04, dan salin URL zabbix-release yang ditampilkan. apt update yang bersih akan menunjukkan baris repo.zabbix.com tanpa peringatan kunci; The following signatures couldn't be verified because the public key is not available berarti paket rilis gagal menginstal kuncinya, jadi jalankan kembali dpkg -i dan lakukan pembaruan lagi.

Langkah 2 — Instal server, frontend, dan agent

Instal server yang dibangun untuk MySQL, frontend PHP, konfigurasi nginx, file skema SQL, dan agent2 secara sekaligus.

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

zabbix-server-mysql adalah server yang dikompilasi untuk MySQL/MariaDB; untuk PostgreSQL, instal zabbix-server-pgsql sebagai gantinya dan sesuaikan langkah database di bawah ini. zabbix-sql-scripts berisi skema yang akan Anda impor selanjutnya — ini adalah paket terpisah pada versi 7.0, dan melewatkan paket ini akan menyebabkan jalur impor tidak ditemukan nantinya. Tidak ada dari paket ini yang menyertakan mesin database, jadi instal MariaDB sekarang jika sistem belum memilikinya.

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

Langkah 3 — Buat database dengan karakter set yang tepat

Zabbix sangat ketat terhadap collation: database harus menggunakan utf8mb4 dengan utf8mb4_bin, jika tidak, proses impor akan gagal di tengah jalan karena error foreign-key. Buka shell root dengan sudo mysql dan jalankan:

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;

Baris SET GLOBAL tersebut berfungsi sebagai pengaman untuk proses impor. Skema Zabbix membuat stored functions, dan akun non-SUPER seperti zabbix tidak dapat membuatnya saat binary logging aktif — MySQL 8 mengaktifkan binary logging secara default, dan beberapa build MariaDB terkelola juga mengaktifkannya (MariaDB standar tidak). Melewatkan flag tersebut pada server dengan binary logging aktif akan menyebabkan impor berhenti dengan ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled. Mengaturnya sebagai root akan mengatasi masalah tersebut; matikan kembali setelah impor selesai. Catat password dengan tepat — konfigurasi server membutuhkan string yang sama persis setiap byte-nya.

Langkah 4 — Impor skema (langkah yang sering dilewati)

Ini adalah alasan paling umum mengapa frontend baru gagal dimuat: database yang Anda buat masih kosong. Impor skema yang disertakan dalam zabbix-sql-scripts ke dalamnya.

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

Proses ini akan meminta kata sandi zabbix, berjalan selama tiga puluh hingga enam puluh detik pada VPS kecil, dan tidak menampilkan output apa pun jika berhasil — kondisi tanpa output adalah normal. zcat: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz: No such file or directory berarti paket zabbix-sql-scripts belum terinstal (kembali ke Langkah 2). ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' berarti kata sandi atau hak akses dari Langkah 3 salah. Setelah selesai, aktifkan kembali flag keamanan:

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

Konfirmasi pemuatan dengan sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;" — jika muncul angka dan bukan error doesn't exist, berarti skema telah berhasil masuk.

Step 5 — Atur kata sandi database di zabbix_server.conf

Server membaca kredensial database dari /etc/zabbix/zabbix_server.conf. Hanya kata sandi yang perlu diatur — DBName dan DBUser sudah menggunakan nilai default zabbix. Hilangkan tanda komentar pada baris # DBPassword= dan atur nilainya:

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

Kata sandi harus sama persis dengan kata sandi dari Step 3. DBPassword yang kosong atau salah adalah penyebab utama munculnya pesan "Zabbix server is not running" di kemudian hari: daemon berjalan, gagal login, lalu berhenti. Tidak ada keterangan di layar — hanya log yang menunjukkannya.

Step 6 — Arahkan nginx ke frontend

Paket zabbix-nginx-conf menginstal server block di /etc/zabbix/nginx.conf dan menghubungkannya ke nginx dari /etc/nginx/conf.d/zabbix.conf, tetapi baris listen dan server_name dalam kondisi dikomentari. Nginx tidak akan melayani apa pun untuk Zabbix sampai Anda mengedit baris tersebut:

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

Gunakan domain Anda, atau IP publik server jika Anda belum memiliki DNS. Ada dua kendala. Situs sambutan default nginx di Ubuntu juga mendengarkan pada port 80 dan ditandai sebagai default server, sehingga situs tersebut akan dimenangkan untuk setiap permintaan yang namanya tidak cocok — hapus situs tersebut agar halaman yang benar dapat dimuat: sudo rm -f /etc/nginx/sites-enabled/default. Dan jika /etc/nginx/conf.d/zabbix.conf hilang (masalah pengemasan yang umum), buat tautan secara manual dengan sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/conf.d/zabbix.conf. Kemudian lakukan pengujian dan muat ulang:

sudo nginx -t
sudo systemctl reload nginx

nginx -t seharusnya mencetak test is successful. Jika yang muncul adalah nginx: [emerg] a duplicate default server for 0.0.0.0:80, berarti situs default dan blok Zabbix sama-sama mengklaim default_server — hapus situs default dan uji kembali. Sering kali pengujian berhasil dengan hanya satu peringatan conflicting server name, namun browser tetap menampilkan halaman sambutan standar: hal ini terjadi karena situs default dimenangkan pada nama yang tidak cocok, dan menghapusnya akan memperbaiki masalah tersebut.

Step 7 — Jalankan dan aktifkan layanan

Jalankan server, agent, PHP-FPM, dan nginx, lalu aktifkan agar layanan tetap berjalan setelah reboot.

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 menyertakan PHP 8.3, sehingga layanan FPM adalah php8.3-fpm; paket zabbix-nginx-conf menjalankan frontend di bawah master yang sama. Pastikan server berhasil berjalan dan tetap aktif:

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

Log yang normal diakhiri dengan keterangan server telah berjalan serta proses housekeeper, poller, dan trapper sedang berjalan. Jika muncul [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost', berarti DBPassword dari Step 5 tidak cocok — perbaiki dan restart. Baris [Z3005] query failed: [1146] Table 'zabbix.dbversion' doesn't exist berarti Anda melewatkan impor skema pada Step 4, sehingga server tidak memiliki data untuk dibaca.

Step 8 — Selesaikan wizard pengaturan web

Buka http://your-domain-or-ip. Wizard pengaturan Zabbix akan terbuka. Ikuti langkah-langkah berikut:

  1. Welcome — pilih bahasa.
  2. Check of pre-requisites — setiap baris harus menunjukkan status OK secara default; paket /etc/zabbix/php-fpm.conf sudah mengatur limit PHP yang dibutuhkan Zabbix.
  3. Configure DB connection — tipe database MySQL, host localhost, port 0 (berarti port default atau socket), nama database zabbix, user zabbix, dan gunakan kata sandi dari Step 3. Kredensial yang salah atau skema yang hilang akan terdeteksi di sini.
  4. Settings — biarkan host server Zabbix localhost, port 10051, dan berikan nama untuk instalasi.
  5. Pre-installation summary, lalu Install — wizard akan menulis /etc/zabbix/web/zabbix.conf.php.
  6. Finish — masuk sebagai Admin (A kapital) dengan kata sandi zabbix, dan segera ubah kata sandi tersebut di menu Users.

Jika wizard melaporkan Cannot create the configuration file, berarti user web tidak dapat menulis /etc/zabbix/web/ — unduh zabbix.conf.php yang ditawarkan, letakkan file tersebut secara manual menggunakan sudo, lalu klik Finish.

Langkah 9 — Tambahkan host lokal dan hubungkan template

Zabbix tidak memantau dirinya sendiri secara otomatis. Buka Data collection → Hosts → Create host, atur nama host menjadi zabbix-server, tambahkan ke grup Linux servers, dan tambahkan interface Agent dengan IP 127.0.0.1, port 10050. Di bawah Templates, hubungkan Linux by Zabbix agent (varian passive-poll; Linux by Zabbix agent active menggunakan agent push). Simpan.

Dalam waktu satu menit, baris host akan menampilkan label ZBX berwarna hijau dan metrik akan muncul di bawah Monitoring → Latest data. Label ZBX berwarna merah berarti server tidak dapat menjangkau agent — ini adalah mode kegagalan yang dibahas di bawah, bukan kesalahan pada langkah ini.

Step 10 — Satu trigger berguna dan peringatan email

Template Linux by Zabbix agent sudah menyertakan trigger untuk penggunaan CPU tinggi, memori rendah, dan disk penuh, sehingga Anda langsung mendapatkan peringatan setelah menghubungkannya. Untuk mempelajari cara pembuatannya, tambahkan trigger Anda sendiri: buka host, buka Triggers → Create trigger, beri nama Root filesystem over 90% full on {HOST.NAME}, atur severity ke High, dan gunakan ekspresi ini:

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

vfs.fs.dependent.size[/,pused] adalah item persentase penggunaan yang dibuat oleh filesystem discovery pada template untuk filesystem root (template Linux 7.0 mengumpulkan vfs.fs.get satu kali dan menurunkan item berdasarkan mount), sehingga trigger akan aktif tanpa pengumpulan data tambahan. Simpan perubahan tersebut.

Trigger hanya akan mengubah warna baris pada dashboard sampai sebuah action memberikan notifikasi kepada seseorang. Di bawah Alerts → Media types → Email, atur SMTP server, port, alamat pengirim, connection security (biasanya STARTTLS), dan kredensial relay, lalu gunakan Test — jika gagal, berarti jalur SMTP salah sebelum peringatan asli dikirimkan. Berikan alamat email pada user Admin di Users → Users → Admin → Media → Add dan pilih severity mana yang akan memberikan notifikasi. Kemudian hubungkan di bawah Alerts → Actions → Trigger actions → Create action: tambahkan kondisi seperti Trigger severity >= Warning, dan di bawah Operations kirim ke Admin via Email. Simpan dan aktifkan. Lebih suka chat? Zabbix 7.0 menyertakan media type webhook untuk Slack, Discord, dan Telegram — konfigurasikan sama persis seperti Email dan tugaskan ke user.

Memantau server kedua dengan agent

Untuk memantau server lain, tambahkan repositori Zabbix di sana juga — Ubuntu 24.04 tidak menyertakan paket Zabbix secara bawaan — kemudian instal agent saja:

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

Edit /etc/zabbix/zabbix_agent2.conf, atur Server ke IP server Zabbix (untuk passive polling) dan, untuk active checks, ServerActive ditambah Hostname unik yang sesuai dengan host yang Anda buat di frontend:

Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01

Jalankan sudo systemctl enable --now zabbix-agent2 dan buka TCP 10050 dari server Zabbix ke mesin ini. Kembali ke frontend, buat host dengan interface Agent yang mengarah ke IP mesin tersebut, hubungkan template Linux, dan data akan muncul dalam waktu satu menit.

Mode kegagalan, dengan string yang akan Anda lihat

Frontend menampilkan Error connecting to database atau error database. Pada langkah DB di wizard, Access denied for user 'zabbix'@'localhost' (using password: YES) berarti kata sandi tidak sesuai dengan Langkah 3 atau GRANT tidak pernah dijalankan. Jika database terhubung tetapi frontend melaporkan The frontend does not match Zabbix database atau Table 'zabbix.users' doesn't exist, impor skema pada Langkah 4 dilewati atau gagal — jalankan ulang ke database yang baru dibuat.

Banner oranye: Zabbix server is not running: the information displayed may not be current. Frontend aktif tetapi tidak dapat menjangkau server live. Ada tiga penyebab, penyebab pertama adalah yang paling mungkin. Layanan mati — periksa systemctl status zabbix-server dan jalankan layanan tersebut. Layanan berjalan tetapi tidak dapat menjangkau database — log menunjukkan [Z3001] connection to database 'zabbix' failed: [1045] Access denied, yang berarti DBPassword salah atau kosong. Atau frontend mengarah ke server yang salah, tersimpan sebagai host localhost port 10051 di /etc/zabbix/web/zabbix.conf.php. Pada Ubuntu, SELinux tidak aktif secara default, sehingga penyebab SELinux-socket yang disebutkan dalam panduan RHEL tidak berlaku; di sini penyebabnya hampir selalu adalah kata sandi database atau layanan yang berhenti.

Host menampilkan label merah ZBX; error item Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused. Agent tidak berjalan atau tidak mendengarkan (listening). Periksa systemctl status zabbix-agent2 dan konfirmasi ListenPort=10050. Timeout alih-alih "connection refused" berarti firewall memblokir port 10050. Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions. terkait berarti agent dapat dijangkau tetapi baris Server= tidak mencantumkan IP Zabbix server — tambahkan IP tersebut dan restart agent.

Halaman selamat datang nginx standar, atau 502 Bad Gateway. Halaman selamat datang berarti situs default masih aktif atau blok Zabbix tidak terhubung — hapus /etc/nginx/sites-enabled/default dan konfirmasi /etc/nginx/conf.d/zabbix.conf tersedia, seperti pada Langkah 6. 502 berarti nginx berhasil menjangkau PHP tetapi PHP-FPM mati atau mendengarkan pada socket yang berbeda — jalankan php8.3-fpm dan pastikan socket fastcgi_pass pada blok Zabbix sesuai dengan pool yang berjalan.

Backups, upgrades, and TLS

Database berisi seluruh riwayat, jadi lakukan backup dengan mysqldump secara terjadwal dan simpan file dump di luar server:

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

File konfigurasi /etc/zabbix berukuran kecil dan layak disimpan, tetapi dapat dibangun ulang; data tidak dapat dibangun ulang. Proses restorasi adalah kebalikannya — buat database, impor dump, dan arahkan konfigurasi ke database tersebut.

Upgrade dalam versi 7.0 adalah proses apt update && apt upgrade biasa; server akan menerapkan migrasi skema pada saat startup berikutnya, jadi perbarui paket dan restart zabbix-server. Upgrade ke versi mayor berikutnya adalah langkah yang disengaja — baca catatan upgrade, lakukan dump database terlebih dahulu, dan bersiaplah untuk perubahan skema satu arah. Perubahan satu arah tersebut adalah alasan mengapa Anda harus menggunakan versi LTS dan tetap pada versi tersebut.

Jangan biarkan frontend menggunakan HTTP biasa. Setelah DNS mengarah ke server, pasang sertifikat menggunakan Certbot dan Let's Encrypt pada nginx untuk Ubuntu 24.04, yang akan menulis ulang server block untuk mendengarkan pada port 443 dan mengalihkan port 80. Saat Anda memperkuat keamanan server yang digunakan untuk memantau server lain, amankan juga SSH dengan fail2ban untuk memblokir upaya brute-force SSH. Akun login pemantauan tidak boleh dikirim dalam teks biasa, dan akses utamanya tidak boleh terbuka bagi upaya penebakan kata sandi.

FAQ

Apakah saya memerlukan Zabbix agent, atau bisakah saya memonitor tanpa itu?

Keduanya dapat digunakan. Agent (agent2) memberikan metrik per-host yang lengkap — CPU, memori, disk, proses, layanan, file log — dan merupakan pilihan standar untuk server yang Anda kendalikan. Monitoring tanpa agent (agentless) mencakup perangkat di mana Anda tidak dapat menginstal perangkat lunak: SNMP untuk switch dan printer, ICMP ping untuk konektivitas, pemeriksaan HTTP untuk endpoint, dan IPMI untuk kesehatan perangkat keras. Sebagian besar implementasi nyata menggabungkan keduanya.

Mengapa frontend menyatakan bahwa Zabbix server tidak berjalan?

Frontend berfungsi tetapi tidak dapat menjangkau proses zabbix-server yang aktif. Biasanya server sudah berjalan, namun gagal login karena DBPassword di zabbix_server.conf salah atau kosong, sehingga koneksi terputus. Jalankan systemctl status zabbix-server dan baca /var/log/zabbix/zabbix_server.log; baris [Z3001] connection to database ... failed akan mengonfirmasinya. Perbaiki kata sandi dan restart, maka pesan tersebut akan hilang dalam waktu satu menit.

Apakah saya harus menggunakan MySQL, atau bisakah saya menggunakan PostgreSQL?

Keduanya didukung sepenuhnya: zabbix-server-mysql dengan MariaDB atau MySQL seperti panduan ini, atau zabbix-server-pgsql dengan PostgreSQL. Untuk instalasi kecil, pilihan tersebut tidak terlalu berpengaruh. Untuk instalasi besar, PostgreSQL dengan ekstensi TimescaleDB melakukan partisi pada tabel riwayat dan membuat pemeliharaan jauh lebih efisien, itulah sebabnya situs besar cenderung memilihnya. Pilih satu dan tetap gunakan itu — migrasi di kemudian hari memerlukan ekspor dan impor penuh, bukan sekadar mengganti konfigurasi.

Berapa banyak RAM yang dibutuhkan server Zabbix all-in-one?

Untuk satu mesin yang memonitor sejumlah kecil host, 2 GB adalah batas minimum yang realistis dan 4 GB sudah nyaman setelah melewati beberapa lusin host; memori sebagian besar digunakan untuk cache database dan poller server. VPS 1 GB dapat berjalan tetapi akan kekurangan memori saat data riwayat bertambah besar. Jika lebih dari seratus host, pisahkan database ke server tersendiri dan lakukan tuning pada buffer pool daripada menambah RAM pada satu mesin yang sama.

Apakah Zabbix berlebihan untuk hanya beberapa server?

Bisa jadi. Jika Anda hanya membutuhkan status "apakah perangkat menyala?" dan halaman yang dapat dibagikan, alat yang lebih ringan seperti Uptime Kuma untuk monitoring uptime dan status lebih cepat untuk disiapkan dan lebih mudah dibaca secara sekilas. Pilih Zabbix jika Anda membutuhkan ambang batas per-metrik, grafik historis, template host, dan aturan eskalasi — fitur-fitur yang tidak dapat diberikan oleh pinger sederhana untuk banyak perangkat.