Wie konfiguriere ich Instances in einer EC2-Auto-Scaling-Gruppe, die keinen Internetzugang hat, um Metriken und Protokolle an CloudWatch zu übermitteln?
Ich habe eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance in einer Amazon-EC2-Auto-Scaling-Gruppe, die keinen Internetzugang hat. Ich möchte, dass die Amazon-EC2-Instance Protokolle und Metriken an Amazon CloudWatch übermittelt.
Lösung
Gehe wie folgt vor, um EC2-Instances in einer EC2-Auto-Scaling-Gruppe so zu konfigurieren, dass sie Metriken und Protokolle an CloudWatch senden.
Den CloudWatch-Agenten installieren
Installiere den CloudWatch-Agenten auf einer Instance, die über eine Internetverbindung verfügt. Oder verwende eine vorhandene Instance, die bereits Protokolle und Metriken über den CloudWatch-Agenten an CloudWatch sendet.
Hinweis: Nimm den Namen der Auto-Scaling-Gruppe als Dimension in deine CloudWatch-Agent-Konfiguration auf. Der Agent ruft diesen Namen aus Instance-Tags und anderen Metadaten wie ImageId, InstanceId und InstanceType ab.
Vergewissere dich danach, dass der CloudWatch-Agent tatsächlich Metriken und Protokolle an CloudWatch übermittelt.
Erstelle eine Startvorlage für deine EC2-Auto-Scaling-Gruppe
Erstelle eine Startvorlage für die EC2-Auto-Scaling-Gruppe.
Wähle Erweiterte Details aus. Wähle danach IAM-Instance-Profil und Benutzerdaten aus. Gib unter Benutzerdaten ein Skript an, um den CloudWatch-Agenten basierend auf dem von dir konfigurierten JSON zu installieren und zu konfigurieren. Wähle für das IAM-Instance-Profil die AWS Identity and Access Management (IAM)-Rolle aus, die es EC2-Instances ermöglicht, Metriken und Protokolle an CloudWatch zu senden. Informationen zu diesen erweiterten Einstellungen findest du unter Erweiterte Einstellungen.
Beispiel für ein Benutzerdatenskript auf einer Instance:
#!/bin/bashcd /tmp wget https://s3.REGION.amazonaws.com/amazoncloudwatch-agent-REGION/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm rpm -U ./amazon-cloudwatch-agent.rpm cat << EOF > /opt/aws/amazon-cloudwatch-agent/bin/config.json { "agent": { "metrics_collection_interval": 60 }, "metrics": { "append_dimensions": { "InstanceId": "\${aws:InstanceId}" }, "metrics_collected": { "disk": { "measurement": [ "disk_used_percent" ], "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ] } } } } EOF /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s
Hinweis: Ersetze REGION durch deine AWS-Region. Um Sonderzeichen in der Datei config.json zu maskieren, verwende Backslashs (\). Das Skript konfiguriert den CloudWatch-Agenten so, dass er die Arbeitsspeicher- und Festplattenauslastung überwacht und dann den Agenten startet. Vergewissere dich, dass du den Download-Link für die Region deiner EC2-Auto-Scaling-Gruppe verwendest.
Erstelle VPC-Endpunkte für deine Metriken und Protokolle
Erstelle Schnittstellenendpunkte der Virtual Private Cloud (VPC) für CloudWatch-Metriken und Amazon CloudWatch Logs für die VPC, die die privaten Subnetze hostet. Aktualisiere danach deine Endpunktrichtlinien mit benutzerdefinierten Richtlinien, um die erforderlichen CloudWatch-Aktionen zuzulassen. Informationen zu Service-Endpunkten siehe Amazon-CloudWatch-Endpunkte und Kontingente.
Hinweis: Achte darauf, den Endpunkt zu verwenden, der der Region deiner EC2-Auto-Scaling-Gruppe entspricht. Wenn sich deine EC2-Auto-Scaling-Gruppe beispielsweise in der Region eu-west-2 befindet, verwende monitoring.eu-west-2.amazonaws.com für Metriken und logs.eu-west-2.amazonaws.com für Protokolle.
Beispiel für eine CloudWatch-VPC-Endpunktrichtlinie:
{ "Statement": [ { "Sid": "PutOnly", "Principal": "*", "Action": [ "cloudwatch:PutMetricData" ], "Effect": "Allow", "Resource": "*" } ] }
Beispiel für eine CloudWatch-Logs-VPC-Endpunktrichtlinie:
{ "Statement": [ { "Sid": "PutOnly", "Principal": "*", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Resource": "*" } ] }
Erstelle danach einen VPC-Gateway-Endpunkt für Amazon Simple Storage Service (Amazon S3) für die VPC, die deine privaten Subnetze hostet. Dieser Endpunkt ermöglicht es Instances in den privaten Subnetzen, das CloudWatch-Agent-Paket herunterzuladen.
Erstelle eine EC2-Auto-Scaling-Gruppe
Erstelle eine EC2-Auto-Scaling-Gruppe mit aktivierten privaten Subnetzen mithilfe der Startvorlage, die du erstellt hast.
- Sprache
- Deutsch
