Todos os produtos
Search
Central de documentação

Web Application Firewall:Integrar logs do WAF a um servidor Syslog

Última atualização: Oct 12, 2026

Encaminhe os logs de acesso do Web Application Firewall (WAF) para um servidor Syslog usando o Python Program. Isso permite centralizar os logs do WAF no seu centro de operações de segurança (SOC) para atender aos requisitos regulatórios e de auditoria.

Como funciona

O WAF grava os logs de acesso no Simple Log Service (SLS). O Python Program é executado em uma instância do Elastic Compute Service (ECS), lê os dados do SLS usando um grupo de consumidores e encaminha cada entrada de log para o seu servidor Syslog via UDP ou TCP.

O Python Program utiliza a biblioteca de consumidores do SLS, um modo avançado de consumo baseado em grupos de consumidores do LogHub. Os grupos de consumidores lidam com o rastreamento de offset e a tolerância a falhas automaticamente, permitindo que o Python Program se concentre inteiramente na lógica de encaminhamento.

O canal Syslog transmite dados de log via UDP ou TCP sem criptografia. Para ambientes de produção com requisitos rígidos de segurança, direcione os logs por um proxy Syslog local no mesmo host antes de encaminhá-los para o servidor Syslog remoto por um canal seguro.

Pré-requisitos

Antes de começar, certifique-se de ter:

  • O Log Service para WAF ativado, com a coleta de logs habilitada para o seu nome de domínio. Consulte Primeiros passos com o recurso Log Service for WAF

  • Uma instância ECS Linux executando o Ubuntu com as seguintes especificações mínimas:

    • Processador de 2,0 GHz com 8 núcleos

    • 32 GB de memória

    • Pelo menos 2 GB de espaço em disco disponível (recomenda-se 10 GB ou mais)

  • Um servidor Syslog com a porta UDP 514 aberta para receber dados do Syslog

Configurar o Python Program

Etapa 1: Instale as dependências

Conecte-se à sua instância ECS via SSH ou pelo console do ECS. Consulte Choose a connection method.

Instale o Python 3, o pip e o SDK do SLS para Python:

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

Para a documentação do SDK, consulte o guia do usuário do aliyun-log-python-sdk.

Etapa 2: Baixe o script de exemplo

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

O código-fonte completo está disponível no GitHub.

Etapa 3: Configure o Python Program

Abra o arquivo sync_data_to_syslog.py e defina os seguintes parâmetros.

Parâmetros do 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')

Parâmetro

Descrição

SLS_ENDPOINT

O endpoint do Log Service para a região do seu projeto. Consulte Endpoints.

SLS_AK_ID

O seu AccessKey ID. Obtenha-o no console do User Management.

SLS_AK_KEY

O segredo do seu AccessKey.

SLS_PROJECT

O nome do projeto SLS para a sua instância do WAF. Os nomes dos projetos começam com waf-project. Os projetos na região China (Hangzhou) pertencem a instâncias do WAF na parte continental da China; os projetos em Singapore pertencem a instâncias do WAF fora da parte continental da China. Para encontrar o nome do seu projeto, faça login no console do Log Service.

SLS_LOGSTORE

O nome do Logstore dentro do projeto. Clique em seu projeto do WAF no console do Log Service para visualizar o nome do Logstore.

SLS_CG

O nome do grupo de consumidores. O valor padrão WAF-SLS funciona para a maioria das implantações.

Parâmetros do 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
}

Parâmetro

Descrição

host

O endereço IP ou nome do host do seu servidor Syslog.

port

A porta para dados do Syslog. Valores suportados: 514 (UDP) e 1468 (TCP).

protocol

O protocolo de transporte: udp ou tcp. Deve corresponder à configuração do seu servidor Syslog.

sep

O delimitador usado para separar pares chave-valor em cada mensagem do Syslog.

facility

O código de facility do Syslog que classifica a origem do log. O Syslog usa códigos de facility para rotear mensagens para diferentes arquivos de log no servidor. O valor padrão FAC_USER é adequado para logs gerais de aplicativos.

severity

O nível de severidade do Syslog para todas as mensagens encaminhadas. O valor padrão SEV_INFO é adequado para logs de acesso do WAF.

timeout

O tempo limite de conexão em segundos. O padrão é 120.

cert_path

O caminho para o arquivo de certificado TLS. Defina este parâmetro ao usar TLS sobre TCP. Deixe como None para conexões não criptografadas.

Etapa 4: Inicie o Python Program

python sync_data_to_syslog.py

Quando o Python Program iniciar com sucesso, a saída será semelhante a:

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

Os logs de acesso do WAF agora são encaminhados para o seu servidor Syslog.

Próximos passos