日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

集成WAF日志到Syslog系統

本文介紹了如何使用Python Program將Web應用防火墻(WAF)的日志集成到Syslog日志系統中,以實現合規、審計等要求,也方便您在安全操作中心統一管理所有相關日志。

背景信息

該方案的整體集成架構如下圖所示:架構圖

阿里云日志服務為日志數據提供一站式服務,被廣泛應用于阿里巴巴集團的許多大數據場景中。日志服務在無需開發介入的前提下,幫助您快速完成數據采集、消費、投遞、查詢和分析,提高運維運營效率,建立DT時代海量數據的處理能力。Web應用防火墻集成了日志服務的能力,通過WAF日志服務功能提供網站訪問日志的采集、查詢、分析等服務。更多信息,請參見WAF日志服務概述

Python Program是運行在ECS上的一段日志投遞程序,幫助您將WAF日志投遞到Syslog服務器。消費庫(Consumer Library)是對LogHub消費者提供的高級模式,它使用消費組(Consumer Group)統一處理消費端問題。相比于直接使用SDK讀取數據,消費庫讓您只關注業務邏輯,而無需在意日志服務的實施細節或多消費者間的容錯問題。更多信息,請參見消費組消費

Syslog服務器是一個集中的日志消息管理服務器,它可以從多個Syslog源接收數據。

前提條件

  • 您已開通WAF日志服務并為網站域名開啟日志采集。更多信息,請參見快速使用WAF日志服務

  • 您擁有一個Linux ECS服務器,該服務器滿足以下推薦配置:

    • Ubuntu操作系統

    • 8核處理器,2.0 Ghz以上主頻率

    • 32 GB內存

    • 可用磁盤空間大于2 GB(建議在10 GB以上)

  • 您擁有一個Syslog服務器,并開放UDP協議514端口用來接收Syslog數據。

操作步驟

您需要先在ECS實例中安裝日志服務的Python SDK,然后配置Python Program,投遞WAF日志到Syslog服務器。具體操作步驟如下:

  1. 通過SSH或ECS控制臺遠程連接ECS實例。具體操作請參見連接ECS實例

  2. 安裝Python3、pip和aliyun-log-python-sdk。關于日志服務Python SDK的介紹,請參見用戶指南

    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. 執行以下命令,從GitHub下載最新的集成示例代碼。

    wget https://raw.githubusercontent.com/aliyun/aliyun-log-python-sdk/master/tests/consumer_group_examples/sync_data_to_syslog.py
  4. 替換示例代碼Python Program中與日志服務(SLS)、Syslog相關的配置參數,具體包括:

    參數

    釋義

    描述

    SLS Project

    日志項目名稱

    日志項目(Project)是日志服務的資源管理單元,用來劃分和操作資源。

    您可以登錄阿里云日志服務控制臺查看WAF日志服務項目。

    WAF日志服務項目的名稱以waf-project開頭。華東1(杭州)地域的項目表示中國內地WAF實例的日志項目,新加坡地域的項目表示非中國內地WAF實例的日志項目。

    日志項目

    SLS Endpoint

    日志服務入口

    日志服務入口是訪問一個日志項目及其內部日志數據的URL。它和項目所在的阿里云地域及日志項目名稱相關。要查看日志服務的入口URL,請參見服務入口

    SLS Logstore

    日志庫

    日志庫(Logstore)是日志服務用來采集、存儲和查詢日志數據的單元。每個日志庫歸屬在一個項目下,每個項目可以擁有多個日志庫。

    您可以登錄阿里云日志服務控制臺,單擊WAF日志服務項目后,在WAF日志服務項目中查看日志庫的名稱。

    日志庫

    SLS AccessKey ID和AccessKey Secret

    訪問密鑰

    訪問密鑰是您在使用API(而非控制臺)訪問云資源時的密碼。您需要使用AccessKey為API請求內容簽名,使其能夠通過日志服務的安全認證。具體請參見訪問密鑰

    您可以登錄用戶信息管理控制臺查看您的AccessKey信息。

    AccessKey

    Syslog Host

    Syslog主機

    Syslog服務器的IP地址或主機名稱。

    Syslog Port

    Syslog端口

    接收Syslog的端口。UDP協議使用514,TCP協議使用1468。

    Syslog protocol

    Syslog協議

    指定使用UDP或TCP協議來接收Syslog數據,具體取決于Syslog服務器的配置。

    Syslog separator

    Syslog分隔符

    指定用于分隔Syslog鍵值對的分隔符。

    以下是Python Program的配置示例。

    • 日志服務配置

      endpoint = os.environ.get('SLS_ENDPOINT', 'http://ap-southeast-1.log.aliyuncs.com')
      accessKeyId = os.environ.get('SLS_AK_ID', '替換成您自己的AccessKey ID')
      accessKey = os.environ.get('SLS_AK_KEY', '替換成您自己的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')
    • 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. 啟用Python Program。假設Python program被保存為sync_data_to_syslog.py,您可以使用以下命令啟用它:

    python sync_data_to_syslog.py

    啟用Python Program后,會顯示成功投遞日志到Syslog服務器。

    *** 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]

完成以上操作后,您可以在Syslog服務器中查詢WAF日志。