全部产品
Search
文档中心

Web Application Firewall:Mengintegrasikan log WAF ke server Syslog

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menggunakan Program Python untuk mengintegrasikan log Web Application Firewall (WAF) ke server Syslog guna memenuhi persyaratan regulasi dan audit. Ini memungkinkan Anda mengelola semua log terkait di pusat operasi keamanan.

Informasi latar belakang

Gambar berikut menunjukkan arsitektur integrasi.Architecture

Layanan Log adalah layanan logging ujung-ke-ujung yang dikembangkan oleh Alibaba Cloud dan banyak digunakan dalam skenario data besar. Layanan ini mendukung pengumpulan, konsumsi, pengiriman, pencarian, dan analisis data log tanpa perlu pengembangan tambahan. Hal ini meningkatkan efisiensi O&M dan operasional serta memberikan kemampuan untuk memproses sejumlah besar log di era Teknologi Data (DT). WAF terintegrasi dengan Layanan Log. Fitur Layanan Log untuk WAF memungkinkan Anda mengumpulkan, mencari, dan menganalisis log akses situs web. Untuk informasi lebih lanjut, lihat Ikhtisar.

Program Python adalah program yang berjalan pada instance ECS untuk mengirimkan log WAF ke server Syslog. Pustaka konsumen adalah mode lanjutan yang disediakan untuk konsumen LogHub. Pustaka ini menggunakan grup konsumen untuk mengelola ujung konsumsi. Dibandingkan dengan mode di mana data dibaca menggunakan SDK, pustaka konsumen memungkinkan Anda fokus hanya pada logika bisnis tanpa harus khawatir tentang detail implementasi Layanan Log atau toleransi kesalahan di antara beberapa konsumen. Untuk informasi lebih lanjut, lihat Gunakan grup konsumen untuk mengonsumsi log.

Server Syslog mengelola pesan log secara terpusat dan dapat menerima data dari berbagai sumber Syslog.

Prasyarat

  • Layanan Log untuk WAF telah diaktifkan, termasuk fitur pengumpulan log untuk nama domain Anda. Untuk informasi lebih lanjut, lihat Memulai dengan fitur Layanan Log Sederhana untuk WAF.

  • Instance ECS Linux dengan konfigurasi berikut telah diterapkan:

    • Sistem operasi Ubuntu

    • Prosesor 2,0 GHz atau lebih tinggi, dengan delapan inti

    • Memori 32 GB

    • Ruang disk tersedia lebih dari 2 GB (disarankan lebih dari 10 GB).

  • Server Syslog telah diterapkan, dan port UDP 514 diaktifkan untuk menerima data Syslog.

Prosedur

Instal SDK Layanan Log untuk Python pada instance ECS Anda dan konfigurasikan Program Python untuk mengirimkan log WAF ke server Syslog. Ikuti langkah-langkah berikut:

  1. Hubungkan ke instance ECS menggunakan SSH atau melalui konsol ECS. Untuk informasi lebih lanjut, lihat Metode untuk menghubungkan ke instance ECS.

  2. Instal Python 3, pip, dan aliyun-log-python-sdk. Untuk informasi lebih lanjut tentang SDK Layanan Log untuk Python, lihat Panduan Pengguna.

    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
  3. Jalankan perintah berikut untuk mengunduh kode contoh integrasi terbaru dari GitHub:

    wget https://raw.githubusercontent.com/aliyun/aliyun-log-python-sdk/master/tests/consumer_group_examples/sync_data_to_syslog.py
  4. Ganti parameter Layanan Log dan Syslog dalam Program Python. Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Arti

    Deskripsi

    Proyek SLS

    Nama proyek log

    Proyek adalah unit dasar untuk mengisolasi dan mengontrol sumber daya dalam Layanan Log.

    Anda dapat masuk ke Konsol Layanan Log untuk melihat proyek log WAF.

    Nama proyek log WAF dimulai dengan waf-project. Proyek yang berada di wilayah China (Hangzhou) adalah proyek log instance WAF di daratan Tiongkok. Proyek yang berada di wilayah Singapore adalah proyek log instance WAF di luar daratan Tiongkok.

    Projects

    Titik akhir SLS

    Titik akhir Layanan Log

    Titik akhir Layanan Log adalah URL yang digunakan untuk mengakses proyek dan log dalam proyek. Titik akhir bervariasi berdasarkan wilayah Alibaba Cloud tempat proyek berada dan nama proyek. Untuk melihat URL, lihat Titik akhir.

    Penyimpanan log SLS

    Penyimpanan log

    Penyimpanan log adalah unit dalam Layanan Log untuk mengumpulkan, menyimpan, dan mencari data log. Setiap penyimpanan log milik satu proyek. Setiap proyek dapat memiliki beberapa penyimpanan log.

    Anda dapat masuk ke Konsol Layanan Log dan klik proyek log WAF untuk melihat nama penyimpanan log.

    Logstore

    ID AccessKey SLS dan Rahasia AccessKey

    Pasangan AccessKey

    Pasangan AccessKey terdiri dari ID AccessKey dan rahasia AccessKey dan dirancang untuk mengakses sumber daya cloud Anda menggunakan API alih-alih konsol. Anda dapat menggunakan pasangan AccessKey untuk menandatangani permintaan API sehingga permintaan tersebut dapat melewati otentikasi keamanan di Layanan Log. Untuk informasi lebih lanjut, lihat AccessKey.

    Anda dapat masuk ke Konsol Manajemen Pengguna untuk melihat informasi pasangan AccessKey Anda.

    AccessKey

    Host Syslog

    Host Syslog

    Alamat IP atau nama host server Syslog.

    Port Syslog

    Port Syslog

    Port yang digunakan untuk menerima data Syslog. Port UDP 514 dan port TCP 1468 didukung.

    Protokol Syslog

    Protokol Syslog

    Protokol UDP atau TCP yang digunakan untuk menerima data Syslog. Nilai parameter bervariasi berdasarkan konfigurasi server Syslog.

    Pemisah Syslog

    Pemisah Syslog

    Pemisah yang digunakan untuk memisahkan pasangan kunci-nilai Syslog.

    Kode berikut memberikan contoh cara mengonfigurasi Program Python:

    • Konfigurasi Layanan Log

      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')
    • Konfigurasi 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        
                  }
  5. Mulai Program Python. Anggap Program Python disimpan sebagai sync_data_to_syslog.py. Jalankan perintah berikut untuk memulainya:

    python sync_data_to_syslog.py

    Keluaran perintah berikut menunjukkan bahwa log dikirim ke server Syslog setelah Program Python dimulai:

    *** mulai mengonsumsi data...
    pekerja konsumen "WAF-SLS-1" mulai 
    detak jantung dimulai
    hasil detak jantung: [] dapat: [0, 1]
    Dapatkan data dari shard 0, jumlah log: 6
    Selesai mengirim data ke remote
    Dapatkan data dari shard 0, jumlah log: 2
    Selesai mengirim data ke remote
    hasil detak jantung: [0, 1] dapat: [0, 1]

Anda dapat mencari log WAF di server Syslog.