Membangun sistem yang selalu tersedia: failover dengan CARP (Common Address Redundancy Protocol), konsep carpdev dan load balancing. Kalian juga akan memasang pemantauan dengan sysstat, netdata, Prometheus dan node_exporter, serta mengelola log dengan newsyslog dan /etc/newsyslog.conf.

Di episode 19 sebelumnya kalian sudah menjalankan FreeBSD sebagai router dan server aplikasi. Sekarang kita naik ke level berikutnya: high availability dan monitoring — kemampuan sistem untuk tetap berjalan saat ada yang gagal, dan kemampuan kalian untuk melihatnya sebelum gagal.
Satu server yang andal masih punya satu titik kegagalan. Dengan CARP, dua server FreeBSD bisa berbagi alamat IP yang sama dan otomatis mengambil alih saat server utama mati. Dan dengan monitoring yang baik, kalian tahu masalah sebelum pengguna merasakannya. Mari kita bangun keduanya.
CARP (Common Address Redundancy Protocol) adalah protokol failover yang memungkinkan beberapa host berbagi alamat IP virtual. Jika host utama mati, host cadangan mengambil alih alamat tersebut dalam beberapa detik — klien tidak merasakan gangguan.
CARP adalah modul kernel:
kldload carp
sysrc if_carp_load="YES"Konfigurasi dilakukan dengan membuat interface carp0 di kedua server. Pada server master:
sysrc cloned_interfaces="carp0"
sysrc ifconfig_carp0="vhid 1 pass secret123 192.168.1.254/24"Pada server backup, tambahkan carpdev dan prioritas yang lebih rendah:
sysrc ifconfig_carp0="vhid 1 advskew 100 pass secret123 192.168.1.254/24 carpdev em1"Warning
Kedua server harus memakai vhid yang sama dan pass yang sama. advskew menentukan prioritas — nilai lebih kecil berarti lebih "diprioritaskan" menjadi master. Jangan pernah memakai password CARP yang mudah ditebak.
Untuk menguji, matikan interface master dan amati apakah backup mengambil alih:
ifconfig carp0
ifconfig carp0 down
ifconfig carp0 upifconfig carp0 menampilkan status MASTER atau BACKUP. Saat master mati, backup otomatis naik menjadi MASTER dan memegang alamat IP virtual.
Alamat IP virtual CARP bisa dipakai untuk layanan apa pun — dari router gateway hingga reverse proxy. Kombinasi CARP + layanan aktif (seperti Nginx atau pf) membuat klien selalu punya target yang hidup.
Success
CARP adalah dasar high availability di FreeBSD. Dengan CARP untuk failover IP, pf untuk state sync antar firewall, dan ZFS untuk data, kalian memiliki triplet yang membuat sistem bertahan dari kegagalan hardware.
Selain failover, CARP bisa dipadukan dengan load balancing: beberapa server aktif berbagi lalu lintas. Di layer aplikasi, Nginx dapat bertindak sebagai load balancer:
upstream backend {
server 192.168.1.10;
server 192.168.1.11;
}Untuk layer jaringan, pf juga bisa membagi koneksi (episode 12). Pilih lapisan sesuai kebutuhan dan kompleksitas.
sysstat menjalankan pemantauan terjadwal dengan cron dan menyimpan riwayat:
pkg install sysstatSetelah diaktifkan via cron, kalian bisa membaca riwayat statistik dengan vmstat dan systat berdasarkan data yang terkumpul.
netdata memberi dashboard real-time yang kaya tanpa konfigurasi rumit:
pkg install netdata
sysrc netdata_enable="YES"
service netdata startNetdata menampilkan metrik sistem, jaringan, dan aplikasi melalui web browser — cara tercepat untuk memvisualisasikan kondisi mesin.
Untuk monitoring yang bisa dikumpulkan dan disimpan jangka panjang, pasang Prometheus dan node_exporter:
pkg install prometheus node_exporter
sysrc node_exporter_enable="YES"
service node_exporter startnode_exporter mengekspos metrik di port 9100, dan Prometheus mengumpulkannya secara berkala:
curl -s http://127.0.0.1:9100/metrics | headInfo
Pola yang direkomendasikan: node_exporter di setiap mesin mengekspos metrik, Prometheus mengumpulkan dan menyimpan, lalu Grafana memvisualisasikan. Ini arsitektur monitoring standar industri yang berjalan baik di FreeBSD.
newsyslog memutar (merotasi) file log agar tidak membengkak tanpa batas. Konfigurasi ada di /etc/newsyslog.conf:
cat /etc/newsyslog.confContoh entri: ukuran maksimum, jumlah file lama, dan mode kompresi.
Tambahkan rotasi untuk log aplikasi sendiri:
/var/log/app.log 644 7 100 * JEntri di atas: mode 644, simpan 7 file, putar saat mencapai 100 KB, tanpa jeda.
Warning
Log yang tidak dirotasi akan memenuhi disk dan bisa menghentikan layanan. Pastikan setiap aplikasi yang menulis log punya entri newsyslog — disk penuh adalah penyebab kegagalan yang paling sering diabaikan.
Jalankan rotasi manual untuk pengujian:
newsyslog
ls -la /var/log | headSatu mesin bisa mengumpulkan semuanya: node_exporter untuk metrik, sysstat untuk riwayat, newsyslog untuk rotasi log, dan netdata untuk dashboard cepat:
service node_exporter status
service netdata status
newsyslog -vDi episode 20 ini kalian sudah membangun high availability dengan CARP dan memahami konsep carpdev serta load balancing, lalu memasang pemantauan dengan sysstat, netdata, Prometheus dan node_exporter, serta mengelola log dengan newsyslog.
Inti yang harus dibawa pulang:
Di episode 21 selanjutnya kita akan membahas FreeBSD ecosystem & tooling modern — FreeBSD Foundation, jurnal dan komunitas, orkestrasi jail dengan BastilleBSD, CBSD dan iocage, poudriere sebagai build farm, serta workflow modern dengan Vagrant dan CI/CD GitHub Actions di runner FreeBSD.