Wie kann ich herausfinden, warum meine AWS-OpsWorks-Stacks-Instance angehalten wurde?

Letzte Aktualisierung: 09.09.2021

Eine meiner Amazon Elastic Compute Cloud (EC2)-Instances, die von AWS OpsWorks Stacks verwaltet wird, wird nicht mehr ausgeführt. Wie überprüfe ich, was die Instance gestoppt hat?

Kurzbeschreibung

Es gibt zwei Möglichkeiten, eine OpsWorks-Stacks-Instance zu stoppen:

Wichtig: OpsWorks Stacks erkennt keine Start-, Stopp- oder Neustartvorgänge, die in der Amazon-EC2-Konsole ausgeführt werden. Weitere Informationen finden Sie unter Manuelles Starten, Stoppen und Neustarten von 24/7-Instances.

Um zu überprüfen, was Ihre OpsWorks-Stacks-Instance gestoppt hat, können Sie einen der folgenden Schritte ausführen:

Überprüfen Sie Ihre AWS CloudTrail auf gleichzeitige StopInstances-API-Aufrufe von Amazon EC2 und StopInstance-API-Aufrufe von OpsWorks Stacks.

Wenn die beiden API-Aufrufe über denselben Zeitraum protokolliert wurden, dann wurde die Instance auf der OpsWorks-Stacks-Seite manuell angehalten. Wenn ein StopInstances-API-Aufruf in Amazon EC2 nur protokolliert wurde, wurde Auto-Healing auf die Instance angewendet.

Überprüfen Sie die Agent-Protokolle Ihrer Instance, um festzustellen, ob der OpsWorks-Agent immer noch sein Keepalive-Signal gesendet hat, als die Instance angehalten wurde.

Wenn erfolgreiche Keepalive-Signale protokolliert wurden, als die Instance gestoppt wurde, dann wurde die Instance auf der OpsWorks-Stacks-Seite manuell angehalten. Wenn die Keepalive-Protokolle fehlen oder fehlgeschlagene Signalversuche protokolliert wurden, als die Instance gestoppt wurde, dann wurde Auto-Healing angewendet.

Wenn Auto-Healing auf Ihre Instance angewendet wurde, siehe Wie kann ich verhindern, dass AWS OpsWorks Stacks fehlerfreie Instances unerwartet neu startet? Wenn Ihre Instance manuell angehalten wurde, überprüfen Sie die AWS Identity and Access Management (IAM)-Rolle, die den StopInstance-API-Aufruf getätigt hat. Bestimmen Sie dann, wer Zugriff auf diese Rolle hat, und finden Sie heraus, warum die Instance gestoppt wurde.

Auflösung

Überprüfen Sie die CloudTrail-Protokolle Ihrer Instance auf Amazon-EC2-StopInstances-API-Aufrufe

1.    Öffnen Sie die CloudTrail-Konsole.

Wichtig: Stellen Sie sicher, dass es sich bei der ausgewählten AWS-Region um dieselbe Region handelt, in der sich Ihre Instance befindet.

2.    Wählen Sie im linken Navigationsbereich Ereinisverlauf aus.

3.    Wählen Sie oben links auf der Seite Ereignisverlauf die Dropdown-Liste Filter aus. Wählen Sie dann Ressourcennameaus.

4.    Geben Sie im Suchtextfeld rechts neben der Dropdown-Liste Filter Ihre Amazon-EC2-Instance-ID ein. Ergebnisse für alle mit der Instance verknüpften Ereignisse werden angezeigt.

5.    Suchen Sie in der Spalte Ereignisname nach StopInstances.

6.    Beachten Sie in der Spalte Ereigniszeit der Ereigniszeile StopInstances den Zeitstempel des API-Aufrufs. Sie werden sich auf den Zeitstempel beziehen, wenn Sie die CloudTrail-Protokolle Ihrer Instance auf OpsWorks-Stacks-StopInstance-API-Aufrufe überprüfen.

7.    Öffnen Sie den Ereignisprotokoll, indem Sie den Namen des Ereignisses (StopInstances) in der Spalte Ereignisname auswählen.

8.    Suchen Sie im Ereignisprotokoll-Fenster nach dem Wert „invokedBy“. Wenn die Instance auf der Seite von OpsWorks Stacks angehalten wurde – entweder manuell oder durch Auto-Healing – zeigt die Amazon-EC2-StopInstances-API-Antwort die folgende Ausgabe an:

"invokedBy": "opsworks.amazonaws.com"

Hinweis: Es gibt keinen Indikator im Ereignisprotokoll, ob Auto-Healing auf die Instance angewendet wurde oder nicht.

Überprüfen Sie die CloudTrail-Protokolle Ihrer Instance auf StopInstance-API-Aufrufe bei OpsWorks Stacks

1.    Öffnen Sie die CloudTrail-Konsole.

Wichtig: Stellen Sie sicher, dass es sich bei der ausgewählten AWS-Region um dieselbe Region handelt, in der sich Ihr OpsWorks-Stacks-API-Endpunkt befindet.

2.    Wählen Sie im linken Navigationsbereich Ereinisverlauf aus.

3.    Wählen Sie oben links auf der Seite Ereignisverlauf die Dropdown-Liste Filter aus. Wählen Sie dann Ressourcennameaus.

4.    Geben Sie im Suchtextfeld rechts neben der Dropdown-Liste Filter Ihre OpsWorks Stacks-Instance-ID ein. Ergebnisse für alle mit der Instance verknüpften Ereignisse werden angezeigt.

5.    Suchen Sie in der Spalte Ereignisname nach StopInstance.

6.    Überprüfen Sie in der Spalte Ereigniszeit der StopInstance-Ereigniszeile, ob der Zeitstempel des Ereignisses mit dem Zeitstempel des Amazon-EC2-StopInstances-Ereignisses übereinstimmt oder nicht.

Wenn der StopInstance-API-Aufruf gleichzeitig mit dem StopInstances-API-Aufruf protokolliert wurde, dann wurde die Instance auf der OpsWorks-Stacks-Seite manuell angehalten.

Wenn kein StopInstance-API-Aufruf gleichzeitig mit dem StopInstances-API-Aufruf protokolliert wurde, dann wurde Auto-Healing auf die Instance angewendet.

(Optional) Überprüfen Sie die Agent-Protokolle Ihrer Instance, um festzustellen, ob der OpsWorks-Agent immer noch sein Keepalive-Signal gesendet hat, als die Instance gestoppt wurde

Stellen Sie mithilfe von SSH (Secure Shell) eine Verbindung zu Ihrer Linux-Instance her oder stellen Sie mithilfe des Windows-Remote-Desktop-Protokolls (RDP) eine Verbindung zu Ihrer Windows-Instance her. Suchen Sie dann im OpsWorks-Agent-Protokoll der Instance nach der Protokolldatei opsworks-agent.keep_alive.log.

Wenn erfolgreiche Keepalive-Signale protokolliert wurden, als die Instance gestoppt wurde, dann wurde die Instance auf der OpsWorks-Stacks-Seite manuell angehalten. Wenn die Keepalive-Protokolle fehlen oder fehlgeschlagene Signalversuche protokolliert wurden, als die Instance gestoppt wurde, dann wurde Auto-Healing angewendet.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?