All Products
Search
Document Center

Web Application Firewall:Integrasikan log WAF ke server Syslog

Last Updated:Apr 01, 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 log dari SLS menggunakan kelompok konsumen, lalu meneruskan setiap entri log ke server Syslog Anda melalui UDP atau TCP.

Architecture

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

Saluran Syslog mentransmisikan 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 meneruskannya ke server Syslog remote melalui saluran yang diamankan.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

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

  • 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)

  • 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 untuk menghubungkan ke 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')
ParameterDeskripsi
SLS_ENDPOINTTitik akhir Log Service untuk wilayah proyek Anda. Lihat Endpoints.
SLS_AK_IDID AccessKey Anda. Ambil dari Konsol Manajemen Pengguna. AccessKey
SLS_AK_KEYRahasia AccessKey Anda.
SLS_PROJECTNama proyek SLS untuk instans WAF Anda. Nama proyek dimulai 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 ServiceKonsol Log Service. 日志项目
SLS_LOGSTORENama penyimpanan log dalam proyek tersebut. Klik proyek WAF Anda di Konsol Log ServiceKonsol Log Service untuk melihat nama penyimpanan log. 日志库
SLS_CGNama kelompok konsumen. Nilai default WAF-SLS berfungsi 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
}
ParameterDeskripsi
hostAlamat IP atau hostname server Syslog Anda.
portPort untuk data Syslog. Nilai yang didukung: 514 (UDP) dan 1468 (TCP).
protocolProtokol transport: udp atau tcp. Sesuaikan dengan konfigurasi server Syslog Anda.
sepPembatas yang digunakan untuk memisahkan pasangan kunci-nilai dalam setiap pesan Syslog.
facilityKode 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. Untuk semua nilai yang tersedia, lihat dokumentasi syslogclient.
severityTingkat severity Syslog untuk semua pesan yang diteruskan. Nilai default SEV_INFO sesuai untuk log akses WAF.
timeoutTimeout koneksi dalam detik. Nilai default adalah 120.
cert_pathPath 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 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