Zum Inhalt springen

Alertmanager-Receiver per Observability-API verwalten

Zuletzt aktualisiert am

Sie können die folgenden Receiver konfigurieren:

  • Email
  • Webhook (Google Chat, Microsoft Teams oder andere)
  • Opsgenie

Um einen Email-Receiver zu erstellen, führen Sie einen POST-Request an den Receiver-Endpunkt aus. Mit dem folgenden HTTP-Nachrichtentext verfügen Sie über die Minimalkonfiguration, um einen neuen Email-Receiver hinzuzufügen:

Terminal-Fenster
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers)" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
--data '{"name":"MyEmailReceiver","emailConfigs":[{"to":"emailTo@your-company.com"}]}'

Standardmäßig sendet Observability alle Nachrichten von einer STACKIT Observability-E-Mail-Adresse. Optional können Sie Ihre eigene E-Mail-Adresse als Absenderadresse konfigurieren. In diesem Fall müssen Sie SMTP-Zugangsdaten in Ihrem Request-Body angeben:

{
"name": "MyEmailReceiver",
"emailConfigs": [
{
"to": "emailTo@your-company.com",
"from": "observability-alerting@your-company.com",
"smarthost": "your-company.com",
"authUsername": "username",
"authPassword": "password",
"authIdentity": "yourIdentity"
}
]
}

Weitere Informationen zur API und zum Request-Body finden Sie in der API-Dokumentation.

Erstellen einer Route unter Verwendung des Receivers

Abschnitt betitelt „Erstellen einer Route unter Verwendung des Receivers“

Sie müssen außerdem eine Alert-Config-Route für den soeben erstellten Receiver erstellen. Stellen Sie sicher, dass der Name unter "receiver" exakt mit dem oben definierten Namen übereinstimmt.

Terminal-Fenster
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/routes](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/routes)" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
--data '{"receiver":"MyEmailReceiver","groupBy":["LatencyHigh"],"groupWait":"30s","groupInterval":"5m","repeatInterval":"4h"}'

Weitere Informationen zum erwarteten Request-Body finden Sie in der API-Dokumentation.

Sie können jeden kompatiblen Webhook verwenden. Um einen Webhook-Receiver zu erstellen, führen Sie einen POST-Request an den Receiver-Endpunkt aus. Unten finden Sie ein Beispiel für einen vollständigen Befehl für einen benutzerdefinierten Webhook:

Terminal-Fenster
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers)" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
--data '{"name":"MyWebhookReceiver","webHookConfigs":[{"url":"[https://your-webhook-url.com](https://your-webhook-url.com)"}]}'

Falls Sie Google Chat oder Microsoft Teams verwenden, ersetzen Sie die JSON-Daten im --data-Parameter durch eine der folgenden Strukturen (beachten Sie die spezifischen Parameter für die jeweilige Plattform). Weitere Informationen finden Sie in der API-Dokumentation.

{
"name": "MyGoogleChatWebhookReceiver",
"webHookConfigs": [
{
"googleChat": true,
"url": "[https://chat.googleapis.com/v1/spaces/xxx/messages?key=xxx&token=xxx](https://chat.googleapis.com/v1/spaces/xxx/messages?key=xxx&token=xxx)"
}
]
}
{
"name": "MyMsTeamsWebhookReceiver",
"webHookConfigs": [
{
"msTeams": true,
"url": "[https://your-teams-webhook-url.com](https://your-teams-webhook-url.com)"
}
]
}

Erstellen einer Route unter Verwendung des Receivers

Abschnitt betitelt „Erstellen einer Route unter Verwendung des Receivers“

Genau wie beim Email-Receiver müssen Sie eine Alert-Config-Route für den soeben erstellten Webhook-Receiver erstellen. Stellen Sie sicher, dass Sie exakt denselben Namen für den Receiver verwenden.

Terminal-Fenster
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/routes](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/routes)" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
--data '{"receiver":"MyReceiverName","groupBy":["LatencyHigh"],"groupWait":"30s","groupInterval":"5m","repeatInterval":"4h"}'

Sie können auch Ihr eigenes Opsgenie konfigurieren. Mit dem folgenden HTTP-Nachrichtentext verfügen Sie über die Minimalkonfiguration, um einen neuen Opsgenie-Receiver hinzuzufügen:

Terminal-Fenster
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers)" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
--data '{"name":"MyOpsGenieReceiver","opsgenieConfigs":[{"apiKey":"yourApiKey","apiUrl":"yourApiURL","tags":"TagsYouWantToHave","httpConfig":{"proxyUrl":"yourProxyServerURL"}}]}'

Weitere Informationen zur API und zum Request-Body finden Sie in der API-Dokumentation.

Erstellen einer Route unter Verwendung des Receivers

Abschnitt betitelt „Erstellen einer Route unter Verwendung des Receivers“
Terminal-Fenster
stackit curl -X POST "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/routes](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/routes)" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
--data '{"receiver":"MyOpsGenieReceiver","groupBy":["LatencyHigh"],"groupWait":"30s","groupInterval":"5m","repeatInterval":"4h"}'

Eine grundlegende Syntaxprüfung wird durch die Observability-API bereitgestellt.

Grafana visualisiert ausgelöste Alerts:

  • Melden Sie sich bei Grafana an.
  • Wählen Sie die Funktion Explore.
  • Wählen Sie die Datenquelle Thanos.
  • Wählen Sie die Metrik ALERTS.
  • Visualisieren Sie die Metrik durch Klicken auf Run query.

Wenn Sie keine E-Mails erhalten, prüfen Sie Ihren SPAM-Ordner. Manchmal filtern Mail-Agents Alert-E-Mails, da diese Hyperlinks enthalten. Zusätzlich sollten Sie prüfen, ob Sie eine globale Konfiguration für alle Email-Receiver verwenden. Falls ja, überprüfen Sie den Abschnitt global der Antwort vom Endpunkt GET Alertconfigs. Diese sollte wie das Beispiel einer Antwort im nächsten Kapitel aussehen.

Standardmäßig sendet Observability alle E-Mails von einer STACKIT Observability-Adresse. Sie können optional Ihre eigene E-Mail-Adresse als Absenderadresse konfigurieren. In diesem Fall müssen Sie SMTP-Zugangsdaten angeben. Sie können Ihre individuelle E-Mail-Absenderadresse entweder global oder pro Email-Receiver konfigurieren. Um sie global festzulegen, verwenden Sie den Abschnitt global des Payload, der an den Endpunkt PUT Alertconfigs gesendet wird.

{
"route": {
"receiver": "email-example-receiver",
"groupWait": "30s",
"groupInterval": "5m",
"repeatInterval": "4h"
},
"receivers": [
{
"name": "email-example-receiver",
"emailConfigs": [
{
"to": "your-email@example.com",
"sendResolved": true
}
]
}
]
}

Anschließend können Sie die Konfiguration über den Endpunkt GET Alertconfigs prüfen. Sie sollten einen Abschnitt global wie unten gezeigt sehen. Mit ***** maskierte Attribute weisen darauf hin, dass unsere Zugangsdaten zum Senden von E-Mails verwendet werden.

"global": {
"resolveTimeout": "5m",
"smtpFrom": "our-email@example.com",
"smtpSmarthost": "*****",
"smtpAuthUsername": "*****",
"smtpAuthPassword": "*****",
"smtpAuthIdentity": "*****"
}

Sie können die API-Dokumentation konsultieren, um zu erfahren, wie Sie einen bestehenden Empfänger konfigurieren und aktualisieren.

Um alle Ihre Receiver-Konfigurationen auszulesen, führen Sie einen HTTP-GET-Request mittels stackit curl aus:

Terminal-Fenster
stackit curl -X GET "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers)" \
-H "accept: application/json"

Weitere Informationen hierzu finden Sie in der API-Dokumentation.

Um eine bestimmte Receiver-Konfiguration zu löschen, führen Sie einen HTTP-DELETE-Request an den genauen Receiver-Endpunkt aus (ersetzen Sie RECEIVER_NAME durch Ihren spezifischen Receiver):

Terminal-Fenster
stackit curl -X DELETE "[https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers/$RECEIVER_NAME](https://argus.api.eu01.stackit.cloud/v1/projects/$PROJECT_ID/instances/$INSTANCE_ID/alertconfigs/receivers/$RECEIVER_NAME)" \
-H "accept: application/json"