

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurando a ingestão de syslog
<a name="CWL_Syslog_Setup"></a>

Esta seção mostra as etapas para configurar a ingestão de syslog no Logs. CloudWatch Você criará um VPC endpoint para o serviço syslog, um grupo de logs para receber as mensagens, uma política de recursos para autorizar o serviço syslog e uma configuração de syslog que roteará o tráfego do seu VPC endpoint para seu grupo de logs.

Você pode executar todas essas etapas usando o AWS Management Console AWS CLI, o ou os AWS SDKs. As instruções a seguir fornecem console e AWS CLI exemplos.

## Pré-requisitos
<a name="CWL_Syslog_Setup_Prerequisites"></a>

A identidade do IAM (usuário ou função) que você usa para configurar a ingestão de syslog deve ter permissões para criar endpoints de VPC, grupos de registros, políticas de recursos e configurações de syslog. O exemplo de política a seguir mostra as permissões mínimas necessárias:

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:PutResourcePolicy",
        "logs:DeleteResourcePolicy",
        "logs:PutSyslogConfiguration",
        "logs:ListSyslogConfigurations",
        "logs:DeleteSyslogConfiguration"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateVpc",
        "ec2:ModifyVpcAttribute",
        "ec2:CreateSubnet",
        "ec2:CreateSecurityGroup",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:CreateVpcEndpoint",
        "ec2:ModifyVpcEndpoint",
        "ec2:DescribeVpcEndpoints"
      ],
      "Resource": "*"
    }
  ]
}
```

**nota**  
Se você já tem uma VPC, uma sub-rede e um grupo de segurança, você só precisa das `ec2:DescribeVpcEndpoints` permissões`ec2:CreateVpcEndpoint`,`ec2:ModifyVpcEndpoint`, e para as ações do EC2.

## Etapa 1: criar ou identificar uma VPC
<a name="CWL_Syslog_Setup_VPC"></a>

Você precisa de uma VPC que possa ser acessada pela sua rede local (via VPN ou Direct Connect) onde residem seus dispositivos geradores de syslog. Se você já tem uma VPC conectada ao seu data center, pule esta etapa e use sua VPC e IDs de sub-rede existentes.

------
#### [ Console ]

**Para criar uma VPC (console)**

1. Abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel de navegação, escolha **Suas VPCs** e, em seguida, escolha Criar **VPC**.

1. Em **Recursos a serem criados**, escolha **Somente VPC**.

1. Para o **bloco CIDR IPv4**, digite `10.0.0.0/16` (ou um CIDR que não entre em conflito com sua rede local).

1. Escolha **Criar VPC**.

1. Selecione a VPC recém-criada, escolha **Ações, Editar configurações** de **VPC**. **Ative a **resolução DNS** e os **nomes de host DNS** e escolha Salvar.**

1. Crie uma sub-rede para o VPC endpoint:

   1. **No painel de navegação, escolha **Sub-redes e, em seguida, escolha Criar sub-rede**.**

   1. Para **VPC ID**, selecione a VPC que você criou.

   1. Em **Zona de disponibilidade**, escolha uma Zona de disponibilidade.

   1. Para o **bloco CIDR de sub-rede IPv4**, digite. `10.0.1.0/24`

   1. Escolha **Criar sub-rede**.

------
#### [ AWS CLI ]

```
REGION=us-east-1

# Create VPC
VPC_ID=$(aws ec2 create-vpc \
  --cidr-block 10.0.0.0/16 \
  --region $REGION \
  --query 'Vpc.VpcId' --output text)

aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-support --region $REGION
aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-hostnames --region $REGION

# Create a subnet for the VPC endpoint
SUBNET_ID=$(aws ec2 create-subnet \
  --vpc-id $VPC_ID \
  --cidr-block 10.0.1.0/24 \
  --availability-zone ${REGION}a \
  --region $REGION \
  --query 'Subnet.SubnetId' --output text)

echo "VPC: $VPC_ID, Subnet: $SUBNET_ID"
```

------

**nota**  
O VPC endpoint cria uma interface de rede elástica (ENI) com um IP privado em sua sub-rede. Seus dispositivos locais alcançam esse IP por meio de sua conexão VPN ou Direct Connect. Certifique-se de que seu roteamento de rede permita o tráfego de seus dispositivos para o CIDR da sub-rede.

## Etapa 2: criar um grupo de segurança
<a name="CWL_Syslog_Setup_SG"></a>

Crie um grupo de segurança para o VPC endpoint que permita o tráfego syslog de entrada da sua VPC. Isso controla quais recursos podem enviar syslog para o endpoint.

------
#### [ Console ]

**Para criar um grupo de segurança (console)**

1. Abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel de navegação, escolha **Grupos de segurança** e, em seguida, escolha **Criar grupo de segurança**.

1. Em **Nome do grupo de segurança**, insira `syslog-vpce-sg`.

1. Em **Descrição**, insira `Allow syslog traffic to VPC endpoint`.

1. Para **VPC**, selecione a VPC que você criou ou identificou na Etapa 1.

1. Na seção **Regras de entrada**, escolha **Adicionar regra** e adicione as seguintes regras:
   + **Regra 1:** Tipo = **TCP personalizado**, intervalo de portas =`6514`, Fonte = `10.0.0.0/16` (seu CIDR de VPC)
   + **Regra 2:** Tipo = **TCP personalizado**, Intervalo de portas =`1514`, Fonte = `10.0.0.0/16`
   + **Regra 3:** Tipo = **UDP personalizado**, Intervalo de portas =`514`, Fonte = `10.0.0.0/16`

1. Escolha **Criar grupo de segurança**.

------
#### [ AWS CLI ]

```
VPCE_SG_ID=$(aws ec2 create-security-group \
  --group-name syslog-vpce-sg \
  --description "Allow syslog traffic to VPC endpoint" \
  --vpc-id $VPC_ID \
  --region $REGION \
  --query 'GroupId' --output text)

# Allow TCP+TLS (port 6514), TCP plaintext (port 1514), and UDP (port 514)
aws ec2 authorize-security-group-ingress --group-id $VPCE_SG_ID \
  --protocol tcp --port 6514 --cidr 10.0.0.0/16 --region $REGION
aws ec2 authorize-security-group-ingress --group-id $VPCE_SG_ID \
  --protocol tcp --port 1514 --cidr 10.0.0.0/16 --region $REGION
aws ec2 authorize-security-group-ingress --group-id $VPCE_SG_ID \
  --protocol udp --port 514 --cidr 10.0.0.0/16 --region $REGION
```

------

**dica**  
Se você planeja usar apenas um protocolo (por exemplo, TCP\+TLS na porta 6514), você só precisa abrir essa porta no grupo de segurança.

## Etapa 3: Criar o VPC endpoint.
<a name="CWL_Syslog_Setup_VPCE"></a>

Crie uma interface VPC endpoint apontando para o serviço syslog. AWS PrivateLink Isso dá à sua VPC um ponto de entrada privado para o serviço syslog do CloudWatch Logs.

**nota**  
Você pode especificar várias IDs de sub-rede em diferentes zonas de disponibilidade ao criar o endpoint. O endpoint cria uma ENI em cada sub-rede, fornecendo maior disponibilidade sem precisar de VPC endpoints separados por zona de disponibilidade. Um único VPC endpoint com sub-redes em várias zonas de disponibilidade é suficiente.

------
#### [ Console ]

**Para criar o VPC endpoint (console)**

1. Abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel de navegação, escolha **Endpoints e, em seguida, escolha **Create** endpoint**.

1. Em **Etiqueta de nome**, insira um nome para o endpoint (por exemplo,`syslog-vpce`).

1. Em **Categoria do serviço**, escolha **Serviços do AWS **.

1. No campo Pesquisa de **serviços**, insira `syslog-logs` e selecione o serviço`com.amazonaws.{{Region}}.syslog-logs`.

1. Para **VPC**, selecione a VPC que você criou ou identificou na Etapa 1.

1. Na seção **Sub-redes**, selecione uma ou mais zonas de disponibilidade e escolha as sub-redes nas quais você deseja criar as interfaces de rede do endpoint.

1. Para **Grupos de segurança**, selecione o grupo de segurança que você criou na Etapa 2 (`syslog-vpce-sg`).

1. (Opcional) Se você quiser restringir o tráfego permitido pelo endpoint, configure uma política de VPC endpoint. Para obter mais informações, consulte [Políticas de VPC endpoint para syslog](CWL_Syslog_VPCEndpointPolicies.md).

1. Escolha **Criar endpoint**.

1. Depois que o estado do endpoint mudar para **Disponível**, selecione o endpoint e anote o valor dos nomes **DNS**. Este é o endereço para o qual seus dispositivos syslog enviarão.

------
#### [ AWS CLI ]

```
VPCE_ID=$(aws ec2 create-vpc-endpoint \
  --vpc-id $VPC_ID \
  --service-name com.amazonaws.${REGION}.syslog-logs \
  --vpc-endpoint-type Interface \
  --subnet-ids $SUBNET_ID \
  --security-group-ids $VPCE_SG_ID \
  --region $REGION \
  --query 'VpcEndpoint.VpcEndpointId' --output text)

echo "VPC Endpoint: $VPCE_ID"
```

Aguarde até que o endpoint fique disponível (aproximadamente 60 segundos) e, em seguida, recupere o nome do DNS:

```
VPCE_DNS=$(aws ec2 describe-vpc-endpoints --vpc-endpoint-ids $VPCE_ID \
  --region $REGION --query 'VpcEndpoints[0].DnsEntries[0].DnsName' --output text)

echo "Endpoint DNS: $VPCE_DNS"
```

Salve o `VPCE_DNS` valor — você configurará seus dispositivos syslog para enviar para esse endereço.

------

## Etapa 4: criar um grupo de registros
<a name="CWL_Syslog_Setup_LogGroup"></a>

Crie o grupo de CloudWatch registros de registros em que suas mensagens de syslog serão entregues. Você pode usar qualquer nome de grupo de registros. Recomendamos usar um `/syslog/` prefixo para maior clareza organizacional.

------
#### [ Console ]

**Para criar um grupo de registros (console)**

1. Abra o console CloudWatch de registros em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, em **Gerenciamento de registros**, escolha **Grupos de registros**.

1. Escolha a opção **Criar grupo de logs**.

1. Em **Nome do grupo de registros**, insira`/syslog/my-devices`.

1. (Opcional) Defina as configurações de retenção e criptografia conforme necessário.

1. Escolha **Criar**.

------
#### [ AWS CLI ]

```
aws logs create-log-group \
  --log-group-name /syslog/my-devices \
  --region $REGION
```

------

Você não precisa criar um fluxo de log. O serviço syslog cria automaticamente um fluxo de log chamado `{{VPCE_ID}}_Syslog_{{Region}}` (por exemplo,`vpce-0abc123def456_Syslog_us-east-1`) quando a primeira mensagem é entregue.

## Etapa 5: adicionar uma política de recursos
<a name="CWL_Syslog_Setup_ResourcePolicy"></a>

O serviço syslog do CloudWatch Logs grava no seu grupo de registros usando o `syslog.logs.amazonaws.com` Service Principal. Você deve conceder permissão por meio de uma política de recursos em seu grupo de registros. A `aws:SourceArn` condição garante que somente o tráfego do seu VPC endpoint específico possa gravar nesse grupo de registros.

```
ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)

aws logs put-resource-policy \
  --policy-name syslog-ingestion \
  --policy-document '{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "syslog.logs.amazonaws.com"
      },
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogStream"
      ],
      "Resource": "arn:aws:logs:'$REGION':'$ACCOUNT_ID':log-group:/syslog/my-devices:*",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "'$ACCOUNT_ID'"
        },
        "ArnEquals": {
          "aws:SourceArn": "arn:aws:ec2:'$REGION':'$ACCOUNT_ID':vpc-endpoint/'$VPCE_ID'"
        }
      }
    }
  ]
}' \
  --region $REGION
```

As condições na política de recursos fornecem as seguintes proteções:
+ `aws:SourceAccount`— Evita ataques confusos de deputados. Somente o tráfego da sua conta é aceito.
+ `aws:SourceArn`— Escopo o acesso a um VPC endpoint específico. Se você tiver vários VPC endpoints, adicione cada um como um ARN separado na condição.

Para permitir que vários VPC endpoints gravem no mesmo grupo de registros, use o operador de `ArnLike` condição com um caractere curinga:

```
"ArnLike": {
    "aws:SourceArn": "arn:aws:ec2:us-east-1:123456789012:vpc-endpoint/*"
}
```

## Etapa 6: Criar a configuração do syslog
<a name="CWL_Syslog_Setup_Config"></a>

Essa etapa informa ao serviço de syslog do CloudWatch Logs que o tráfego que chega do seu VPC endpoint deve ser roteado para seu grupo de registros. Sem essa configuração, o tráfego do seu endpoint é rejeitado.

------
#### [ Console ]

**Para criar a configuração do syslog (console)**

1. Abra o console CloudWatch de registros em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, em **Gerenciamento de registros**, escolha **Grupos de registros**.

1. Escolha o grupo de registros que você criou na Etapa 4 (por exemplo,`/syslog/my-devices`).

1. Nos detalhes do grupo de registros, localize a seção **Ingestão de Syslog**.

1. Selecione **Configurar**.

1. No menu suspenso VPC endpoint, selecione o VPC endpoint que você criou na Etapa 3.

1. Escolha **Criar**.

------
#### [ AWS CLI ]

```
aws logs put-syslog-configuration \
  --log-group-identifier /syslog/my-devices \
  --vpc-endpoint-id $VPCE_ID \
  --region $REGION
```

Verifique a configuração:

```
aws logs list-syslog-configurations \
  --log-group-identifier /syslog/my-devices \
  --region $REGION
```

------

Seu pipeline de ingestão de syslog agora está ativo. Todas as mensagens de syslog enviadas ao VPC endpoint serão entregues ao grupo de logs. `/syslog/my-devices`

## Etapa 7: Verificar a entrega e a extração do campo
<a name="CWL_Syslog_Setup_Verify"></a>

Envie uma mensagem de teste de qualquer host ou dispositivo EC2 que possa acessar o VPC endpoint e CloudWatch use o Log Analytics para verificar se a mensagem foi entregue e se os campos estruturados foram extraídos corretamente. As mensagens geralmente aparecem em 10 a 20 segundos.

**Envie uma mensagem de teste (texto sem formatação TCP):**

```
echo "<134>1 $(date -u +%Y-%m-%dT%H:%M:%SZ) myhost myapp 1234 - - Hello from syslog" | \
  nc $VPCE_DNS 1514
```

**Verifique a entrega e os campos extraídos:**

------
#### [ Console ]

**Para verificar a entrega usando o Log Analytics (console)**

1. Abra o console CloudWatch de registros em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, em **Registros**, escolha **Log Analytics**.

1. No seletor de grupos de registros, escolha seu grupo de registros (por exemplo,`/syslog/my-devices`).

1. Insira a consulta a seguir e escolha **Executar consulta**:

   ```
   fields @timestamp, facility, severity, hostname, appName, procId, message
   | sort @timestamp desc
   | limit 10
   ```

1. Verifique se sua mensagem de teste aparece e se os campos extraídos foram preenchidos corretamente. Para a mensagem de teste acima, você deve ver `facility` `severity` =`local0`, `hostname` = `info``myhost`, =`myapp`, `appName` = e `procId` =`1234`.

------
#### [ AWS CLI ]

Inicie uma consulta do Log Analytics para verificar a entrega e a extração do campo:

```
QUERY_ID=$(aws logs start-query \
  --log-group-name /syslog/my-devices \
  --start-time $(date -d '5 minutes ago' +%s 2>/dev/null || echo $(date -v-5M +%s)) \
  --end-time $(date +%s) \
  --query-string 'fields @timestamp, facility, severity, hostname, appName, procId, message | sort @timestamp desc | limit 10' \
  --region $REGION \
  --query 'queryId' --output text)

# Wait a few seconds for the query to complete, then retrieve results
aws logs get-query-results \
  --query-id $QUERY_ID \
  --region $REGION
```

Verifique se sua mensagem de teste aparece e se os campos extraídos foram preenchidos corretamente. Para a mensagem de teste acima, você deve ver `facility` `severity` =`local0`, `hostname` = `info``myhost`, =`myapp`, `appName` = e `procId` =`1234`.

------