Zum Inhalt springen

API-Sicherung und -Wiederherstellung von Observability

Zuletzt aktualisiert am

Es ist möglich, Ihre Konfigurationen (wie Alert-Konfigurationen, Alert-Regeln, Scrape-Konfigurationen) sowie Grafana-Dashboards zu sichern und wiederherzustellen.

Dieses Dokument beschreibt, wie Sie die Observability-API mit dem Wrapper stackit curl aufrufen. Selbstverständlich können Sie auch andere geeignete Tools oder Programmiersprachen verwenden, um mit der Observability-API zu kommunizieren.

Eine vollständige Liste aller verfügbaren Endpunkte, Parameter und Schemas finden Sie in der STACKIT Observability Backup API Spezifikation.

Sie können Ihre aktuellen Aufbewahrungsrichtlinien für Sicherungen (Backup Retentions) abrufen, indem Sie Ihre Projekt-ID und Instanz-ID angeben.

Befehl:

Terminal-Fenster
stackit curl -X GET "https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backup-retentions" \
-H "Content-Type: application/json"

Antwort:

{
"grafanaBackupRetention": "14d",
"alertConfigBackupRetention": "14d",
"alertRulesBackupRetention": "14d",
"scrapeConfigBackupRetention": "14d",
"message": "Successfully got backup retention"
}

Sie können alle aktiven Sicherungspläne für ein bestimmtes Ziel auflisten. Der Eingabeparameter backupTarget akzeptiert die folgenden Werte: alertConfig, alertRules, scrapeConfig oder grafana.

Befehl:

Terminal-Fenster
BACKUP_TARGET="alertConfig"
stackit curl -X GET "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backup-schedules?backupTarget=$BACKUP_TARGET](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backup-schedules?backupTarget=$BACKUP_TARGET)" \
-H "Content-Type: application/json"

Antwort:

{
"alertConfigBackupSchedules": [
{
"schedule": "0 * * * *",
"scheduleId": "dc2ca261-de00-4de8-a25d-68607a56c28b"
}
],
"message": "Successfully got backup schedules"
}

Um Ihre Sicherungen zu automatisieren, erstellen Sie einen neuen Backup-Plan mithilfe der cron-Syntax. Der Parameter backupTarget akzeptiert alertConfig, alertRules, scrapeConfig oder grafana.

Befehl:

Terminal-Fenster
BACKUP_TARGET="alertConfig"
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backup-schedules?backupTarget=$BACKUP_TARGET](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backup-schedules?backupTarget=$BACKUP_TARGET)" \
-H "Content-Type: application/json" \
--data '{"schedule": "0 * * * *"}'

Antwort:

{
"message": "Backup schedule will be created"
}

Um alle verfügbaren Backups anzuzeigen, die wiederhergestellt werden können, können Sie eine Liste historischer Backup-Zeitstempel anfordern. backupTarget akzeptiert alertConfig, alertRules, scrapeConfig oder grafana.

Befehl:

Terminal-Fenster
BACKUP_TARGET="alertConfig"
stackit curl -X GET "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backups?backupTarget=$BACKUP_TARGET](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backups?backupTarget=$BACKUP_TARGET)" \
-H "Content-Type: application/json"

Antwort:

{
"alertConfigBackups": ["01-12-2021T00:00:18", "01-12-2021T00:05:12", "30-11-2021T23:55:13"],
"message": "Successfully got backups"
}

Wenn Sie größere Änderungen vornehmen möchten, können Sie eine sofortige manuelle Sicherung auslösen. backupTarget akzeptiert alertConfig, alertRules, scrapeConfig oder grafana.

Befehl:

Terminal-Fenster
BACKUP_TARGET="alertConfig"
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backups?backupTarget=$BACKUP_TARGET](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backups?backupTarget=$BACKUP_TARGET)" \
-H "Content-Type: application/json"

Antwort:

{
"message": "Backup will be created"
}

Um einen älteren Zustand wiederherzustellen, geben Sie das genaue Sicherungsdatum in der URL an. restoreTarget akzeptiert alertConfig, alertRules, scrapeConfig oder grafana.

Befehl:

Terminal-Fenster
BACKUP_DATE="30-11-2021T19:35:16"
RESTORE_TARGET="alertConfig"
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backup-restores/$BACKUP_DATE?restoreTarget=$RESTORE_TARGET](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/backup-restores/$BACKUP_DATE?restoreTarget=$RESTORE_TARGET)" \
-H "Content-Type: application/json"

Antwort:

{
"message": "Restore will be proceeded"
}