All Products
Search
Document Center

Web Application Firewall:Integrasikan log WAF ke server Syslog

Last Updated:Aug 25, 2026

Teruskan log akses Web Application Firewall (WAF) ke server Syslog menggunakan program Python. Hal ini memungkinkan Anda memusatkan log WAF di Pusat Operasi Keamanan (SOC) untuk memenuhi persyaratan regulasi dan audit.

Cara kerja

WAF menulis log akses ke Simple Log Service (SLS). Program Python berjalan pada instans Elastic Compute Service (ECS), membaca data dari SLS menggunakan consumer group, lalu meneruskan setiap entri log ke server Syslog Anda melalui UDP atau TCP.

Program Python menggunakan pustaka konsumen SLS—mode konsumsi lanjutan yang dibangun di atas consumer group LogHub. Consumer group secara otomatis menangani pelacakan offset dan toleransi kesalahan, sehingga program Python dapat fokus sepenuhnya pada logika penerusan.

Saluran Syslog mengirimkan data log melalui UDP atau TCP tanpa enkripsi. Untuk lingkungan produksi dengan persyaratan keamanan ketat, arahkan log melalui proxy Syslog lokal pada host yang sama sebelum diteruskan ke server Syslog remote melalui saluran yang diamankan.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Mengaktifkan Log Service untuk WAF, dengan pengumpulan log diaktifkan untuk nama domain Anda. Lihat Memulai fitur Log Service untuk WAF.

  • Menyiapkan instans ECS Linux yang menjalankan Ubuntu dengan spesifikasi minimum berikut:

    • Prosesor 2,0 GHz, 8 core

    • Memori 32 GB

    • Setidaknya 2 GB ruang disk tersedia (disarankan 10 GB atau lebih)

  • Menyiapkan server Syslog dengan port UDP 514 terbuka untuk menerima data Syslog.

Siapkan Program Python

Langkah 1: Instal dependensi

Hubungkan ke instans ECS Anda melalui SSH atau melalui Konsol ECS. Lihat Metode koneksi remote untuk instans ECS.

Instal Python 3, pip, dan SDK Python SLS:

apt-get update
apt-get install -y python3-pip python3-dev
cd /usr/local/bin
ln -s /usr/bin/python3 python
pip3 install --upgrade pip
pip install aliyun-log-python-sdk

Untuk dokumentasi SDK, lihat panduan pengguna aliyun-log-python-sdk.

Langkah 2: Unduh skrip contoh

wget https://raw.githubusercontent.com/aliyun/aliyun-log-python-sdk/master/tests/consumer_group_examples/sync_data_to_syslog.py

Kode sumber lengkap tersedia di GitHub.

Langkah 3: Konfigurasikan Program Python

Buka sync_data_to_syslog.py dan atur parameter berikut.

Parameter Log Service

endpoint = os.environ.get('SLS_ENDPOINT', 'http://ap-southeast-1.log.aliyuncs.com')
accessKeyId = os.environ.get('SLS_AK_ID', 'Your AccessKey ID')
accessKey = os.environ.get('SLS_AK_KEY', 'Your AccessKey secret')
project = os.environ.get('SLS_PROJECT', 'waf-project-548613414276****-ap-southeast-1')
logstore = os.environ.get('SLS_LOGSTORE', 'waf-logstore')
consumer_group = os.environ.get('SLS_CG', 'WAF-SLS')

Parameter

Deskripsi

SLS_ENDPOINT

Titik akhir Log Service untuk wilayah proyek Anda. Lihat Endpoints.

SLS_AK_ID

ID AccessKey Anda. Ambil dari Konsol Manajemen Pengguna.

SLS_AK_KEY

Rahasia AccessKey Anda.

SLS_PROJECT

Nama proyek SLS untuk instans WAF Anda. Nama proyek diawali dengan waf-project. Proyek di wilayah Tiongkok (Hangzhou) milik instans WAF di Tiongkok daratan; proyek di Singapura milik instans WAF di luar Tiongkok daratan. Untuk menemukan nama proyek Anda, masuk ke Konsol Log Service.

SLS_LOGSTORE

Nama Logstore dalam proyek tersebut. Klik proyek WAF Anda di Konsol Log Service untuk melihat nama Logstore.

SLS_CG

Nama consumer group. Nilai default WAF-SLS sesuai untuk sebagian besar penerapan.

Parameter Syslog

settings = {
    "host": "1.2.xx.xx",
    "port": 514,
    "protocol": "udp",
    "sep": ",",
    "cert_path": None,
    "timeout": 120,
    "facility": syslogclient.FAC_USER,
    "severity": syslogclient.SEV_INFO,
    "hostname": None,
    "tag": None
}

Parameter

Deskripsi

host

Alamat IP atau hostname server Syslog Anda.

port

Port untuk data Syslog. Nilai yang didukung: 514 (UDP) dan 1468 (TCP).

protocol

Protokol transport: udp atau tcp. Sesuaikan dengan konfigurasi server Syslog Anda.

sep

Pembatas yang digunakan untuk memisahkan pasangan kunci-nilai dalam setiap pesan Syslog.

facility

Kode facility Syslog yang mengklasifikasikan sumber log. Syslog menggunakan kode facility untuk mengarahkan pesan ke file log berbeda di server. Nilai default FAC_USER sesuai untuk log aplikasi umum.

severity

Tingkat severity Syslog untuk semua pesan yang diteruskan. Nilai default SEV_INFO sesuai untuk log akses WAF.

timeout

Timeout koneksi dalam detik. Nilai default adalah 120.

cert_path

Jalur ke file sertifikat TLS. Atur nilai ini saat menggunakan TLS melalui TCP. Biarkan sebagai None untuk koneksi tanpa enkripsi.

Langkah 4: Jalankan Program Python

python sync_data_to_syslog.py

Jika program Python berhasil dijalankan, output-nya akan tampak seperti berikut:

*** start to consume data...
consumer worker "WAF-SLS-1" start
heart beat start
heart beat result: [] get: [0, 1]
Get data from shard 0, log count: 6
Complete send data to remote
Get data from shard 0, log count: 2
Complete send data to remote
heart beat result: [0, 1] get: [0, 1]

Log akses WAF kini diteruskan ke server Syslog Anda.

Langkah selanjutnya