Frameworks zur Netzwerküberwachung finden sich in vielen Unternehmen, oft kombinieren sie agentenloses und agentenbasiertes Monitoring. Allerdings tendieren agentless-Lösungen dazu, relativ ineffizient zu sein, weil sie auf Abfragen angewiesen sind, um Zustandsänderungen zu bestimmen.

Evaluieren Unternehmen ohnehin gerade, ihre Workloads nach Azure zu verschieben, können sie in der Cloud sehr einfach eine ereignisgesteuerte Architektur ausprobieren. Einer der Kernpunkte einer Event-gesteuerten Architektur besteht darin, die Abhängigkeiten, die vorhandene Dienste möglicherweise untereinander besitzen, umzukehren.

In Azure können Unternehmen beispielsweise den Dienst „Event Grid“ verwenden. Hierbei handelt es sich um einen vollständig verwalteten Dienst, der das Routing von Ereignissen mithilfe eines Publisher-/Subscriber-Modells unterstützt. Im Kern ist Event Grid ein Event-Routing-Dienst, der das Routing und die Zustellung von Ereignissen von zahlreichen Quellen und Abonnenten verwaltet.

Wie Event Grid arbeitet

Ein Ereignis wird von einem Herausgeber – wie z. B. vom Container-Dienst (Blob) in einem Storage-Account –, einer Azure-Ressourcengruppe oder sogar einem Azure-Abonnement erstellt. Sobald Ereignisse auftreten, werden sie an einem Endpunkt veröffentlicht, der schlicht „Thema“ (Topic) genannt und der vom Event Grid-Dienst verwaltet wird, um alle eingehenden Nachrichten zu verarbeiten.

Ereignisherausgeber sind nicht auf Dienste in Azure beschränkt. Es ist möglich Ereignisse zu verwenden, die von benutzerdefinierten Anwendungen oder Systemen stammen, die überall ausgeführt werden können. Dazu gehören Anwendungen, die lokal, in einem Rechenzentrum oder sogar in anderen Clouds gehostet werden, wenn sie eine HTTP-Anforderung an den Event Grid-Dienst senden können.

Die verfügbaren Ereignishandler umfassen zahlreiche Azure-Dienste, einschließlich serverloser Technologien wie Functions, Logic Apps oder Azure Automation. Dabei werden die Handler bei Event Grid durch das Erstellen eines Ereignisabonnement registriert. Ist der Ereignishandler-Endpunkt öffentlich zugänglich und durch TLS verschlüsselt, können Nachrichten von Event Grid auch per Push an Diesen gesendet werden.

Im Gegensatz zu vielen anderen Azure-Diensten muss bei Event Grid kein Namespace bereitgestellt oder verwaltet werden, weil Topics für native Azure-Ressourcen integriert und für Benutzer vollständig transparent sind. Zudem lassen sich benutzerdefinierte Themen ad-hoc bereitstellen und existieren dann in eine Ressourcengruppe. Event-Abonnements werden einfach einem Thema zugeordnet.

Dieses Modell vereinfacht die Verwaltung von Themen als Abonnements und macht Event Grid mandantenfähig, was eine massive Skalierung ermöglicht. Azure Event Grid ist unabhängig von jeder Sprache oder Plattform. Obwohl es nativ in Azure-Dienste integriert ist, kann es genauso einfach von Allem genutzt werden, was das HTTP-Protokoll unterstützt.

Workflow mit Logic Apps

Wir demonstrieren im Folgenden eine Integration mit Azure Logic Apps um mit Hilfe von Event Grid zu erkennen, wenn sich der Status einer designierten Azure-VM ändert, woraufhin automatisch eine E-Mail-Benachrichtigung als Reaktion auf das Ereignis generiert werden soll. Dazu erstellen wir zunächst eine Azure VM mit Windows Server 2019 in einer neuen Ressourcengruppe. Danach müssen wir für die später zu erstellen Logic App einen Service-Prinzipal erstellen, der mit einer neuen App Registrierung im Azure AD assoziiert wird.

Das Registrieren eine App im Azure AD.

Das Registrieren eine App im Azure AD. (Bild: Drilling / Microsoft)Am einfachsten legen Sie dazu im Azure Portal unter „App-Registrierungen“ eine neue App-Registrierung an. Wie das funktioniert, haben wir bereits in unserem Artikel zur Azure Identity Platform gezeigt. Bei der Anwendungs-URL verwenden Sie als Plattform „Web“ und einer URL Ihrer Wahl. Das Ergebnis könnte z. B so aussehen, wie im vorangestellten Bild.

 

 

Eine neue App Registrierung im Azure AD.
Eine neue App Registrierung im Azure AD. (Bild: Drilling / Microsoft)

Legen Sie dann unter „Zertifikate & Geheimnisse“ mit „+Neue geheimer Clientschlüssel“ ein neues „Anwendungskennwort“ Ihrer Wahl an. Das Client-Geheimnis wird zum Anfordern eines Tokens vom Azure AD benötigt und besitzt eine begrenzte Gültigkeitsdauer, die sich je nach Sicherheitsstufe anpassen lässt.

Dem Service-Prinzipal lässt sich eine RBAC-Rolle zuweisen.
Hinzufügen des Client-Schlüssels. (Bild: Drilling / Microsoft).

Wechseln Sie nun in die Ressourcengruppe mit ihrer Azure-VM. Die neu registrierte App hat einen Service-Prinzipal im Azure AD bekommen; diesem erzeugten Service-Prinzipal fügen wir die Leser-Rolle auf dieser Ressourcengruppe hinzu.

Dem Service-Prinzipal lässt sich eine RBAC-Rolle zuweisen.
Dem Service-Prinzipal lässt sich eine RBAC-Rolle zuweisen. (Bild: Drilling / Microsoft)

Die Logic App

Anschließend erstellen Sie eine neue Logic App in der gleichen Ressourcengruppe im Logic-App-Designer. Suchen Sie im Azure Portal nach „Logic-Apps“ klicken auf „Hinzufügen“, wählen wie üblich Abonnement und Ressourcengruppe aus, vergeben einen Namen für die App, wählen als Plan-Typ „Verbrauch“ und klicken auf „Überprüfen und erstellen“.

Das Erstellen einer Logic App mit Verbrauchsplan.
Das Erstellen einer Logic App mit Verbrauchsplan. (Bild: Drilling / Microsoft)

Wählen Sie dann im „Designer für Logik-Apps“ den Eintrag „Leere Logik-App“. Suchen Sie dann bei „Connectors und Trigger durchsuchen“ nach Event Grid und wählen aus den Suchergebnissen „Azure Event Grid“. Der gewählte Auslöser hört auf den Namen „Bei Eintritt eines Ressourcenereignisses“.

Der Logic-App-Designer.
Der Logic-App-Designer. (Bild: Drilling / Microsoft)

Wenn Sie darauf klicken müssen Sie sich bei Azure „Anmelden“. Hier wählen Sie zunächst den Mandanten und klicken dann links unten auf „Verbindung mit Dienstprinzipal herstellen“. Hier benötigen Sie dann neben einem Verbindungsnamen die vorhin skizzierten Meta-Daten Ihrer App-Registrierung also Client-ID, die Clientgeheimnis-ID (Anwendungskennwort) und den Mandanten-ID.

Hier weiterlesen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.