Das Schlimmste an einem ausgefallenen Server ist nicht der Ausfall: Es ist, zwei Stunden später von einem Kunden davon zu erfahren. AWS kann Sie benachrichtigen, sobald etwas schiefgeht, aber ab Werk meldet es gar nichts: Sie müssen es Maschine für Maschine anfordern. Diese Anleitung richtet die beiden Benachrichtigungen ein, die sich am meisten lohnen, „die Maschine antwortet nicht" und „der Prozessor läuft seit längerem am Anschlag", sodass sie in Ihrem Postfach ankommen.
Lightsail und EC2 machen das unterschiedlich. Lightsail hat es integriert und ist einfacher; EC2 nutzt zwei AWS-Dienste mit eigenem Namen, CloudWatch und SNS, die wir unten erklären.
Bevor Sie anfangen: was die Begriffe bedeuten
- Metrik
- Ein Wert, den AWS alle paar Minuten von Ihrer Maschine misst: Prozessorauslastung, Netzwerkverkehr, ob sie auf die Statusprüfungen antwortet...
- Alarm
- Eine Regel der Art „wenn diese Metrik so lange über diesem Wert liegt, benachrichtige mich".
- CPU
- Der Prozessor. Läuft er lange bei 100 %, ist die Website langsam oder etwas hängt.
- Statusprüfung (status check)
- In EC2 ein automatischer Test, den AWS jede Minute durchführt, um zu sehen, ob die Maschine antwortet. Schlägt er fehl, ist die Maschine ausgefallen oder hängt.
- CloudWatch
- Der AWS-Dienst, der die Metriken speichert und die Alarme von EC2 und den übrigen Diensten verwaltet.
- SNS
- Simple Notification Service, der Benachrichtigungsdienst von Amazon: Er empfängt die Nachricht eines Alarms und schickt sie an alle Abonnenten, zum Beispiel an Ihre E-Mail.
- SNS-Thema
- Der „Kanal", an den die Benachrichtigungen gesendet werden und den Sie mit Ihrer E-Mail-Adresse abonnieren.
Schritt für Schritt
Lightsail: Öffnen Sie die Metriken der Maschine
Klicken Sie in der Lightsail-Konsole auf die Maschine und dann auf die Registerkarte Metriken. Sie sehen Diagramme zu CPU, Netzwerk und Statusprüfungen. Unter jedem Diagramm gibt es einen Link Alarm hinzufügen.
Lightsail: Erstellen Sie den Alarm „antwortet nicht"
Klicken Sie im Diagramm Fehlgeschlagene Statusprüfungen auf Alarm hinzufügen. Bedingung: größer oder gleich 1 während 2 Zeiträumen von 5 Minuten (so vermeiden Sie eine Meldung wegen eines einminütigen Aussetzers). Aktivieren Sie unter Benachrichtigungen die Option E-Mail und geben Sie Ihre Adresse ein; beim ersten Mal schickt Lightsail Ihnen eine Bestätigungs-E-Mail, die Sie annehmen müssen. In manchen Regionen sind auf Wunsch auch SMS möglich. Speichern.
Lightsail: Erstellen Sie den CPU-Alarm
Im Diagramm CPU-Auslastung, Alarm hinzufügen. Bedingung: größer als 90 % während 3 Zeiträumen von 5 Minuten, also eine Viertelstunde am Limit. Dieselbe E-Mail. Wenn Ihre Maschine zu den kleinen gehört, sehen Sie im Diagramm auch den „Burst"-Bereich: Kleine Maschinen dürfen eine Weile auf 100 % gehen, aber nicht dauerhaft.
Optional und sehr nützlich: Auf derselben Registerkarte meldet der Alarm für hohen ausgehenden Netzwerkverkehr, dass die Website viel mehr Besuch als üblich bekommt oder dass etwas Daten sendet, das es nicht sollte.
EC2: Erstellen Sie den Benachrichtigungskanal (SNS-Thema)
Für EC2 braucht es zuerst den „Kanal". Öffnen Sie den Dienst SNS, Themen, Thema erstellen, Typ Standard, Name
avisos-servidores. Innerhalb des Themas Abonnement erstellen, Protokoll E-Mail, Ihre Adresse. Sie erhalten eine E-Mail mit einem Bestätigungslink: Klicken Sie darauf. Solange das Abonnement nicht „Bestätigt" ist, bekommen Sie nichts. Sie können mehrere Adressen hinzufügen.EC2: Erstellen Sie die beiden Alarme von der Maschine aus
Wählen Sie in der EC2-Konsole die Maschine, Registerkarte Überwachung, Schaltfläche Alarm erstellen (oder Aktionen, Überwachen und Fehlerbehebung, CloudWatch-Alarme verwalten). Erster Alarm: Metrik Status check failed, Bedingung größer oder gleich 1 während 2 Zeiträumen von 5 Minuten, Benachrichtigung an das Thema
avisos-servidores. Wenn AWS die Maschine bei fehlgeschlagener Statusprüfung von allein neu starten soll, aktivieren Sie die Aktion „Neustart": Für eine Website ist das meist ohnehin das, was Sie wollen.Zweiter Alarm: Metrik CPUUtilization, größer als 90 % während 3 Zeiträumen von 5 Minuten, dieselbe Benachrichtigung. Wiederholen Sie das für jede Maschine, die Ihnen wichtig ist.
Testen Sie, ob die Meldung ankommt
Warten Sie nicht auf den Tag des Problems. Öffnen Sie in CloudWatch den Alarm und nutzen Sie Aktionen, Alarmstatus festlegen, um ihn kurz auszulösen: Die E-Mail muss ankommen. In Lightsail stoppen Sie die Maschine ein paar Minuten über die Konsole (wenn Sie sich das leisten können) und prüfen, dass gemeldet wird. Danach alles wieder so herstellen, wie es war.
Was schiefgehen kann
Es kommt keine E-Mail an
Das Abonnement ist nicht bestätigt oder die Bestätigungs-E-Mail ist im Spam gelandet. In SNS muss das Abonnement „Bestätigt" anzeigen. In Lightsail muss der E-Mail-Kontakt auf der Registerkarte Metriken als verifiziert erscheinen.
Ich werde ständig benachrichtigt
Die Schwellenwerte sind zu eng. Erhöhen Sie den Prozentsatz oder verlängern Sie die Zeit (zum Beispiel 90 % während 30 Minuten). Eine Meldung, die ignoriert wird, ist schlimmer als keine: Justieren Sie, bis jede Meldung etwas bedeutet.
Die Maschine ist ausgefallen und hat nicht gemeldet
Wenn die Maschine über die Konsole gestoppt wurde (jemand hat auf Stoppen geklickt), zählt die Statusprüfung nicht als Fehler: Die Maschine ist gestoppt, nicht kaputt. Dafür braucht es eine separate Überwachung, die den tatsächlichen Zustand mit dem vergleicht, den sie haben sollte.
Ich möchte die Meldung auf dem Handy, nicht per E-Mail
In SNS können Sie zusätzlich zur E-Mail eine Telefonnummer abonnieren (SMS, kostenpflichtig und nicht in allen Regionen) oder eine eigene Anwendung. Und es gibt Bereitschaftsdienste, die sich mit SNS verbinden. Für den Anfang reicht die E-Mail auf dem Handy.
In Simplio
In Simplio müssen Sie keine Alarme einzeln anlegen: Sie markieren bei jeder Maschine, was Sie überwachen wollen (unerwarteter Stopp, Prozessor am Limit, Festplatte voll, Sicherung nicht erstellt), und Simplio prüft alle Ihre AWS-Konten alle paar Minuten und benachrichtigt Sie per E-Mail und in der Anwendung, einmal beim Auftreten und einmal bei der Behebung. Jede Person in Ihrem Team wählt, welche Benachrichtigungen sie erhält. Und da Simplio weiß, ob eine Maschine eingeschaltet sein sollte, meldet es auch, wenn jemand sie über die Konsole stoppt.
Dasselbe, in AWS und in Simplio
| In der AWS-Konsole | In Simplio | |
|---|---|---|
| Meldung bei ausgefallener Maschine oder hoher CPU | Lightsail: 2 Alarme pro Maschine. EC2: SNS-Thema, Abonnement, Bestätigung, 2 Alarme pro Maschine: 6 Schritte, 15 Minuten pro Maschine | Markieren, was bei jeder Maschine überwacht wird: 2 Kontrollkästchen |
| Wenn jemand die Maschine über die Konsole stoppt | Die Alarme erkennen es nicht | Simplio weiß, ob sie eingeschaltet sein sollte, und meldet es |
| Mehrere Konten und Regionen | In jedem einzeln wiederholen | Alle Konten von derselben Stelle aus überwacht, jede Person wählt ihre Benachrichtigungen |