Episode ini membahas arsitektur distribusi Wazuh untuk skala production. Kita menyiapkan cluster indexer dengan beberapa node, cluster manager tiga node, memahami peran master dan worker, load balancing agents, serta high availability dan failover untuk seluruh komponen.

Di episode 13, kita membahas integrasi Docker dan Kubernetes. Sekarang kita naik satu level lagi: mengatur Wazuh itu sendiri agar siap skala. Semua instalasi sejauh ini kita lakukan dalam satu node all-in-one, yang cukup untuk lab atau lingkungan kecil.
Di production, single node menjadi titik kegagalan. Manager mati berarti alert berhenti, indexer mati berarti data hilang, dashboard mati berarti tidak ada yang bisa membaca. Di episode 14 ini, kita akan membangun arsitektur distribusi Wazuh: cluster indexer multi-node, cluster manager tiga node, dan dashboard, lengkap dengan load balancing dan failover.
Kita mulai dengan memahami peran tiap komponen, lalu melihat topologi lab versus production, dan menutup dengan langkah menyiapkan cluster beserta strategi scale out.
Arsitektur distribusi Wazuh terdiri dari tiga keluarga komponen yang harus dipahami perannya masing-masing.
Setiap komponen bisa di-cluster sendiri-sendiri. Inilah kunci arsitektur distributed: skala tiap komponen sesuai beban kerjanya.
Jangan mencampur kebutuhan lab dan production.
Aturan praktis sederhana: semakin besar volume event, semakin besar pula indexer. Semakin banyak agent, semakin besar pula manager. Dashboard jarang menjadi bottleneck, cukup satu instance dengan node kedua untuk failover.
Indexer memakai cluster OpenSearch dengan model quorum. Untuk menghindari split brain, jumlah node harus ganjil, minimal tiga. Ketiga node menyimpan data yang sama sebagai replika, sehingga satu node mati tidak menghilangkan data.
Setiap node indexer membutuhkan konfigurasi cluster yang seragam. Hal yang harus sama adalah nama cluster, sedangkan nama node harus unik.
cluster.name: wazuh-cluster
node.name: indexer-1
discovery.seed_hosts:
- 10.0.0.11
- 10.0.0.12
- 10.0.0.13Ubah nilai node.name menjadi indexer-2 dan indexer-3 pada node berikutnya. Untuk berkomunikasi dengan manager, Wazuh memakai Filebeat. Filebeat pada tiap manager dikonfigurasi mengirim data ke semua node indexer.
output.elasticsearch:
hosts:
- https://10.0.0.11:9200
- https://10.0.0.12:9200
- https://10.0.0.13:9200Dengan daftar host lengkap, Filebeat otomatis mencoba node berikutnya jika salah satu mati. Inilah failover dasar untuk aliran data.
Manager bisa di-cluster dengan mode master dan worker. Satu node menjadi master, sisanya worker. Master mengelola status cluster, sedangkan worker memproses event dari agent.
Konfigurasi cluster dilakukan di /var/ossec/etc/ossec.conf pada bagian <cluster>. Nama dan node harus konsisten di semua manager.
<cluster>
<name>wazuh-cluster</name>
<node_name>manager-1</node_name>
<node_type>master</node_type>
<key>c9d3b5e7a1f2b4c6d8e0a1b2c3d4e5f6</key>
<port>1516</port>
<bind_addr>0.0.0.0</bind_addr>
<nodes>
<node>10.0.1.11</node>
<node>10.0.1.12</node>
<node>10.0.1.13</node>
</nodes>
</cluster>Pada node kedua dan ketiga, ubah node_name dan node_type. Hanya satu node yang boleh menjadi master.
Pembagian kerja ini penting dipahami:
Jika master mati, worker tidak langsung berhenti memproses event, tapi kemampuan manajemen cluster terganggu. Karena itu, pastikan master punya monitoring dan backup yang baik.
Agent harus tahu ke mana harus mengirim event. Ada dua pendekatan utama.
Contoh konfigurasi load balancer dengan nginx di depan manager:
upstream wazuh_managers {
server 10.0.1.11:1514;
server 10.0.1.12:1514;
server 10.0.1.13:1514;
}
server {
listen 1514 udp;
proxy_pass wazuh_managers;
}Dengan konfigurasi ini, agent cukup tahu satu alamat saja, dan beban tersebar merata ke ketiga manager.
High availability lahir dari kombinasi semua lapisan tadi.
Info
Failover bukan tanpa jeda. Saat worker berpindah, agent butuh beberapa detik untuk reconnect. Untuk kebutuhan yang benar-benar real time, pertimbangkan menambah kapasitas daripada mengejar failover super cepat.
Wazuh menyediakan endpoint API untuk memantau status cluster. Lewat dashboard, kita bisa melihat node mana yang hidup, berapa agent yang terhubung ke tiap worker, dan apakah sinkronisasi berjalan normal.
curl -k -u wazuh-wui:SecretWUI \
https://10.0.1.11:55000/cluster/statusPantau metrik ini secara berkala. Worker yang kelebihan beban menandakan perlunya penambahan node, sedangkan node indexer yang penuh menandakan perlunya penambahan kapasitas penyimpanan.
Di episode 14 ini, kita membangun arsitektur distribusi Wazuh untuk skala production. Kita memahami peran indexer, manager, dan dashboard, membedakan topologi lab dan production, menyiapkan cluster indexer tiga node dengan quorum, cluster manager master dan worker, serta load balancing dan failover di setiap lapisan.
Inti yang harus dibawa pulang:
Arsitektur sudah siap, sekarang kita memperkuat kuncinya. Di episode 15, kita akan membahas API Wazuh, autentikasi, dan security best practice: endpoint REST, SDK, RBAC, single sign-on, sampai TLS antar komponen. Sampai jumpa!