Belajar Wazuh - Integrasi Docker dan Kubernetes
Episode 13 of 23

Belajar Wazuh - Integrasi Docker dan Kubernetes

Di episode ini kita mengintegrasikan Wazuh dengan Docker dan Kubernetes. Kita menjalankan wazuh-docker sebagai listener agentless untuk memonitor container, deploy Wazuh di cluster K8s dengan helm chart, memonitor pods dan namespaces, serta menyiapkan audit log dan CIS benchmark Kubernetes.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 12, kita sudah menghubungkan Wazuh dengan AWS, Azure, dan GCP. Sekarang saatnya turun ke lapisan yang lebih dekat dengan aplikasi: container. Container dan Kubernetes sudah menjadi tulang punggung deployment modern, tapi sekaligus membuka permukaan serangan baru.

Wazuh punya dua pendekatan untuk lingkungan container. Untuk Docker standalone, ada wazuh-docker yang berjalan sebagai listener agentless di dekat daemon Docker. Untuk Kubernetes, kita bisa deploy seluruh stack Wazuh di dalam cluster, atau memonitor cluster sebagai node biasa.

Di episode 13 ini, kita akan membahas kedua pendekatan tersebut. Kita mulai dari Docker, lalu masuk ke Kubernetes: deployment Wazuh dengan helm chart, monitoring pods dan namespaces, sampai audit log dan CIS benchmark.

Memahami Listener Docker

Container bersifat ephemeral. Sebuah image bisa berisi software yang sama sekali berbeda dari host. Karena itu, Wazuh menggunakan modul khusus bernama wazuh-docker.

Modul ini sebenarnya sebuah container yang menjalankan listener. Ia membaca socket Docker dan mencatat semua event daemon, seperti container start, stop, pause, kill, dan restart. Ia juga menangkap event image, misalnya saat image baru di-pull.

Karena listener harus melihat socket Docker, ia perlu dijalankan dengan akses ke socket tersebut. Pada deployment sederhana, cukup mount socket dan direktori log container ke listener.

Menjalankan wazuh-docker
docker run -d \
  --name wazuh-docker \
  --restart always \
  -e API_PROTOCOL=https \
  -e API_HOST=manager.example.com \
  -e API_PORT=55000 \
  -e API_USERNAME=wazuh-wui \
  -e API_PASSWORD=SecretWUI \
  -v /var/lib/docker/containers:/var/lib/docker/containers \
  -v /var/run/docker.sock:/var/run/docker.sock \
  wazuh/wazuh-docker:latest

Variabel environment di atas memberitahu listener alamat manager dan credential API untuk mengirim event. Setelah berjalan, listener akan mulai mengumpulkan event dan meneruskannya ke manager.

Event Container yang Dipantau

Event yang masuk dari listener dikategorikan ke beberapa grup. Wazuh sudah menyediakan rules bawaan untuk grup ini, yang bernama docker.

  • Container events: create, start, stop, kill, pause, restart, dan destroy.
  • Image events: pull, push, dan tag.
  • Network events: connect dan disconnect pada jaringan Docker.
  • Daemon events: perubahan status daemon itu sendiri.

Setiap event yang cocok dengan rule akan menghasilkan alert. Misalnya, container yang restart terlalu sering dalam waktu singkat bisa menjadi sinyal container crash-looping atau serangan denial of service.

LinuxContoh alert container dalam format JSON
{
  "agent": {"name": "docker-host"},
  "rule": {"description": "Docker: container stopped"},
  "data": {"docker": {"status": "stop", "id": "abc123"}},
  "level": 5
}

Info

Listener wazuh-docker bukan pengganti agent. Untuk visibilitas penuh di dalam container, tetap pasang agent di host dan kombinasikan dengan event dari listener.

Monitoring Log Container

Selain event daemon, kita juga butuh isi log dari dalam container. Docker menyimpan log tiap container di /var/lib/docker/containers. Listener yang sudah kita pasang membaca direktori itu, sehingga log stdout dan stderr container ikut masuk ke manager.

Dengan begitu, satu alur data sudah mencakup dua hal sekaligus: event lifecycle container dan log yang dihasilkan aplikasi di dalamnya. Pencarian error aplikasi, percobaan login gagal, atau pola serangan di dalam container bisa dilakukan langsung dari dashboard Wazuh.

Untuk memeriksa log container dari sisi CLI Docker, gunakan command berikut.

Melihat log container
docker logs --tail 50 nama-container

Integrasi Kubernetes

Untuk cluster Kubernetes, Wazuh bisa di-deploy langsung ke dalam cluster. Pendekatan ini membuat seluruh stack SIEM hidup di lingkungan yang sama dengan workload yang diamati.

Deployment dengan Helm Chart

Cara paling mudah adalah memakai helm chart resmi. Pertama, clone repository wazuh-kubernetes, lalu install chart dengan namespace khusus.

git clone https://github.com/wazuh/wazuh-kubernetes.git

Chart ini mendeploy komponen lengkap: manager, indexer, dan dashboard. Pada cluster kecil, semua komponen bisa berjalan di namespace yang sama. Pada cluster besar, kalian bisa memisahkannya sesuai kebutuhan, misalnya indexer di dedicated node group.

Monitoring Pods, Namespaces, dan Events

Agent Wazuh bisa dipasang sebagai DaemonSet sehingga setiap node terpantau. Kombinasi ini memberikan beberapa kemampuan:

  • Menangkap log dari semua pod di semua namespace.
  • Mendeteksi pod crash-looping lewat event container.
  • Melihat perubahan image atau label yang mencurigakan.
  • Memantau utilisasi resource tiap node sebagai konteks alert.

Untuk visibilitas Kubernetes yang lebih dalam, aktifkan audit logging di kube-apiserver. Audit log berisi setiap permintaan API ke cluster, siapa yang melakukannya, dan dari mana. Wazuh membaca audit log ini sebagai file log biasa lewat konfigurasi localfile pada agent.

Melihat audit log kube-apiserver
kubectl logs -n kube-system kube-apiserver --tail 100

Aturan deteksi untuk Kubernetes sudah disediakan dalam grup kubernetes. Alert seperti perubahan role binding, pembuatan pod privileged, atau akses ke secret yang mencurigakan langsung terbentuk tanpa perlu rule tambahan.

CIS Benchmark untuk Kubernetes

Wazuh juga membawa SCA policy untuk Kubernetes, yang kita kenal dari pembahasan SCA di episode sebelumnya. Policy ini memeriksa konfigurasi kontrol-plane, node, dan komponen lain terhadap standar CIS Kubernetes Benchmark.

Hasil scan muncul sebagai klaster pemulihan dan rekomendasi per item. Misalnya, policy akan menandai etcd yang berjalan tanpa enkripsi, kubelet dengan port tidak aman, atau sertifikat kontrol-plane yang tidak kedaluwarsa tepat waktu.

Menampilkan daftar policy SCA di agent
sudo wazuh-control restart
sudo cat /var/ossec/etc/shared/kubernetes.yml

Membandingkan Docker dan Kubernetes

Berikut ringkasan perbedaan pendekatan kedua lingkungan tersebut.

  • Docker standalone: cukup satu listener wazuh-docker di host, tanpa deployment stack penuh.
  • Docker besar: pasang agent di host dan tambahkan listener untuk cakupan lebih luas.
  • Kubernetes: deploy stack Wazuh dengan helm chart, atau pasang agent DaemonSet.
  • Kubernetes lanjut: tambahkan audit log kube-apiserver untuk visibilitas API.
  • Keduanya: pakai SCA policy sesuai benchmark untuk hardening otomatis.

Info

Jangan menaruh semua harapan pada satu lapisan. Integrasi Docker, Kubernetes audit log, dan SCA saling melengkapi. Masing-masing melihat sudut yang berbeda dari lingkungan yang sama.

Penutup

Di episode 13 ini, kita membahas integrasi Wazuh dengan Docker dan Kubernetes. Untuk Docker, listener wazuh-docker menangkap event container dan log aplikasi tanpa perlu mengubah workload. Untuk Kubernetes, kita deploy stack Wazuh dengan helm chart, memonitor pods dan namespaces lewat DaemonSet agent, dan memperdalam visibilitas dengan audit log kube-apiserver serta CIS benchmark.

Inti yang harus dibawa pulang:

  • wazuh-docker adalah listener agentless yang membaca event dari socket Docker.
  • Variabel environment API dipakai untuk mengarahkan event ke manager.
  • Log container masuk lewat direktori /var/lib/docker/containers.
  • Helm chart resmi mendeploy manager, indexer, dan dashboard di dalam cluster.
  • Audit log kube-apiserver memberi visibilitas atas setiap permintaan API.
  • SCA policy kubernetes menyediakan hardening sesuai CIS Benchmark.

Dengan container dan Kubernetes terpantau, selanjutnya kita naik level ke arsitektur. Di episode 14, kita akan membahas arsitektur distribusi Wazuh: cluster indexer multi-node, cluster manager tiga node, load balancing, dan high availability untuk skala production. Sampai jumpa!

Belajar Wazuh - Integrasi Docker dan Kubernetes | Belajar Wazuh