Melakukan filter pada log yang masuk untuk menentukan mana yang merupakan serangan dan yang bukan.
### Barnyard2
Spooler untuk **Snort**. Mengirimkan log ke **Logstash** dalam bentuk full_syslog.
### ElasticSearch
Menyimpan log.
### Logstash
Melakukan transformasi log dari syslog ke json. Melakukan preprocessing pada log.
### Postgres
Menyimpan info server, sensor, dan user pada aplikasi. Tidak menyimpan log.
### Backend
Mengurus proses autentikasi dan autorisasi. Menyediakan data yang dibutuhkan oleh **Dashboard**.
### Static Files Server
Menyimpan konten statik seperti css, js, dan image assets yang dibutuhkan oleh **Dashboard** dan **Backend**
### Dashboard
Tampilan yang digunakan user untuk melihat log yang telah disimpan
---
Karena **Logstash**, **ElasticSearch**, dan **Postgres** tidak perlu diakses secara langsung oleh publik, maka sebaiknya dideploy didalam private server yang hanya terhubung dengan **backend** dan **barnyard2** untuk menghindari celah keamanan yang bisa muncul.
---
Banyaknya service yang kami gunakan akan menjadi masalah jika kami tidak menggunakan deployment tools dan container orchestration. PPL telah menyediakan **Portainer** dan **GitlabCI** untuk proses automatisasi deploy yang dapat kami gunakan. Setiap service berjalan dalam sebuah docker container.