

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Syslog-Ingestion einrichten
<a name="CWL_Syslog_Setup"></a>

In diesem Abschnitt werden Sie Schritt für Schritt durch die Einrichtung der Syslog-Erfassung in Logs geführt. CloudWatch Sie erstellen einen VPC-Endpunkt für den Syslog-Dienst, eine Protokollgruppe zum Empfangen der Nachrichten, eine Ressourcenrichtlinie zur Autorisierung des Syslog-Dienstes und eine Syslog-Konfiguration, die den Verkehr von Ihrem VPC-Endpunkt zu Ihrer Protokollgruppe weiterleitet.

Sie können all diese Schritte mit der Management Console, den oder den AWS SDKs ausführen. AWS CLI AWS Die folgenden Anweisungen enthalten sowohl die Konsole als auch AWS CLI Beispiele.

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

Die IAM-Identität (Benutzer oder Rolle), die Sie zum Einrichten der Syslog-Erfassung verwenden, muss über Berechtigungen zum Erstellen von VPC-Endpunkten, Protokollgruppen, Ressourcenrichtlinien und Syslog-Konfigurationen verfügen. Die folgende Beispielrichtlinie zeigt die mindestens erforderlichen Berechtigungen:

```
{
  "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": "*"
    }
  ]
}
```

**Anmerkung**  
Wenn Sie bereits über eine VPC, ein Subnetz und eine Sicherheitsgruppe verfügen, benötigen Sie nur die `ec2:DescribeVpcEndpoints` Berechtigungen `ec2:CreateVpcEndpoint``ec2:ModifyVpcEndpoint`, und für die EC2-Aktionen.

## Schritt 1: Eine VPC erstellen oder identifizieren
<a name="CWL_Syslog_Setup_VPC"></a>

Sie benötigen eine VPC, die von Ihrem lokalen Netzwerk (über VPN oder Direct Connect) aus erreichbar ist, in dem sich Ihre Syslog-generierenden Geräte befinden. Wenn Sie bereits eine VPC mit Ihrem Rechenzentrum verbunden haben, überspringen Sie diesen Schritt und verwenden Sie Ihre vorhandenen VPC- und Subnetz-IDs.

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

**So erstellen Sie eine VPC (Konsole)**

1. Öffnen Sie die Amazon-VPC-Konsole unter [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Wählen Sie im Navigationsbereich **Ihre VPCs** und dann **Create VPC** aus.

1. Wählen Sie unter **Zu erstellende Ressourcen** die Option **Nur VPC** aus.

1. Geben Sie für **IPv4 CIDR-Block** den Wert ein `10.0.0.0/16` (oder einen CIDR, der nicht mit Ihrem lokalen Netzwerk in Konflikt steht).

1. Wählen Sie **VPC erstellen** aus.

1. Wählen Sie die neu erstellte VPC aus, klicken Sie auf **Aktionen**, **VPC-Einstellungen bearbeiten**. **Aktivieren Sie sowohl die **DNS-Auflösung** als auch die **DNS-Hostnamen** und wählen Sie dann Speichern.**

1. Erstellen Sie ein Subnetz für den VPC-Endpunkt:

   1. **Wählen Sie im Navigationsbereich **Subnetze und anschließend Subnetz** erstellen aus.**

   1. Wählen Sie für **VPC-ID** die von Ihnen erstellte VPC aus.

   1. Wählen Sie für **Availability Zone** eine Availability Zone aus.

   1. Geben Sie für **IPv4-Subnetz-CIDR-Block** ein. `10.0.1.0/24`

   1. Wählen Sie **Subnetz erstellen**.

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

------

**Anmerkung**  
Der VPC-Endpunkt erstellt ein elastic network interface (ENI) mit einer privaten IP in Ihrem Subnetz. Ihre lokalen Geräte erreichen diese IP über Ihre VPN- oder Direct Connect-Verbindung. Stellen Sie sicher, dass Ihr Netzwerk-Routing den Datenverkehr von Ihren Geräten zum Subnetz CIDR zulässt.

## Schritt 2: Erstellen einer Sicherheitsgruppe
<a name="CWL_Syslog_Setup_SG"></a>

Erstellen Sie eine Sicherheitsgruppe für den VPC-Endpunkt, die eingehenden Syslog-Verkehr von Ihrer VPC zulässt. Dadurch wird gesteuert, welche Ressourcen Syslog an den Endpunkt senden können.

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

**Um eine Sicherheitsgruppe (Konsole) zu erstellen**

1. Öffnen Sie die Amazon-VPC-Konsole unter [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Wählen Sie im Navigationsbereich **Sicherheitsgruppen** und anschließend **Sicherheitsgruppe erstellen** aus.

1. Geben Sie für **Security group name** (Name der Sicherheitsgruppe) `syslog-vpce-sg` ein.

1. Geben Sie für **Beschreibung** den Text `Allow syslog traffic to VPC endpoint` ein.

1. Wählen Sie für **VPC** die VPC aus, die Sie in Schritt 1 erstellt oder identifiziert haben.

1. Wählen Sie im Abschnitt **Eingehende Regeln** die Option **Regel hinzufügen aus und fügen Sie** die folgenden Regeln hinzu:
   + **Regel 1:** Typ = **Benutzerdefiniertes TCP**, Portbereich =`6514`, Quelle = `10.0.0.0/16` (Ihr VPC-CIDR)
   + **Regel 2:** Typ = **Benutzerdefiniertes TCP**, Portbereich =`1514`, Quelle = `10.0.0.0/16`
   + **Regel 3:** Typ = **Benutzerdefiniertes UDP**, Portbereich =`514`, Quelle = `10.0.0.0/16`

1. Wählen Sie **Sicherheitsgruppe erstellen** aus.

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

------

**Tipp**  
Wenn Sie nur ein Protokoll verwenden möchten (z. B. TCP\+TLS auf Port 6514), müssen Sie nur diesen Port in der Sicherheitsgruppe öffnen.

## Schritt 3: Erstellen des VPC-Endpunkts
<a name="CWL_Syslog_Setup_VPCE"></a>

Erstellen Sie einen VPC-Schnittstellen-Endpunkt, der auf den Syslog-Dienst AWS PrivateLink verweist. Dadurch erhält Ihre VPC einen privaten Einstiegspunkt zum CloudWatch Logs-Syslog-Dienst.

**Anmerkung**  
Sie können bei der Erstellung des Endpunkts mehrere Subnetz-IDs für verschiedene Availability Zones angeben. Der Endpunkt erstellt in jedem Subnetz eine ENI und bietet so eine höhere Verfügbarkeit, ohne dass separate VPC-Endpunkte pro Availability Zone erforderlich sind. Ein einziger VPC-Endpunkt mit Subnetzen in mehreren Availability Zones ist ausreichend.

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

**So erstellen Sie den VPC-Endpunkt (Konsole)**

1. Öffnen Sie die Amazon-VPC-Konsole unter [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Wählen Sie im Navigationsbereich **Endpoints** und anschließend **Create** Endpoint aus.

1. Geben Sie **unter Namenstag** einen Namen für den Endpunkt ein (z. B.`syslog-vpce`).

1. Wählen Sie bei **Service category** (Servicekategorie) die Option **AWS services** (-Services) aus.

1. Geben Sie im Suchfeld **Dienste** den Dienst ein `syslog-logs` und wählen Sie ihn aus`com.amazonaws.{{Region}}.syslog-logs`.

1. Wählen Sie für **VPC** die VPC aus, die Sie in Schritt 1 erstellt oder identifiziert haben.

1. Wählen Sie im Abschnitt **Subnetze** eine oder mehrere Availability Zones aus und wählen Sie die Subnetze aus, in denen Sie die Endpunkt-Netzwerkschnittstellen erstellen möchten.

1. Wählen Sie für **Sicherheitsgruppen** die Sicherheitsgruppe aus, die Sie in Schritt 2 () `syslog-vpce-sg` erstellt haben.

1. (Optional) Wenn Sie einschränken möchten, welcher Datenverkehr über den Endpunkt zulässig ist, konfigurieren Sie eine VPC-Endpunktrichtlinie. Weitere Informationen finden Sie unter [VPC-Endpunktrichtlinien für Syslog](CWL_Syslog_VPCEndpointPolicies.md).

1. Wählen Sie **Endpunkt erstellen** aus.

1. Nachdem sich der Endpunktstatus in **Verfügbar** geändert hat, wählen Sie den Endpunkt aus und notieren Sie sich den Wert für die **DNS-Namen**. Dies ist die Adresse, an die Ihre Syslog-Geräte senden.

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

Warten Sie, bis der Endpunkt verfügbar ist (ca. 60 Sekunden), und rufen Sie dann den DNS-Namen ab:

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

Speichern Sie den `VPCE_DNS` Wert — Sie konfigurieren Ihre Syslog-Geräte so, dass sie an diese Adresse senden.

------

## Schritt 4: Erstellen Sie eine Protokollgruppe
<a name="CWL_Syslog_Setup_LogGroup"></a>

Erstellen Sie die Protokollgruppe CloudWatch Logs, in die Ihre Syslog-Meldungen zugestellt werden. Sie können einen beliebigen Protokollgruppennamen verwenden. Aus organisatorischen Gründen empfehlen wir, ein `/syslog/` Präfix zu verwenden.

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

**Um eine Protokollgruppe (Konsole) zu erstellen**

1. Öffnen Sie die CloudWatch Logs-Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Wählen Sie im Navigationsbereich unter **Protokollverwaltung** die Option **Protokollgruppen** aus.

1. Wählen Sie **Protokollgruppe erstellen** aus.

1. Geben Sie als **Namen der Protokollgruppe** den Wert ein`/syslog/my-devices`.

1. (Optional) Konfigurieren Sie die Aufbewahrungseinstellungen und die Verschlüsselung nach Bedarf.

1. Wählen Sie **Erstellen** aus.

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

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

------

Sie müssen keinen Protokollstream erstellen. Der Syslog-Dienst erstellt automatisch einen Protokollstream mit dem Namen `{{VPCE_ID}}_Syslog_{{Region}}` (z. B.`vpce-0abc123def456_Syslog_us-east-1`), wenn die erste Nachricht zugestellt wird.

## Schritt 5: Fügen Sie eine Ressourcenrichtlinie hinzu
<a name="CWL_Syslog_Setup_ResourcePolicy"></a>

Der CloudWatch Logs-Syslog-Dienst schreibt mithilfe des `syslog.logs.amazonaws.com` Service Principal in Ihre Protokollgruppe. Sie müssen ihm die Erlaubnis über eine Ressourcenrichtlinie für Ihre Protokollgruppe erteilen. Die `aws:SourceArn` Bedingung stellt sicher, dass nur Datenverkehr von Ihrem spezifischen VPC-Endpunkt in diese Protokollgruppe schreiben kann.

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

Die Bedingungen in der Ressourcenrichtlinie bieten die folgenden Schutzmaßnahmen:
+ `aws:SourceAccount`— Beugt Angriffen mit verwirrten Stellvertretern vor. Nur der Traffic Ihres Kontos wird akzeptiert.
+ `aws:SourceArn`— Bereichert den Zugriff auf einen bestimmten VPC-Endpunkt. Wenn Sie mehrere VPC-Endpoints haben, fügen Sie jeden als separaten ARN in der Bedingung hinzu.

Um mehreren VPC-Endpunkten das Schreiben in dieselbe Protokollgruppe zu ermöglichen, verwenden Sie den `ArnLike` Bedingungsoperator mit einem Platzhalter:

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

## Schritt 6: Erstellen Sie die Syslog-Konfiguration
<a name="CWL_Syslog_Setup_Config"></a>

Dieser Schritt teilt dem CloudWatch Logs-Syslog-Dienst mit, dass der von Ihrem VPC-Endpunkt eingehende Datenverkehr an Ihre Protokollgruppe weitergeleitet werden soll. Ohne diese Konfiguration wird der Datenverkehr von Ihrem Endpunkt abgewiesen.

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

**Um die Syslog-Konfiguration (Konsole) zu erstellen**

1. Öffnen Sie die CloudWatch Logs-Konsole unter. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. Wählen Sie im Navigationsbereich unter **Protokollverwaltung** die Option **Protokollgruppen** aus.

1. Wählen Sie die Protokollgruppe aus, die Sie in Schritt 4 erstellt haben (z. B.`/syslog/my-devices`).

1. Suchen Sie in den Details der Protokollgruppe den Abschnitt **Syslog Ingestion**.

1. Wählen Sie **Konfigurieren** aus.

1. Wählen Sie in der Dropdownliste VPC-Endpunkt den VPC-Endpunkt aus, den Sie in Schritt 3 erstellt haben.

1. Wählen Sie **Erstellen** aus.

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

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

Überprüfen Sie die Konfiguration:

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

------

Ihre Syslog-Erfassungspipeline ist jetzt aktiv. Alle an den VPC-Endpunkt gesendeten Syslog-Meldungen werden an die `/syslog/my-devices` Protokollgruppe übermittelt.

## Schritt 7: Überprüfen Sie die Zustellung und die Feldextraktion
<a name="CWL_Syslog_Setup_Verify"></a>

Senden Sie eine Testnachricht von einem beliebigen EC2-Host oder -Gerät, das den VPC-Endpunkt erreichen kann, und überprüfen Sie anschließend mithilfe von CloudWatch Log Analytics, ob die Nachricht zugestellt und die strukturierten Felder korrekt extrahiert wurden. Meldungen werden in der Regel innerhalb von 10—20 Sekunden angezeigt.

**Senden Sie eine Testnachricht (TCP-Klartext):**

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

**Überprüfen Sie die Lieferung und die extrahierten Felder:**

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

**Um die Lieferung mit Log Analytics (Konsole) zu überprüfen**

1. Öffnen Sie die CloudWatch Logs-Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Wählen Sie im Navigationsbereich unter **Logs** die Option **Log Analytics** aus.

1. Wählen Sie in der Protokollgruppenauswahl Ihre Protokollgruppe aus (z. B.`/syslog/my-devices`).

1. Geben Sie die folgende Abfrage ein und wählen Sie **Abfrage ausführen aus**:

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

1. Vergewissern Sie sich, dass Ihre Testnachricht angezeigt wird und dass die extrahierten Felder korrekt ausgefüllt sind. In der obigen Testnachricht sollten Sie `facility` =`local0`, `severity` =`info`, `hostname` = `myhost``myapp`, `appName` = und `procId` = sehen`1234`.

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

Starten Sie eine Log Analytics-Abfrage, um die Zustellung und die Feldextraktion zu überprüfen:

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

Stellen Sie sicher, dass Ihre Testnachricht angezeigt wird und dass die extrahierten Felder korrekt ausgefüllt sind. In der obigen Testnachricht sollten Sie `facility` =`local0`, `severity` =`info`, `hostname` = `myhost``myapp`, `appName` = und `procId` = sehen`1234`.

------