

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione dell'ingestione di syslog
<a name="CWL_Syslog_Setup"></a>

Questa sezione illustra i passaggi per configurare l'ingestione di syslog in Logs. CloudWatch Creerai un endpoint VPC per il servizio syslog, un gruppo di log per ricevere i messaggi, una politica delle risorse per autorizzare il servizio syslog e una configurazione syslog che indirizza il traffico dall'endpoint VPC al tuo gruppo di log.

Puoi eseguire tutti questi passaggi utilizzando la Console di gestione, o gli SDK. AWS AWS CLI AWS Le seguenti istruzioni forniscono sia la console che gli AWS CLI esempi.

## Prerequisiti
<a name="CWL_Syslog_Setup_Prerequisites"></a>

L'identità IAM (utente o ruolo) che usi per configurare l'ingestione di syslog deve disporre delle autorizzazioni per creare endpoint VPC, gruppi di log, policy di risorse e configurazioni syslog. La seguente policy di esempio mostra le autorizzazioni minime richieste:

```
{
  "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 disponi già di un VPC, di una sottorete e di un gruppo di sicurezza, sono necessari solo i e i `ec2:CreateVpcEndpoint` `ec2:DescribeVpcEndpoints` permessi per le azioni EC2. `ec2:ModifyVpcEndpoint`

## Fase 1: Creare o identificare un VPC
<a name="CWL_Syslog_Setup_VPC"></a>

È necessario un VPC raggiungibile dalla rete locale (tramite VPN o Direct Connect) dove risiedono i dispositivi che generano syslog. Se hai già un VPC collegato al tuo data center, salta questo passaggio e usa gli ID VPC e subnet esistenti.

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

**Per creare un VPC (console)**

1. Apri la console Amazon VPC all'indirizzo [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Nel pannello di navigazione, scegli **I tuoi VPC**, quindi scegli **Crea VPC**.

1. Per **Risorse da creare** scegli **Solo VPC**.

1. Per il **blocco CIDR IPv4**, inserisci `10.0.0.0/16` (o un CIDR che non sia in conflitto con la rete locale).

1. Seleziona **Crea VPC**.

1. Seleziona il VPC appena creato, scegli **Azioni, Modifica** impostazioni **VPC.** **Abilita sia la **risoluzione DNS** che i **nomi host DNS**, quindi scegli Salva.**

1. Crea una sottorete per l'endpoint VPC:

   1. **Nel pannello di navigazione, scegli Sottoreti, **quindi scegli Crea sottorete**.**

   1. Per **VPC ID**, seleziona il VPC che hai creato.

   1. Per **Zona di disponibilità**, scegli una zona di disponibilità.

   1. Per il blocco **CIDR della sottorete IPv4**, immettere. `10.0.1.0/24`

   1. Scegliere **Create subnet (Crea sottorete)**.

------
#### [ 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**  
L'endpoint VPC crea un'interfaccia di rete elastica (ENI) con un IP privato nella sottorete. I dispositivi locali raggiungono questo IP tramite la connessione VPN o Direct Connect. Assicurati che il routing di rete consenta il traffico dai tuoi dispositivi alla sottorete CIDR.

## Fase 2: creazione di un gruppo di sicurezza
<a name="CWL_Syslog_Setup_SG"></a>

Crea un gruppo di sicurezza per l'endpoint VPC che consenta il traffico syslog in entrata dal tuo VPC. Questo controlla quali risorse possono inviare syslog all'endpoint.

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

**Per creare un gruppo di sicurezza (console)**

1. Apri la console Amazon VPC all'indirizzo [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Nel riquadro di navigazione, scegli **Gruppi di sicurezza**, quindi scegli **Crea gruppo di sicurezza**.

1. In **Security group name (Nome gruppo di sicurezza)** immettere `syslog-vpce-sg`.

1. Per **Descrizione**, inserisci `Allow syslog traffic to VPC endpoint`.

1. Per **VPC**, seleziona il VPC che hai creato o identificato nel passaggio 1.

1. Nella sezione **Regole in entrata**, scegli **Aggiungi regola e aggiungi** le seguenti regole:
   + **Regola 1:** Tipo = **TCP personalizzato**, Intervallo di porte =`6514`, Source = `10.0.0.0/16` (il tuo VPC CIDR)
   + **Regola 2:** Tipo = **TCP personalizzato**, Intervallo di porte =, Origine = `1514` `10.0.0.0/16`
   + **Regola 3:** Tipo = **UDP personalizzato**, Intervallo di porte =`514`, Fonte = `10.0.0.0/16`

1. Scegliere **Create Security Group** (Crea gruppo di sicurezza).

------
#### [ 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
```

------

**Suggerimento**  
Se prevedi di utilizzare un solo protocollo (ad esempio, TCP\+TLS sulla porta 6514), devi solo aprire quella porta nel gruppo di sicurezza.

## Fase 3: creazione dell'endpoint VPC
<a name="CWL_Syslog_Setup_VPCE"></a>

Crea un endpoint VPC di interfaccia che punti al servizio syslog. AWS PrivateLink Ciò fornisce al VPC un punto di accesso privato al servizio CloudWatch Logs syslog.

**Nota**  
È possibile specificare più ID di sottorete in diverse zone di disponibilità durante la creazione dell'endpoint. L'endpoint crea un ENI in ogni sottorete, fornendo una maggiore disponibilità senza la necessità di endpoint VPC separati per zona di disponibilità. È sufficiente un singolo endpoint VPC con sottoreti in più zone di disponibilità.

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

**Per creare l'endpoint VPC (console)**

1. Apri la console Amazon VPC all'indirizzo [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. **Nel riquadro di navigazione, scegli **Endpoints, quindi scegli Crea endpoint**.**

1. Per **il tag Nome**, inserisci un nome per l'endpoint (ad esempio,). `syslog-vpce`

1. Per **Service category (Categoria servizio)**, scegli **AWS services**.

1. Nel campo di ricerca **Servizi**, inserisci `syslog-logs` e seleziona il servizio`com.amazonaws.{{Region}}.syslog-logs`.

1. Per **VPC**, seleziona il VPC che hai creato o identificato nel passaggio 1.

1. Nella sezione **Subnet**, seleziona una o più zone di disponibilità e scegli le sottoreti in cui desideri creare le interfacce di rete degli endpoint.

1. Per i **gruppi di sicurezza**, selezionate il gruppo di sicurezza creato nel passaggio 2 (). `syslog-vpce-sg`

1. (Facoltativo) Se desideri limitare il traffico consentito attraverso l'endpoint, configura una policy per gli endpoint VPC. Per ulteriori informazioni, consulta [Policy degli endpoint VPC per syslog](CWL_Syslog_VPCEndpointPolicies.md).

1. Seleziona **Crea endpoint**.

1. **Dopo che lo stato dell'endpoint è passato a **Disponibile**, seleziona l'endpoint e annota il valore dei nomi DNS.** Questo è l'indirizzo a cui verranno inviati i dispositivi syslog.

------
#### [ 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"
```

Attendi che l'endpoint diventi disponibile (circa 60 secondi), quindi recupera il nome 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"
```

Salva il `VPCE_DNS` valore: configurerai i tuoi dispositivi syslog per l'invio a questo indirizzo.

------

## Fase 4: Creare un gruppo di log
<a name="CWL_Syslog_Setup_LogGroup"></a>

Crea il gruppo di log CloudWatch Logs in cui verranno recapitati i tuoi messaggi syslog. È possibile utilizzare qualsiasi nome di gruppo di log. Si consiglia di utilizzare un `/syslog/` prefisso per motivi di chiarezza organizzativa.

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

**Per creare un gruppo di log (console)**

1. Apri la console CloudWatch Logs all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel riquadro di navigazione, in **Gestione dei registri**, scegli **Gruppi di log**.

1. Scegliere **Crea gruppo di log**.

1. Per il **nome del gruppo di log**, inserisci`/syslog/my-devices`.

1. (Facoltativo) Configurate le impostazioni di conservazione e la crittografia in base alle esigenze.

1. Scegli **Create** (Crea).

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

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

------

Non è necessario creare un flusso di log. Il servizio syslog crea automaticamente un flusso di log denominato `{{VPCE_ID}}_Syslog_{{Region}}` (ad esempio`vpce-0abc123def456_Syslog_us-east-1`) quando viene recapitato il primo messaggio.

## Fase 5: Aggiungere una politica delle risorse
<a name="CWL_Syslog_Setup_ResourcePolicy"></a>

Il servizio CloudWatch Logs syslog scrive nel gruppo di log utilizzando Service Principal. `syslog.logs.amazonaws.com` È necessario concedergli l'autorizzazione tramite una politica delle risorse sul gruppo di log. La `aws:SourceArn` condizione garantisce che solo il traffico proveniente dal tuo endpoint VPC specifico possa scrivere su questo gruppo di log.

```
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
```

Le condizioni contenute nella politica delle risorse forniscono le seguenti protezioni:
+ `aws:SourceAccount`— Previene gli attacchi confusi dei vice agenti. Viene accettato solo il traffico del tuo account.
+ `aws:SourceArn`— Ambita l'accesso a un endpoint VPC specifico. Se disponi di più endpoint VPC, aggiungili ciascuno come ARN separato nella condizione.

Per consentire a più endpoint VPC di scrivere sullo stesso gruppo di log, usa l'operatore `ArnLike` condition con un wildcard:

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

## Fase 6: Creare la configurazione syslog
<a name="CWL_Syslog_Setup_Config"></a>

Questo passaggio indica al servizio CloudWatch Logs syslog che il traffico in arrivo dall'endpoint VPC deve essere indirizzato al gruppo di log. Senza questa configurazione, il traffico proveniente dall'endpoint viene rifiutato.

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

**Per creare la configurazione syslog (console)**

1. Apri la console CloudWatch Logs all'indirizzo. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. Nel riquadro di navigazione, in **Gestione dei registri**, scegli **Gruppi di log**.

1. Scegli il gruppo di log che hai creato nel passaggio 4 (ad esempio,`/syslog/my-devices`).

1. Nei dettagli del gruppo di log, individua la sezione **Syslog Ingestion**.

1. Scegli **Configura**.

1. Dal menu a discesa VPC endpoint, seleziona l'endpoint VPC che hai creato nel passaggio 3.

1. Scegli **Create** (Crea).

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

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

Verifica la configurazione:

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

------

La tua pipeline di ingestione di syslog è ora attiva. Tutti i messaggi syslog inviati all'endpoint VPC verranno recapitati al gruppo di log. `/syslog/my-devices`

## Fase 7: Verifica della consegna e dell'estrazione sul campo
<a name="CWL_Syslog_Setup_Verify"></a>

Invia un messaggio di prova da qualsiasi host o dispositivo EC2 in grado di raggiungere l'endpoint VPC, quindi CloudWatch utilizza Log Analytics per verificare che il messaggio sia stato recapitato e che i campi strutturati siano stati estratti correttamente. I messaggi vengono in genere visualizzati entro 10-20 secondi.

**Invia un messaggio di prova (testo semplice TCP):**

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

**Verifica la consegna e i campi estratti:**

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

**Per verificare la consegna utilizzando Log Analytics (console)**

1. Apri la console CloudWatch Logs all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel riquadro di navigazione, in **Logs**, scegli **Log** Analytics.

1. Nel selettore del gruppo di log, scegli il tuo gruppo di log (ad esempio,`/syslog/my-devices`).

1. Immettete la seguente interrogazione e scegliete **Esegui interrogazione**:

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

1. Verifica che venga visualizzato il messaggio di prova e che i campi estratti siano compilati correttamente. Per il messaggio di prova riportato sopra, dovresti vedere `facility` `severity` = `local0``info`, `hostname` = `myhost``myapp`, `appName` = e `procId` =. `1234`

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

Avvia una query di Log Analytics per verificare la consegna e l'estrazione dei campi:

```
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
```

Verifica che venga visualizzato il messaggio di prova e che i campi estratti siano compilati correttamente. Per il messaggio di prova riportato sopra, dovresti vedere `facility` `severity` = `local0``info`, `hostname` = `myhost``myapp`, `appName` = e `procId` =. `1234`

------