Tutorial: Protokollieren des Status einer Amazon EC2-Instance mit CloudWatch Events - Amazon CloudWatch Events

Tutorial: Protokollieren des Status einer Amazon EC2-Instance mit CloudWatch Events

Anmerkung

Amazon EventBridge ist die bevorzugte Methode zum Verwalten Ihrer Ereignisse. Amazon CloudWatch Events und EventBridge liegen der gleiche Service und die gleiche API zugrunde, EventBridge bietet jedoch mehr Funktionen. Änderungen, die Sie in CloudWatch oder EventBridge vornehmen, werden in jeder Konsole angezeigt. Weitere Informationen finden Sie unter Amazon EventBridge.

Sie können eine AWS Lambda-Funktion erstellen, die Änderungen am Status einer Amazon EC2-Instance protokolliert. Sie können eine Regel erstellen, die die Funktion ausführt, sobald ein Statusübergang oder ein Übergang zu einem oder mehreren Status stattfindet, die für sie von Interesse sind. In diesem Tutorial protokollieren Sie den Start einer neuen Instance.

Schritt 1: Erstellen einer AWS Lambda-Funktion

Erstellen Sie eine Lambda-Funktion, um die Statusänderungsereignisse zu protokollieren. Sie geben diese Funktion beim Erstellen der Regel an.

So erstellen Sie eine Lambda-Funktion:
  1. Öffnen Sie die AWS Lambda-Konsole unter https://console.aws.amazon.com/lambda/.

  2. Wenn Sie noch nicht mit Lambda gearbeitet haben, wird Ihnen eine Willkommensseite angezeigt. Wählen Sie Get Started Now. Wählen Sie andernfalls Create a Lambda Function (Eine Lambda-Funktion erstellen) aus.

  3. Geben Sie auf der Seite Select blueprint für das Filter hello ein und wählen Sie dann den Plan hello-world aus.

  4. Wählen Sie auf der Seite Configure Triggers (Auslöser konfigurieren) die Option Next (Weiter) aus.

  5. Führen Sie auf der Seite Configure function (Funktion konfigurieren) die folgenden Schritte aus:

    1. Geben Sie einen Namen und eine Beschreibung für die Lambda-Funktion ein. Z. B. Name der Funktion "LogEC2InstanceStateChange".

    2. Bearbeiten Sie den Beispiel-Code für die Lambda-Funktion. Beispiel:

      'use strict'; exports.handler = (event, context, callback) => { console.log('LogEC2InstanceStateChange'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
    3. Wählen Sie für Role die Option Choose an existing role. Wählen Sie in Existing role (Vorhandene Rolle) Ihre Basis-Ausführungsrolle aus. Andernfalls erstellen Sie eine neue grundlegende Ausführungsrolle.

    4. Wählen Sie Next.

  6. Klicken Sie auf der Seite Review auf Create function.

Schritt 2: Erstellen einer Regel

Erstellen Sie eine Regel, damit die Lambda-Funktion ausgeführt wird, wenn Sie eine Amazon EC2-Instance starten.

So erstellen Sie Ihre CloudWatch Events-Regel manuell
  1. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Wählen Sie im Navigationsbereich Events und die Option Create rule aus.

  3. Führen Sie für Ereignisquelle folgende Schritte aus:

    1. Wählen Sie Event Pattern aus.

    2. Wählen Sie Build event pattern to match events by service aus.

    3. Wählen Sie EC2, EC2 Instance State-change Notification (Benachrichtigung über die Statusänderung der EC2-Instance).

    4. Wählen Sie Specific state(s) (Spezifische(r) Status) aus und dann die Option Running (In Ausführung).

    5. Standardmäßig entspricht die Regel allen Instances in der Region. Damit die Regel mit einer bestimmten Instance übereinstimmt, wählen Sie Specific instance(s) und dann eine oder mehrere Instances aus.

  4. Wählen Sie für Targets (Ziele) Add target (Ziel hinzufügen), Lambda-Funktion.

  5. Wählen Sie für Function (Funktion) die Lambda-Funktion, die Sie erstellt haben.

  6. Wählen Sie Configure details.

  7. Geben Sie für Rule definition einen Namen und eine Beschreibung für die Regel ein.

  8. Wählen Sie Create rule aus.

Schritt 3: Testen der Regel

Starten Sie zum Testen der Regel eine Amazon EC2 Instance. Nach einigen Minuten nach dem Start und der Initialisierung der Instance können Sie prüfen, ob die Lambda-Funktion aufgerufen wurde.

Testen der Regel durch Starten einer Instance
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Starten Sie eine Instance. Weitere Informationen finden Sie unter Ausführen einer Linux-Instance im Amazon EC2-Benutzerhandbuch für Linux Instances.

  3. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.

  4. Wählen Sie im Navigationsbereich Events und Rules aus, wählen Sie den Namen der Regel aus, die Sie erstellt haben, und wählen Sie Show metrics for the rule aus.

  5. So zeigen Sie die Ausgabe aus der Lambda-Funktion an:

    1. Wählen Sie im Navigationsbereich Logs aus.

    2. Wählen Sie den Namen der Protokollgruppe für die Lambda-Funktion aus (/aws/lambda/function-name).

    3. Wählen Sie den Namen des Protokoll-Streams aus, um die von der Funktion für die gestartete Instance bereitgestellten Daten anzuzeigen.

  6. (Optional) Zum Abschluss können Sie die Amazon EC2-Konsole der Instance öffnen und die gestartete Instance anhalten oder beenden. Weitere Informationen finden Sie unter Beenden Ihrer Instance im Amazon EC2-Benutzerhandbuch für Linux-Instances.