Der Inside-Out-Sicherheits Blog - Der Inside-Out-Sicherheits Blog

Verstehen und Implementieren von Azure Monitor zur Überwachung von Workloads | Varonis

Geschrieben von Neeraj Kumar | Oct 10, 2021 4:00:00 AM

Sie möchten, dass Ihre geschäftskritischen Produktionsanwendungen stets ohne Probleme und Ausfallzeiten laufen. Um dies zu erreichen, müssen Sie die Log Files im System kontinuierlich analysieren sowie Ihre Anwendung und die davon abhängigen Dienste überwachen, um etwaige Probleme zu erkennen und zu beheben.

Was ist Azure Monitor?

Azure Monitor ist ein Dienst, der Überwachungsprotokolldateien und Diagnoseinformationen sammelt. Nach der Erfassung können Überwachungs- und Diagnosedaten verwendet werden, um den Zustand der Dienste zu visualisieren, analysieren und geeignete Maßnahmen zu ergreifen.

Azure Monitor hilft bei der Diagnose der Ursachen von Fehlern und bei der proaktiven Identifizierung von Problemen, bevor sie tatsächlich auftreten. Dadurch wird die Betriebszeit verbessert.

Dies hilft uns, Einblicke in die Leistung und Verfügbarkeit unserer Anwendungen in Azure sowie der lokalen Ressourcen und Anwendungen zu gewinnen.

Außerdem kann Azure Monitor Ressourcenmetriken sammeln. Mithilfe von Metriken können Sie die Leistung Ihrer Anwendung in Bezug auf die verbrauchten Ressourcen nachvollziehen.

Zum Beispiel die CPU-Auslastung, die Speichernutzung usw. Log Files werden aufgezeichnet, wenn eine Änderung an der Ressource vorgenommen wird. Zum Beispiel, wenn sie geändert oder erstellt werden, wenn es Probleme oder Fehler gibt usw.

Die Funktionen von Azure Monitor

Nachfolgend finden Sie ein Diagramm, das einen Überblick über Azure Monitor und seine Funktionen, Möglichkeiten und Verwendung gibt. Dieses Diagramm ist in zwei Abschnitte unterteilt. Der untere Teil zeigt die Quellen für Azure Monitor. Dabei handelt es sich um Anwendungen, Betriebssysteme, Azure-Ressourcen, Abonnements und Mandanten sowie andere benutzerdefinierte Quellen.

Der obere Teil des Diagramms ist Azure Monitor, wo wir zunächst die Datenspeicher für Metriken und Protokolle haben, und dann werden diese Daten von verschiedenen Funktionen und Diensten genutzt.

Beginnen wir mit dem oberen Teil der Anwendung:

  • Anwendungsdaten: Daten, die sich auf Ihren eigenen Anwendungscode beziehen.
  • Betriebssystemdaten: Daten aus den virtuellen Windows- oder Linux-Maschinen, die Ihre Anwendung hosten.
  • Azure-Ressourcendaten: Daten, die sich auf den Betrieb einer Azure-Ressource beziehen, z. B. eine Web-Anwendung oder ein Load Balancer.
  • Azure-Abonnementdaten: Daten, die sich auf Ihr Abonnement beziehen. Dazu gehören Daten über den Zustand und die Verfügbarkeit von Azure.
  • Azure-Mandatendaten: Daten über Ihre Azure-Dienste auf Organisationsebene, wie z. B. Azure Active Directory.

Unten befindet sich der Azure Monitor, der folgende Funktionen hat:

  • In Logic-Anwendungen integrieren oder die Export-APIs verwenden, um bestimmte Aktionen durchzuführen.
  • Die Daten können mit der Analyse von Metriken oder der Analyse von Log Files analysiert werden, wofür die Kusto Query Language oder KQL verwenden werden kann. Kusto ist eine Abfragesprache, die mit (KQL) abgekürzt wird und nach bestimmten Grundprinzipien entwickelt wurde, wie z. B. einer leicht lesbaren und verständlichen Syntax, einer hohen Leistung durch Skalierung und einem reibungslosen Übergang von einfachen zu komplexen Abfragen.Interessanterweise ist die KQL eine reine Abfragesprache, die Daten verarbeitet und Ergebnisse ausgibt. Sie ist SQL sehr ähnlich und besteht aus einer Abfolge von Anweisungen, wobei die Anweisungen als ein Fluss von Tabellendaten modelliert sind, die von der vorherigen Anweisung zur nächsten Anweisung ausgegeben werden. Diese Anweisungen werden mit einem Pipe-Zeichen (|) verkettet. Wir werden mehr darüber sprechen und es in Aktion sehen, wenn wir mit der Demo arbeiten:
  • Auf kritische Situationen reagieren, indem Sie Alarme senden und Regeln zur automatischen Skalierung festlegen, um auf die sich ändernden Rechenanforderungen zu reagieren.
  • Einblicke können von Anwendungen, VMs, einschließlich Containern und Überwachungslösungen verwendet werden, um ausführliche Informationen darüber zu erfassen, wie sie funktionieren, und dann die gleichen Informationen zur Analyse und angemessenen Reaktion weiterzugeben.
  • Visualisieren Sie die Daten mithilfe von Dashboards, Excel-Arbeitsmappen, Power BI oder durch Erstellen von Ansichten. Diese helfen Ihnen, den aktuellen Zustand zu verstehen und Aktionen entsprechend zu planen. Die von Azure Monitor gesammelten Daten können durch die Aktivierung von Diagnosen erweitert werden, wobei Sie nach der Aktivierung die vollständigen Informationen erhalten. Für virtuelle Maschinen installieren Sie außerdem die Agents, um die Daten an den Analysebereich für Log Files zu senden.

Azure Monitor: Log Files und Metriken

Nehmen wir uns etwas mehr Zeit, um zu verstehen, was Log Files und was Metriken sind.

Log Files enthalten mit einem Zeitstempel versehene Informationen über die an den Ressourcen vorgenommenen Änderungen. Wir wissen, dass die Ereignisse sporadisch oder in festen Abständen auftreten können und auch von der Quelle abhängen, an der das Ereignis auftritt. Diese Ereignisse können von den Anwendungen und Diensten stammen, die den Kontext für die Ereignisse liefern, und diese Log Files werden in Datensätzen organisiert. Sie können metrische Daten enthalten, die numerisch sind, aber meistens sind es Textdaten.

Wie bereits erwähnt, können metrische Daten in Log Files gespeichert werden, um sie mit anderen Überwachungsdaten für die Analyse zu kombinieren. Diese Log Files zeigen den Kontext eines Problems an und helfen bei der Identifizierung der Grundursachen von Problemen.

Metriken sind zeitpunktbezogene Informationen über ein System, die auf einem numerischen Wert basieren. Azure Monitor führt häufige Stichproben der Quelle durch und erfasst die Metriken nahezu in Echtzeit. Sie sind als Alarme nützlich, und um bei Bedarf geeignete Maßnahmen zu ergreifen. Ein solches Beispiel ist die Skalierung von Diensten oder Servern basierend auf CPU- und Speichernutzung. Die Metriken werden in einer Zeitreihendatenbank gespeichert, die sich am besten für die Analyse von Zeitstempeldaten eignet.

Wir verwenden die Kusto Query Language, um Informationen aus Log Files zu extrahieren und die Daten zu überprüfen, die Azure Monitor erfasst. Bei der Kusto Query Language (KQL) wird Groß- und Kleinschreibung beachtet. Sprachschlüsselwörter werden in der Regel in Kleinschreibung geschrieben. Wenn Sie die Namen von Tabellen oder Spalten in einer Abfrage verwenden, sollten Sie also darauf achten, dass Sie die richtige Groß- und Kleinschreibung verwenden.

Es gibt bestimmte Demoplattformen, die von Microsoft zur Verfügung gestellt werden und die kostenlos zu Übungszwecken genutzt werden können. Es gibt sie für:

  1. Log Analytics (https://aka.ms/LADemo)
  2. Application Insights (https://aka.ms/AIAnalyticsDemo)
  3. Windows Defender Advanced Threat Protection (https://aka.ms/WinDefATP)

Diese Plattformen verfügen auch über gespeicherte Abfragen, die genutzt werden können, um einen Einblick zu erhalten, wie Abfragen gebildet werden und wie komplexe Abfragen erstellt werden können. Sie können Ihre Abfragen auch zur späteren Verwendung speichern.

Azure Monitor erstellen und konfigurieren

Da wir nun genau wissen, was Azure Monitor ist und welche Funktionen und Möglichkeiten es bietet, ist es der perfekte Zeitpunkt, um in die Demo einzutauchen. In der folgenden Demo werden wir den Dienst Azure Monitor konfigurieren, um eine App Services Web-App zu überwachen. App Services Web-App ist ein PaaS-Angebot, das auf der Microsoft Azure-Infrastruktur läuft, die von Microsoft selbst verwaltet wird. Azure Monitor sollte in der Lage sein, eine Aktion auszulösen, wenn die durchschnittliche CPU-Auslastung des Servers, der die Web-App hostet, den festgelegten Schwellenwert überschreitet. Um mehr über die App Services zu erfahren, klicken Sie hier.

Voraussetzungen

Bevor wir beginnen, sind unten die Voraussetzungen aufgeführt, die Sie benötigen, um die Demo abzuschließen.

  1. Azure-Abonnement ( https://portal.azure.com v)
  2. App Service Web-App – Sie können diesen Anweisungen folgen, um eine ASP.Net Web-App zu erstellen und in Azure App Services zu veröffentlichen

Nachfolgend finden Sie Schritte zum Konfigurieren des Dienstes Azure Monitor zur Überwachung der Web-App.

  1. Konfigurieren des Dienstes Azure Monitor
  2. Bedingung und Aktionsgruppe erstellen
  3. Die Alarmregel für die CPU-Zeit erstellen
  4. Berechtigungen für Azure Monitor verwalten

Konfigurieren von Metriken für App Services WebApp

Der erste Schritt besteht darin, den Dienst Azure Monitor zu erstellen. Gehen Sie dazu wie unten beschrieben vor.

  1. Klicken Sie im Azure-Portal auf die Suchleiste und suchen Sie nach Monitor
  2. Klicken Sie in der erscheinenden Ergebnisliste auf Monitor
  3. Sobald Sie sich auf der Seite von Azure Monitor befinden, sehen Sie ein Dashboard, das Ihnen den Einstieg in die Konfiguration erleichtert. Klicken Sie im linken Menü auf den Link „Metrics“.
  4. Nachdem Sie auf „Metrics“ geklickt haben, wird die Seite geöffnet, auf der Sie die Ressourcengruppe und die zu überwachende Ressource auswählen müssen.
  5. Wählen Sie die Ressourcengruppe auf der Seite Einen Bereich wählen
  6. Nachdem Sie die Ressourcengruppe ausgewählt haben, wählen Sie den Ressourcentyp und dann den Dienst unter Bereich verfeinern aus. In unserem Fall müssen wir die App Services unter Ressourcentyp und den Web-App-Namen unter App Servicesauswählen
  7. Klicken Sie auf „Anwenden“ , nachdem alle Auswahlen getroffen wurden.
  8. Sie werden zu der Seite weitergeleitet, auf der Sie Diagramme auf der Grundlage der von Ihnen gewählten Metrik erstellen können. Wie Sie hier sehen, ist der Bereich standardmäßig die VaronisTestApp, und der Metric Namespace sind die Standardmetriken von App Service. Wir können die gewünschte Metrik und Aggregation auswählen, um ein neues Diagramm zu erstellen
  9. Wählen Sie aus der Dropdown-Liste „Metrik“ die Option CPU-Zeit
  10. Wählen Sie aus der Dropdown-Liste „Aggregation“ die Option Summe

Bedingung und Aktionsregel für CPU-Zeit erstellen

Nachdem Sie die Auswahl getroffen haben, können Sie eine neue Alarmregel erstellen. Führen Sie dafür die folgenden Schritte aus.

  1. Wählen Sie im rechten Navigationsmenü die Option „Neue Alarmregel“
  2. Die Seite „Alarmregel erstellen“ wird geöffnet, auf der der Bereich standardmäßig gemäß unserer vorherigen Auswahl für Sie ausgewählt ist. Sie werden sehen, dass die Bedingung einen Fehler anzeigt, weil noch keine Logik definiert wurde. 
  3. Klicken Sie auf den Link „ Immer wenn die Summe der Rechenzeit größer ist als <logic undefined> Sekunden “, woraufhin sich die Seite Signallogik konfigurieren
    öffnet.
  4. Scrollen Sie nach unten zur Alarm-Logik und lassen Sie beim Schwellenwert die Auswahl bei Statisch.
  5. Wählen Sie beim Aggregationstyp die Option Gesamt.
  6. Geben Sie unter „Schwellenwert“ bei der Zeit 30 in Sekunden ein.
  7. Nachdem Sie Ihre Auswahl getroffen haben, klicken Sie auf die Schaltfläche Fertig.
  8. Sie sehen nun ein grünes Häkchen unter der Bedingung, und der Name der Bedingung zeigt die definierte Bedingung. 
  9. Scrollen Sie auf der Seite nach unten und klicken Sie unter Aktionen auf Aktionsgruppen hinzufügen.
  10. In dem Popup, das sich öffnet, sehen Sie die bereits mit den Aktionen erstellte Aktionsgruppe. Sie hat den Namen Application Insights Smart Detection und als Aktion ist 2 Email Azure Resource Manager-Rollen unter Eindämmen-Aktionen festgelegt.
  11. Aktivieren Sie das Kontrollkästchen, um die Aktionsgruppe auszuwählen und klicken Sie dann auf die Schaltfläche Auswählen

Die Alarmregel für die CPU-Zeit erstellen

Nachdem die Aktion definiert wurde, ist es jetzt an der Zeit, die Alarmregel zu erstellen. Fahren Sie mit den folgenden Schritten fort, um die Alarmregel zu erstellen.

  1. Geben Sie den Namen der Alarmregel ein.
  2. Das Abonnement und die Ressourcengruppe werden für Sie vorausgewählt, wenn Sie nur ein Abonnement und eine Ressourcengruppe haben. Falls Sie mehrere Abonnements oder Ressourcengruppen innerhalb der Abonnements haben, wählen Sie entsprechend aus.
  3. Wählen Sie unter Schweregrad die Option „0-Kritisch“ aus
  4. Lassen Sie das Kontrollkästchen für Alarmregel bei der Erstellung aktivieren und Alarmmeldungen automatisch auflösen  angekreuzt
  5. Klicken Sie abschließend auf die Schaltfläche Alarmregel erstellen

Alarmregeln können auch erstellt werden, indem Sie im linken Menü auf Alarme klicken.

Sie können auf die Schaltfläche Neue Alarmregel in der oberen Navigation klicken, um die neue Regel zu erstellen. Beachten Sie, dass auf dem Bildschirm oben Alarmregeln verwalten(2) angezeigt wird, was auf die Regeln hinweist, die wir zuvor erstellt haben. Sie können auf den Link klicken, um die zuvor definierten Regeln zu öffnen.

Eine der Regeln wird standardmäßig erstellt ( Failure Anomalies – VaronisTestApp). Sie können auf den Namen der Regel klicken, um die zuvor erstellte Regel zu ändern/aktualisieren.

Berechtigungen für Azure Monitor verwalten

Beim Hinzufügen der Aktionsgruppe haben wir die Aktion zum Senden von E-Mails an die Azure Resource Manager-Rollen erstellt:

Wir müssen überprüfen, ob die E-Mails an die richtigen Azure-Rollen ausgelöst werden. Damit die E-Mails ausgelöst werden können, müssen die Organisations-IDs über die Rolle „Monitoring Contributor“ verfügen.

  1. Gehen Sie zu der zuvor erstellten App Services Web-App, für die die Überwachung aktiviert wurde.
  2. Klicken Sie im linken Menü auf „Zugriffskontrolle (IAM)“.
  3. Klicken Sie auf der Seite für die Rollenzuweisungen auf Hinzufügen
  4. Wählen Sie auf der sich öffnenden Popup-Seite die Rolle als Monitoring Contributor
  5. Klicken Sie unter Auswählen auf die ID, für die die Genehmigung erteilt werden muss
  6. Klicken Sie auf die Schaltfläche Speichern
  7. Die neu hinzugefügte Rolle und die neue Identität werden nun unter Rollenzuweisungen angezeigt
    Sobald sie hinzugefügt wurde, kann diese Identität E-Mails erhalten, wenn Azure Monitor Alarme auslöst.

Übersicht

Azure Monitor ist ein solches Tool, das zur Überwachung Ihrer Azure-Workloads verwendet werden kann. Es protokolliert die Metrik- und Diagnosedaten in den Log Files von Azure Monitor, die zur Analyse der Telemetrie verwendet werden können, um uns zu helfen, die Leistung der Ressource zu verstehen. Das Beste an Azure Monitor ist, dass es sowohl zur Überwachung von Azure-Ressourcen als auch von lokalen Workloads und Diensten verwendet werden kann. Außerdem beginnt es automatisch mit der Arbeit, sobald die Ressource(n) bereitgestellt ist (sind). Die erfassten Daten können mithilfe von Dashboards, Excel-Arbeitsmappen, Power BI-Tools oder auch durch die Erstellung von Ansichten visualisiert werden. Als Azure-Architekt oder Azure-Administrator ist Azure Monitor ein unverzichtbares Tool für Einblicke in Ihre Workloads.