Monitoring und Statuspages als Code
Der LIVCK-Provider für Terraform und OpenTofu. Services, Statuspages, Komponenten, Diagramme, Wartungen, eigene Domains und Tags im selben Repository wie deine Infrastruktur. Aktuelle Version 0.3.0.
Ein Service und seine Statuspage
Das ist ein Auszug aus unserem Beispiel-Repository. Nach dem ersten apply laufen drei überwachte Services, gruppiert auf deiner Statuspage.
terraform {
required_providers {
livck = {
source = "livck/livck" # OpenTofu: "registry.terraform.io/livck/livck"
version = "~> 0.3"
}
}
}
provider "livck" {} # token from LIVCK_API_TOKENresource "livck_service" "website" {
name = "Website"
check_type = "http"
target = "https://www.example.com"
settings = {
interval_seconds = 60
assigned_probes = ["ffm", "hel"]
}
}
resource "livck_statuspage" "main" {
name = "Acme Status"
primary_color = "#0f172a"
show_incident_history = true
subscriber_channels = ["email"]
}
resource "livck_statuspage_component" "website" {
statuspage_id = livck_statuspage.main.id
name = "Website"
service_id = livck_service.website.id
display_order = 10
}Warum Monitoring als Code?
Klicken in der Konsole ist schnell. Code ist nachvollziehbar, wiederholbar und lässt sich prüfen, bevor er wirkt.
Review vor der Änderung
Eine neue Komponente auf der Statuspage oder ein anderes Intervall geht als Pull Request durchs Team. terraform plan zeigt vorher genau, was sich ändert.
Viele Kunden, ein Muster
Agenturen und Hoster legen für jeden Kunden denselben Satz aus Services, Statuspage und Komponenten an. Eine Schleife mit for_each statt hundert gleicher Klicks.
Neuer Dienst, gleich überwacht
Kommt ein Dienst in deiner Infrastruktur dazu, legt dieselbe Pipeline seinen Monitor und seinen Platz auf der Statuspage an. Niemand muss daran denken.
Was verwaltet der Provider?
Diese Liste kommt direkt aus der Terraform Registry. Sie zeigt, was du heute wirklich installieren kannst.
Ressourcen
livck_custom_domain- Eine eigene Domain für eine Statuspage, samt DNS-Prüfung.
livck_maintenance- Ein geplantes Wartungsfenster für einen oder mehrere Services.
livck_service- Ein Monitor mit Check-Typ, Ziel, Intervall, Standorten und Bedingungen.
livck_statuspage- Eine Statuspage mit Name, Farbe, Logo, Abonnenten-Kanälen und Verlauf.
livck_statuspage_component- Eine Komponente oder Gruppe auf der Statuspage, mit oder ohne Service dahinter.
livck_statuspage_metric- Ein Diagramm auf der Statuspage, zum Beispiel für Antwortzeiten.
livck_statuspage_metric_series- Eine Linie in einem Diagramm. Mehrere Linien teilen sich ein Diagramm.
livck_tag- Ein Tag zum Ordnen von Services und Gruppen.
Data Sources
livck_check_types- Alle Check-Typen mit ihren Feldern und erlaubten Bedingungen.
livck_probes- Die aktiven Monitoring-Standorte mit ihren Kürzeln für assigned_probes.
livck_statuspage- Eine bestehende Statuspage, die du lesen, aber nicht verwalten willst.
In vier Schritten zum ersten apply
- 1
API-Token anlegen
In der Konsole unter Einstellungen, API-Tokens. Gib dem Token nur die Rechte, die deine Konfiguration braucht. Die API ist ab dem Team-Plan enthalten.
- 2
Provider eintragen
Quelle livck/livck in required_providers. Den Token liest der Provider aus der Umgebungsvariable LIVCK_API_TOKEN, er gehört nie ins Repository.
- 3
init und apply
terraform init lädt den Provider, terraform apply legt alles an. Mit OpenTofu heißen die Befehle tofu init und tofu apply.
- 4
Bestehendes übernehmen
Was du schon in der Konsole angelegt hast, holst du per import in deinen State. So musst du nichts neu bauen.
import {
to = livck_service.website
id = "V1StGXR8Z5jdHi6BmyTq2"
}Ab Terraform 1.5 und in OpenTofu holt ein import-Block einen Service, den du schon in der Konsole angelegt hast, beim nächsten apply in deinen State.
Auch mit OpenTofu
Der Provider läuft mit Terraform ab Version 1.5 und mit OpenTofu, getestet mit OpenTofu 1.13.2. In der OpenTofu-Registry steht er noch nicht. Trag deshalb die volle Adresse registry.terraform.io/livck/livck als Quelle ein. Dann lädt OpenTofu ihn direkt aus der Terraform Registry.
Was kann der Provider noch nicht?
Vorfälle, Rufbereitschaft und Alarmregeln verwaltet der Provider noch nicht. Vorfälle sind ohnehin Momente und kein Zustand. Für sie nimmst du die API oder den MCP-Server.
Häufige Fragen zum Terraform-Provider
Ja. Weil der Provider noch nicht in der OpenTofu-Registry steht, trägst du als Quelle die volle Adresse registry.terraform.io/livck/livck ein. OpenTofu lädt ihn dann direkt aus der Terraform Registry. Getestet ist der Provider mit OpenTofu 1.13.2. Die Befehle heißen dort tofu init und tofu apply.
Den Team- oder Business-Tarif, weil der Provider über die REST-API arbeitet und die API ab Team enthalten ist. Team kostet 49 € netto im Monat. Der Provider selbst ist kostenlos und quelloffen unter der Mozilla Public License 2.0.
Terraform ab Version 1.5 oder OpenTofu. Ab 1.5 kannst du bestehende Objekte auch per import-Block übernehmen. Die aktuelle Version des Providers ist 0.3.0. Die Liste der Ressourcen auf dieser Seite kommt direkt aus der Terraform Registry.
Ja. Was du schon in der Konsole angelegt hast, holst du per terraform import oder mit einem import-Block in deinen State. Danach verwaltet der Provider das Objekt, ohne es neu anzulegen. So überführst du eine bestehende Organisation Schritt für Schritt in Code.
Über die Umgebungsvariable LIVCK_API_TOKEN. So landet der Token nie im Repository. Lege in der Konsole einen eigenen Token für Terraform an und gib ihm nur die Rechte, die deine Konfiguration braucht.
Dein erstes apply
Konto anlegen, Team-Plan wählen, Token erstellen. Das Beispiel-Repository ist in wenigen Minuten grün.