Zeek merupakan salah satu tools yang digunakan untuk memantau aktivitas jaringan dan menghasilkan log dari lalu lintas yang dianalisis. Log tersebut berisi informasi seperti koneksi jaringan, permintaan DNS, dan aktivitas protokol lainnya.
Namun, log yang dihasilkan Zeek masih perlu diolah agar lebih mudah dicari dan dianalisis. Salah satu cara yang bisa digunakan adalah mengirimkan log tersebut ke Elasticsearch menggunakan Filebeat.
Filebeat berfungsi membaca log dari Zeek dan meneruskannya ke Elasticsearch untuk disimpan dan diindeks. Dengan alur ini, data aktivitas jaringan dapat dikumpulkan dalam satu tempat dan digunakan untuk analisis lebih lanjut.
Pada tutorial ini, kita akan mencoba mengolah file PCAP menggunakan Zeek, mengirimkan log yang dihasilkan melalui Filebeat, lalu memeriksa apakah data berhasil masuk ke Elasticsearch.
Mengapa Log Zeek Perlu Diintegrasikan dengan Elasticsearch?
Zeek menghasilkan log aktivitas jaringan yang dapat digunakan untuk memantau koneksi dan menganalisis komunikasi antarperangkat. Namun, ketika jumlah log semakin banyak, pencarian dan pengelolaan data secara manual bisa menjadi kurang praktis.
Dengan mengintegrasikan Zeek dan Elasticsearch menggunakan Filebeat, log dapat dikumpulkan dan disimpan dalam satu sistem sehingga lebih mudah dicari, difilter, dan dianalisis. Integrasi ini juga memungkinkan data jaringan digunakan untuk membuat visualisasi dan dashboard monitoring melalui Kibana.
Integrasi ini membantu mengubah log jaringan yang sebelumnya hanya berupa file menjadi data yang lebih mudah dikelola dan dimanfaatkan untuk analisis keamanan.
Apa yang dibutuhkan?
Sebelum memulai, siapkan beberapa komponen berikut:
| Komponen | Fungsi |
|---|---|
| Ubuntu Server | Sistem operasi untuk menjalankan tools |
| Zeek | Menganalisis lalu lintas jaringan |
| File PCAP | Sumber data lalu lintas jaringan |
| Filebeat | Membaca dan mengirim log |
| Elasticsearch | Menyimpan dan mengindeks log |
Untuk percobaan awal, seluruh komponen dapat dijalankan pada satu perangkat Linux selama spesifikasi perangkat mencukupi.
Pastikan versi Filebeat kompatibel dengan Elasticsearch yang digunakan.
Bagaimana Alur Pengiriman Log Bekerja?
Alur pengiriman log dalam tutorial ini terdiri dari empat tahap.
- File PCAP dibaca oleh Zeek.
- Zeek menghasilkan log aktivitas jaringan dalam format JSON.
- Filebeat membaca log tersebut dan mengirimkannya ke Elasticsearch.
- Elasticsearch menyimpan data agar dapat dicari dan dianalisis.
Secara sederhana, alurnya adalah:
File PCAP
|
v
Zeek
|
v
Log Jaringan (JSON)
|
v
Filebeat
|
v
ElasticsearchFormat JSON digunakan karena modul Zeek pada Filebeat dirancang untuk memproses log Zeek dalam format tersebut.
Langkah-langkah praktik
1. Menyiapkan Tools
Download tools tersebut via apt dan ikuti panduan instalasi.
2. Menyiapkan File PCAP
File PCAP digunakan sebagai sumber data untuk menguji Zeek tanpa harus menangkap lalu lintas jaringan secara langsung.
Di sini saya menggunakan file PCAP dari situs malware-traffic-analysis.net dengan judul BIG FISH IN A LITTLE POND.

Setelah file tersedia, letakkan di direktori kerja pada Ubuntu Server.
Contohnya:
mkdir zeek-lab
cd zeek-lab
Pastikan file PCAP sudah berada di direktori tersebut. Lalu ekstrak file zip tersebut, password yang digunakan untuk membuka file zip ini adalah infected_20240904 sesuai deskripsi pada situs diambilnya file zip tersebut.


Untuk memudahkan tutorial, gunakan nama file sample.pcap
3. Memproses File PCAP Menggunakan Zeek
Setelah file PCAP tersedia, jalankan Zeek untuk menganalisis lalu lintas jaringan dan menghasilkan log.
Buat direktori untuk menyimpan hasil analisis:
mkdir output
cd output
Pastikan saat membuat direktori output kalian sudah berada di direktori zeek-lab.
Kembali ke direktori zeek-lab dengan:
cd ..Kemudian jalankan:
zeek -r ~/zeek-lab/sample.pcap LogAscii::use_json=TPerintah tersebut menjalankan Zeek dalam mode membaca file PCAP dan menghasilkan log dalam format JSON.
Setelah proses selesai, periksa file yang dihasilkan:
ls -lh
Jika file PCAP mengandung aktivitas yang sesuai, Zeek dapat menghasilkan beberapa log, misalnya:
conn.loguntuk informasi koneksi jaringan.dns.loguntuk aktivitas DNS.http.loguntuk informasi lalu lintas HTTP yang terdeteksi.
Nama dan jumlah log yang dihasilkan bergantung pada aktivitas jaringan di dalam file PCAP.
4. Memeriksa Log Hasil Analisis
Sebelum mengirimkan data ke Elasticsearch, pastikan log sudah berhasil dibuat.
Periksa isi log koneksi:
head -n 5 conn.log
Jika menggunakan format JSON, setiap baris log akan berisi objek JSON dengan informasi seperti waktu, alamat IP sumber, alamat IP tujuan, dan protokol.
5. Menyiapkan Elasticsearch
Elasticsearch digunakan sebagai tempat penyimpanan log yang dikirim oleh Filebeat.
Pastikan Elasticsearch sudah terpasang dan berjalan pada ubuntu.
Saya sarankan untuk reset password untuk user elastic pada Elasticsearch terlebih dahulu dan menggantinya dengan sandi yang mudah diingat.
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -iLalu pilih y dan masukkan password baru.

Untuk memeriksa apakah Elasticsearch merespons, jalankan:
curl -k -u elastic https://localhost:9200Masukkan kata sandi akun elastic ketika diminta.

Jika Elasticsearch berjalan dengan konfigurasi keamanan bawaan, responsnya akan berisi informasi seperti nama node dan versi Elasticsearch.
Alamat https://localhost:9200 hanya untuk Elasticsearch yang berjalan pada mesin yang sama dengan perintah tersebut.
Jika Elasticsearch menggunakan alamat atau sertifikat yang berbeda, sesuaikan konfigurasi koneksinya.
6. Mengaktifkan Mode Zeek pada Filebeat
Filebeat menyediakan modul Zeek untuk membaca dan memproses log yang dihasilkan Zeek.
Aktifkan modul tersebut menggunakan perintah:
sudo filebeat modules enable zeekSetelah itu, buka file konfigurasi modul Zeek:
sudo nano /etc/filebeat/modules.d/zeek.ymlSesuaikan lokasi log dengan direktori tempat Zeek menyimpan hasil analisis.
Contoh konfigurasi:
- module: zeek
connection:
enabled: true
var.paths:
- /home/user/zeek-lab/output/conn.log
dns:
enabled: true
var.paths:
- /home/user/zeek-lab/output/dns.log
http:
enabled: true
var.paths:
- /home/user/zeek-lab/output/http.log
Lalu restart filebeat kembali dengan:
Mau Kuasai Cara Mengirim Log Zeek ke Elasticsearch Menggunakan Filebeat Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
sudo systemctl restart filebeatPada contoh tersebut, Filebeat membaca log koneksi dan DNS.
Ganti /home/user/ dengan direktori pengguna yang sesuai pada VM.
Pastikan Filebeat memiliki izin untuk membaca file log tersebut.
7. Mengatur Koneksi Filebeat ke Elasticsearch
Selanjutnya, buka konfigurasi utama Filebeat:
sudo nano /etc/filebeat/filebeat.ymlAtur bagian output agar Filebeat mengirim data ke Elasticsearch.
Contoh konfigurasi:
output.elasticsearch:
hosts: ["https://localhost:9200"]
username: "elastic"
password: "123456"
ssl.verification_mode: none
Untuk 123456 adalah kata sandi Elasticsearch yang digunakan.
Pengaturan ssl.verification_mode: none pada contoh ini hanya untuk pengujian lokal dengan sertifikat yang belum diverifikasi. Untuk penggunaan yang lebih aman, gunakan sertifikat CA yang sesuai dan aktifkan verifikasi sertifikat.
Pastikan hanya ada satu konfigurasi output aktif di Filebeat.
8. Memeriksa Konfigurasi Filebeat
Sebelum menjalankan Filebeat, periksa apakah konfigurasi sudah valid.
Jalankan:
sudo filebeat test configJika konfigurasi benar, Filebeat akan memberikan informasi bahwa konfigurasi berhasil dimuat.
Selanjutnya, periksa koneksi ke Elasticsearch:
sudo filebeat test output
Perintah ini digunakan untuk menguji apakah Filebeat dapat terhubung ke Elasticsearch menggunakan konfigurasi yang telah dibuat.
Jika koneksi gagal, periksa kembali alamat server, kredensial, dan pengaturan sertifikat.
9. Mengirim Log ke Elasticsearch
Setelah konfigurasi selesai, jalankan Filebeat:
sudo filebeat setupPerintah tersebut digunakan untuk menyiapkan aset yang diperlukan oleh Filebeat.
Kemudian jalankan layanan Filebeat:
sudo systemctl enable --now filebeatPeriksa status layanan:
sudo systemctl status filebeat
Jika layanan berjalan, Filebeat akan mulai membaca log yang sesuai dengan konfigurasi dan mengirimkannya ke Elasticsearch.
Untuk melihat pesan log layanan:
sudo journalctl -u filebeat -n 50 --no-pager
Periksa apakah ada pesan kesalahan saat membaca file atau mengirim data.
10. Memeriksa Data di Elasticsearch
Setelah Filebeat berjalan, kita perlu memastikan bahwa data sudah berhasil masuk ke Elasticsearch.
Gunakan perintah berikut untuk melihat indeks yang tersedia:
curl -k -u elastic \
"https://localhost:9200/_cat/indices?v"Masukkan kata sandi ketika diminta.

Jika data berhasil dikirim, indeks atau data stream yang berkaitan dengan log Zeek dapat muncul sesuai konfigurasi dan versi integrasi yang digunakan.
Untuk memeriksa dokumen yang tersimpan, kamu juga dapat menggunakan Elasticsearch API.
Contoh pencarian:
curl -k -u elastic \
"https://localhost:9200/_search?pretty"
Perintah tersebut menampilkan dokumen yang tersedia pada indeks yang dapat diakses oleh akun yang digunakan.
Untuk lingkungan yang sudah memiliki banyak indeks, pencarian sebaiknya dibatasi pada indeks atau data stream yang sesuai.
11. Mengatasi Masalah yang Sering Terjadi
Ada beberapa kendala yang mungkin muncul saat menjalankan tutorial ini.
a. Log Zeek Tidak Terbaca
Penyebab yang mungkin terjadi adalah lokasi file tidak sesuai dengan konfigurasi Filebeat.
Periksa kembali nilai var.paths pada modul Zeek.
b. Format Log Tidak Sesuai
Modul Zeek pada Filebeat memerlukan log dalam format JSON.
Jika Zeek menghasilkan log dalam format TSV, konfigurasi perlu disesuaikan agar menghasilkan JSON.
c. Filebeat Tidak Bisa Terhubung ke Elasticsearch
Periksa alamat endpoint, kredensial, serta konfigurasi TLS.
Kamu juga bisa menjalankan filebeat test output untuk membantu menemukan masalah koneksi.
d. Data Tidak Muncul di Elasticsearch
Pastikan Filebeat berjalan dan memiliki izin membaca file log.
Periksa juga pesan kesalahan melalui journalctl untuk mengetahui apakah proses pengiriman data mengalami kendala.
Kesimpulan
Mengirim log Zeek ke Elasticsearch menggunakan Filebeat merupakan salah satu cara untuk membangun alur pengumpulan data aktivitas jaringan.
Zeek bertugas menganalisis lalu lintas jaringan dan menghasilkan log, Filebeat membaca serta mengirimkan log tersebut, sedangkan Elasticsearch menyimpan data agar dapat dicari dan dianalisis.
Dengan menggunakan file PCAP sebagai sumber data, proses pengujian dapat dilakukan tanpa harus memantau jaringan secara langsung.
Setelah alur ini berhasil, data log dapat dikembangkan lebih lanjut melalui Kibana untuk membuat visualisasi aktivitas jaringan dan dashboard monitoring.
Penulis
Avrillia Zahra Khoirun Nisa
Mau Kuasai Cara Mengirim Log Zeek ke Elasticsearch Menggunakan Filebeat Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
