SaC - Wie man Statusseiten als Code mit Terraform erstellt
Statusseiten sind eine clevere Lösung, um alle Ihre Dienste zu bündeln und den Status von ihnen auf einen Blick zu sehen. Bei ilert sind wir diesen Schritt noch weiter gegangen: Warum nicht Ihre Statusseite als Code mit Terraform erstellen? Wir möchten Ihnen zeigen, wie wir dies möglich machen und wie Sie es für Ihre eigene Infrastruktur einrichten können - eine echte SaC-Lösung.
HashiCorps Terraform wird weit verbreitet verwendet, um Infrastruktur als Code bereitzustellen und zu verwalten. In unserem vorherigen Blogpost zu Terraform haben wir alle Grundlagen für die Einrichtung des ilert Terraform Providers und einer Alarminfrastruktur behandelt. Wenn Sie weitere Informationen zur Einrichtung benötigen oder wenn Sie stecken bleiben, finden Sie dort weitere Informationen. Wir werden jetzt den gesamten Prozess durchgehen: von der Erstellung Ihrer ersten Alarmquelle bis hin zur Bereitstellung einer Statusseite mit Automatisierungsregeln über Code mit Terraform.
Anforderungen
Sie benötigen:
- einen Mac / Unix-Rechner
- ein ilert-Konto (Melden Sie sich jetzt an, es ist kostenlos!)
Einrichtung
Eine kurze Übersicht darüber, was Sie einrichten müssen:
- Ihr ilert-Konto
- eine lokale Installation von Terraform
Zusätzlich müssen Sie das Beispiel-Repository von GitHub klonen.
Sie müssen auch Ihre ilert-Anmeldeinformationen entweder als Variablen in terraform apply bereitstellen oder sie in einer separaten Datei mit dem Namen terraform.tfvars speichern. Erstellen Sie eine Datei im Stammverzeichnis des Repositorys mit dem Namen "terraform.tfvars", und Terraform erkennt und setzt diese Variablen automatisch bei jedem apply.
Um Ihre Einrichtung abzuschließen, müssen Sie Terraform initialisieren, um es in Ihrem Verzeichnis zu verwenden. Führen Sie einfach terraform init aus, und die Initialisierung sollte nach der Installation des Providers abgeschlossen sein.
ilert-Infrastruktur
Bevor Sie irgendeinen Code anwenden, hier eine Übersicht über die Ressourcen und deren Beziehungen, die Sie in ilert erstellen werden.
In Kürze: Wir senden ein Ereignis an eine Alarmquelle, das einen Alarm auslöst. Eine Automatisierungsregel verbindet die Alarmquelle und einen Dienst, indem sie den Status der Dienste ändert, wenn die Alarmquelle einen Alarm auslöst. Daher überwacht die Statusseite bei einer Änderung des Dienststatus dies und zeigt den aktuellen Status des Dienstes an.
Erstellen einer Statusseite
Einrichten
Zuerst müssen Sie eine Alarmquelle konfigurieren und eine Eskalationsrichtlinie bereitstellen.
Creating
Erstellen
Um eine Statusseite zu erstellen, benötigen Sie auch einen Dienst, der in der Statusseite enthalten sein wird.
Hinweis: Eine Subdomain muss eindeutig sein. Sie müssen sie möglicherweise in einen anderen passenden Namen ändern
Automatisieren einer Statusseite
Das Auslösen eines Alarms oder das manuelle Einstellen des Dienststatus ist nicht wünschenswert bei der 24/7-Überwachung. Eine Automatisierungsregel passt perfekt für diese Aufgabe: Sie verbindet die Alarmquelle mit unserem Dienst und hilft uns, den Status unseres Dienstes automatisch bei einem eingehenden Alarm zu ändern.
Wenn Sie jetzt terraform apply ausführen, sollten Sie eine CLI-Ausgabe wie diese sehen:
Sie haben erfolgreich eine Alarmquelle und eine Eskalationsrichtlinie konfiguriert und auch eine Statusseite mit einem Dienst erstellt, während Sie über eine Automatisierungsregel automatisieren.
Starten Sie Ihren Browser und besuchen Sie example_statuspage.ilert.io, um sich die soeben erstellte Seite anzusehen :)
Starten der Automatisierung
Um alles zu testen, müssen Sie einen Alarm auslösen, das heißt, ein Ereignis an den iLert-Ereignisendpunkt senden. Dafür müssen Sie Ihren Integrations-Schlüssel der Alarmquelle in "apiKey" in "event.json" eintragen.
Dieser Schlüssel kann in der Terraform-Statusdatei "terraform.tfstate" oder im iLert-UI unter der Alarmquelle gefunden werden
Senden Sie nun das Ereignis, um einen Alarm auszulösen:
Ein Alarm wurde erstellt, die Automatisierungsregel hat dies erkannt und den Status unseres Dienstes auf 'Degraded' gesetzt, daher zeigt die Statusseite den Ausfall an.
Zerstören der erstellten Infrastruktur
Durch Verwendung von "terraform destroy" werden alle erstellten Ressourcen zerstört und aus Ihrem ilert-Konto entfernt.
Hinweis: Wenn Sie den Alarm, der von der Alarmquelle ausgelöst wurde, nicht behoben haben, können Sie ihn nicht löschen. Bitte lösen Sie den Alarm zuerst.
Überwachbarkeit kann einfach sein
Das Erstellen Ihrer Statusseite als Code mit dem ilert Terraform Provider vereinfacht den Prozess des Aufbaus einer konsistenten Überwachbarkeit für Ihre eigenen Dienste erheblich. Eine ilert-Statusseite gibt Ihnen die wichtigen Informationen auf den ersten Blick und bietet Details, wenn benötigt.
Wenn Sie mehr über ilert-Statusseiten erfahren möchten, werfen Sie einen Blick auf unsere Dokumentation.
Ein vollständig ausführbares Beispiel des gezeigten Codes finden Sie auf GitHub in unserem entsprechenden Beispiel-Repository.