Engineering

Überwachen der Azure-Infrastruktur mit Filebeat und Elastic Observability

Für die Optimierung Ihrer Anwendungen und des Nutzungserlebnisses für Ihre Nutzer benötigen Sie Informationen zum internen Zustand Ihres Anwendungsökosystems. Mit Elastic Cloud auf Microsoft Azure erhalten Sie Zugriff auf Elastic Observability und damit auf eine Vielzahl von in Minutenschnelle bereitstellbaren Ressourcen, mit denen Sie Ihre Infrastruktur überwachen und Einblick in die Beziehungen der einzelnen Signale untereinander gewinnen können.

Unser verwalteter Elasticsearch Service auf Azure bietet Vorteile wie 1-Klick-Upgrades, standardmäßig aktivierte Sicherheit und vieles andere mehr, die zur Vereinfachung der IT-Arbeit beitragen. Darüber hinaus hilft Ihnen Elastic Observability, Ihre Logdaten, Metriken und APM-Traces zu zentralisieren, damit Sie sich einen schnellen Überblick über den aktuellen Zustand des Systems verschaffen können. Mit Machine Learning können Sie Anomalien aufspüren, und Alerting-Funktionen halten Sie über Abweichungen von der Norm auf dem Laufenden, um Ihnen so die Möglichkeit zu geben, schnell auf Ereignisse in Ihrer Umgebung zu reagieren.

Bezüglich der Azure-Überwachung bietet Elastic Observability Folgendes:

  • Überwachung Ihrer Aktivitäts-, Anmelde- und Überwachungsprotokolle mithilfe des Filebeat-Azure-Moduls mit Azure Event Hubs
  • Analysieren Ihrer Computing-, Container-, Datenbankspeicher-, Abrechnungs- und Anwendungs-Insight-Metriken mithilfe des Metricbeat-Azure-Moduls

In diesem Blogpost beschäftigen wir uns mit der Azure-Observability mit dem Elastic Stack. Am besten, Sie vollziehen meine Schritte einfach in Ihrem eigenen Deployment nach. Wenn Sie noch kein eigenes Deployment haben, empfehle ich Ihnen, sich zunächst den Blogpost „Getting Started with Elastic Cloud on Microsoft Azure“ anzusehen. Das Registrieren für Elastic Cloud (verwalteter Elasticsearch Service) über den Azure Marketplace ist einfach und Sie profitieren von hoher Flexibilität und der integrierten Abrechnung.

Azure-Observability mit Elastic

Mit Elastic Observability erhalten Sie eine schlüsselfertige Lösung für die Azure-Überwachung. Filebeat verfügt standardmäßig über ein Azure-Modul, mit dem Sie diese leichtgewichtigen Shipper schnell Ihrem Ökosystem hinzufügen können. Nach dem Installieren können Sie Protokollereignisse erfassen und sie zum Indexieren entweder an Elasticsearch oder an Logstash senden. Die Daten können dann anschließend in leistungsfähigen, vorgefertigten Kibana-Visualisierungen visualisiert und analysiert werden – so sparen Sie Zeit und Aufwand und können sofort loslegen.

Lassen Sie es uns einmal versuchen!

Ingestieren von Azure-Protokollen

Um die ganze Sache einfach zu halten, finden Sie direkt in Kibana eine Anleitung zum Installieren von Filebeat. Mithilfe der dort beschriebenen Schritte richten wir den Shipper Filebeat so ein, dass er die oben erwähnten Aktivititäts-, Anmelde- und/oder Überwachungsprotokolle aus Azure ingestiert.

Herunterladen und Installieren von Filebeat

Wir nutzen die Deployment-Version 7.10 und klicken auf der Kibana-Startseite auf Install Filebeat.

Wenn Sie Ihr Deployment noch nicht auf 7.10 aktualisiert haben, besuchen Sie bitte das Thema „Upgrade versions“ in unserer Dokumentation. Die Upgrades werden automatisch durchgeführt und sind so gestaltet, dass ungeplante Ausfallzeiten möglichst vermieden werden.

Klicken Sie auf das Navigationsmenü und dann auf Home.

Klicken Sie jetzt auf Add data.

Damit gelangen wir zum Menü Add data. Wählen Sie Azure logs aus.

Befolgen Sie die Schritte zum Installieren von Filebeat auf Ihrem System. Zusätzliche Informationen zu Filebeat erhalten Sie über die Links „View exported fields“ und „Learn more“.

Sie können diese Seite so lange offen lassen, bis wir die folgenden Konfigurationsschritte ausgeführt haben. Wir werden später zu ihr zurückkehren.

Konfigurieren von Filebeat

Nachdem Sie Filebeat für Ihr System heruntergeladen und installiert haben, müssen Sie die Datei filebeat.yml bearbeiten. Auf Linux-Systemen finden Sie diese Datei in der Regel unter /etc/filebeat.

Der große Vorteil der Ausführung dieses Prozesses in Kibana besteht darin, dass Kibana Ihnen genau zeigt, wie Sie die Datei um die nötigen Einträge ergänzen können, um die reibungslose Kommunikation mit Ihrem Elastic Cloud-Deployment sicherzustellen. Es gibt zwei Variablen, die geändert werden müssen: cloud.id und cloud.auth.

Wenn Sie den Elastic Stack in einem eigenen Azure-Konto selbst verwaltet ausführen, finden Sie entsprechende Informationen in der Schnellstartanleitung für Filebeat unter „Connect to the Elastic Stack“.

Profi-Tipp: Wenn Sie nicht wissen, wo Sie diese herbekommen, sehen Sie in unserer Dokumentation nach.

Erstellen eines Event Hubs

Für diese Lösung benötigen Sie Azure Event Hubs für die Aktivitäts-, Anmelde- und/oder Überwachungsprotokolle sowie Zugriff auf einen Speicher-Blob. Wenn Sie noch keinen Event Hub eingerichtet haben, erfahren Sie unter „Schnellstart: Erstellen eines Event Hubs mithilfe des Azure-Portals“ mehr zum Thema. Anschließend sollten Sie sich auch noch die Anleitung zum Senden von Aktivitätsprotokollen an den Event Hub ansehen.

Wenn Sie einen Event Hub erstellen, können Sie ihn zu einem bestehenden Namespace hinzufügen, sofern ein solcher vorhanden ist, oder einen komplett neuen Namespace anlegen, was wir im Folgenden zeigen werden.

Klicken Sie in Ihrem Azure-Portal unter Event Hubs auf Hinzufügen.

Sie müssen eine Ressourcengruppe auswählen und ihr einen Namen geben, zum Beispiel elastic-eventhub.

Wählen Sie dann den Standort und den Tarif aus und fügen Sie bei Bedarf weitere optionale Tags hinzu. Klicken Sie anschließend auf Erstellen.

Klicken Sie auf Richtlinien für den gemeinsamen Zugriff.

Klicken Sie auf die Standardrichtlinie, die angezeigt wird (RootManageSharedAccessKey), und klicken Sie dann auf die Verbindungszeichenfolge, um sie zu kopieren. Fügen Sie diese irgendwo ein, wo sie sicher aufbewahrt werden kann. Wir benötigen sie zum Konfigurieren der Konfigurationsdatei für das Filebeat-Azure-Modul (azure.yml).

Navigieren Sie zu Aktivitätsprotokoll und klicken Sie auf Diagnoseeinstellungen.

Klicken Sie auf Diagnoseeinstellung hinzufügen und geben Sie der Diagnoseeinstellung den Namen elastic-diag.

Wählen Sie die gewünschten Protokolle aus und denken Sie daran, auch An einen Event Hub streamen zu aktivieren.

Wählen Sie den Namespace elastic-eventhub aus, wählen Sie die Option (In ausgewähltem Namespace erstellen) für den Event-Hub-Namen aus und wählen Sie dann die Richtlinie RootManageShareAccessKey aus.

Daraufhin wird ein Event Hub mit dem Namen insights-activity-logs erstellt, der unter dem Namespace elastic-eventhub erscheint, den wir in der Konfigurationsdatei azure.yml nutzen werden.

Klicken Sie auf Speichern. Wenn Sie möchten, können Sie jetzt zu elastic-eventhub zurückgehen und sich ansehen, wie die Ereignismetriken beginnen hereinzukommen.

Aktivieren des Azure-Moduls

Führen Sie einfach einen Befehl aus, um das Azure-Modul zu aktivieren. Dies wird auf der Seite in Kibana (wo wir begonnen haben) als Schritt 3 dargestellt.

Auf diese Weise wird sichergestellt, dass die Konfigurationsdatei azure.yml aktiv wird und mit Ihrem Azure-Abonnement kommunizieren kann.

Der Befehl zum Aktivieren des Moduls unter Linux lautet:

sudo filebeat modules enable azure

Wenn Sie alle Module auflisten möchten, wobei die aktivierten ganz oben erscheinen, verwenden Sie den folgenden Befehl:

sudo filebeat modules list

Zum Deaktivieren des Moduls geben Sie Folgendes ein:

sudo filebeat modules disable azure

Konfigurieren des Azure-Moduls

Nachdem Sie die Datei azure.yml aktiviert haben, müssen Sie sie konfigurieren. Auf Linux-Systemen finden Sie sie in der Regel im Verzeichnis /etc/filebeat/modules.d. Wenn ein Modul nicht aktiviert ist, gibt es in diesem Verzeichnis auch die Erweiterung .disabled.

Im Azure-Modul ist standardmäßig nur activitylogs aktiviert, erkennbar durch enabled: true.

Für das Konfigurieren von auditlogs und signinlogs müssen Sie ein globaler oder ein Sicherheitsadministrator Ihres Azure-Kontos sein. Nähere Informationen finden Sie unter „Tutorial: Streamen von Azure Active Directory-Protokollen an einen Azure Event Hub“. Sie können die Protokolle dann aktivieren, indem Sie enabled: false in true ändern.

Wichtig: Wenn Sie nicht über ausreichende Berechtigungen zum Konfigurieren der Überwachungs- und Anmeldeprotokolle verfügen, müssen diese Module in der Datei azure.yml deaktiviert bleiben.

Jetzt wird es Zeit, die Konfigurationsdatei azure.yml mit den Informationen zu versehen. Dazu müssen Sie lediglich die zuvor an einem sicheren Ort abgelegten Werte für die Einträge eventhub und connection_string und anschließend die Speicherkontodetails hinzufügen.

Profi-Tipp: Den Speicherkontonamen und -schlüssel finden Sie im Speicherkonto, das Sie nutzen möchten. Klicken Sie auf Zugriffsschlüssel. Sie können auch das Microsoft Azure-Hilfethema „Verwalten von Speicherkonto-Zugriffsschlüsseln“ zurate ziehen.

Vorausgesetzt, Sie konfigurieren nur Aktivitätsprotokolle, sieht Ihre Konfigurationsdatei ungefähr wie folgt aus:

- module: azure 
  # All logs 
  activitylogs: 
    enabled: true 
    var: 
      # eventhub name containing the activity logs 
      eventhub: "insights-activity-logs" 
      # consumer group name that has access to the event hub 
      consumer_group: "$Default" 
      # connection string required to communicate with Event Hubs       
      connection_string: "<your connection string key>" 
      # the storage account  
      storage_account: "<your storage name>" 
      # the storage account key 
      storage_account_key: "<your account key>"

Wenn Sie weitere Informationen zu dieser Konfiguration benötigen, verweise ich Sie auf das Thema „Module configuration“ in unserer Dokumentation. Speicherkonto und ‑schlüssel werden benötigt, um im Fall einer Unterbrechung des Filebeat-Dienstes die Protokollabfolge sicherzustellen.

Profi-Tipp: eventhub ist nicht der Event-Hub-Namespace, sondern der Instanzname. Event-Hub-Namespaces sind der Gruppierungscontainer für mehrere Event Hubs. Die Abrechnung erfolgt auf Namespace-Ebene. Nähere Einzelheiten dazu finden Sie unter „Häufig gestellte Fragen zu Event Hubs“ in der Microsoft-Dokumentation.

Einrichten und Starten von Filebeat

Nachdem nun Filebeat, ein Event Hub und ein Speicherkonto konfiguriert worden sind, wird es Zeit loszulegen, indem wir den Schritt „Setup“ ausführen und dann Filebeat starten. Auf der Kibana-Seite, auf der wir mit dem Herunterladen und Konfigurieren von Filebeat begonnen haben, werden in Schritt 4 die folgenden Befehle skizziert, die wir jetzt benötigen.

Da wir zum Installieren von Filebeat „as a Service“ RPM verwendet haben, muss RPM auch zum Ausführen „as a Service“ verwendet werden. Das genaue Aussehen hängt von der Art des verwendeten Systems ab. Wenn Sie mehr über das Ausführen von Filebeat „as a Service“ bei DEB- und RPM-Paketen erfahren möchten, lesen Sie den Artikel „Filebeat and systemd“. Entsprechende Informationen für die Ausführung auf einer anderen Plattform sind unter „Filebeat quick start“ zu finden.

Als Erstes müssen wir den Schritt setup ausführen, mit dem vordefinierte Assets, Indizes, Visualisierungen und so weiter geladen werden, die von den vorgefertigten Azure Cloud-Dashboards genutzt werden. Der Befehl setup nutzt alle standardmäßig in Elastic enthaltenen Azure-Integrationen, sodass Sie keine eigenen Integrationen entwickeln müssen. Diese Integrationen sind ausnahmslos komplett anpassbar. Darüber hinaus gibt es noch viele von der Community entwickelte Integrationen.

Führen Sie den Befehl „setup“ aus:

sudo filebeat setup

Sie können den Befehl setup auch mit dem Parameter ‑e versehen, der Logging-Daten nicht an „syslog“, sondern an das Display sendet, sodass Sie nachverfolgen können, welche Schritte ausgeführt werden.

sudo filebeat setup -e

Starten Sie dann den Dienst:

sudo service filebeat start

Wenn Sie den Status prüfen möchten:

sudo service filebeat status

Wenn Sie Filebeat stoppen möchten:

sudo service filebeat stop

Wenn Sie über einen laufenden Dialog prüfen möchten, ob der Dienst ordnungsgemäß ausgeführt wird:

sudo journalctl -u filebeat -f

Visualisieren in Kibana

Nun können wir die vom Event Hub erfassten und dann von Filebeat an Elasticsearch gesendeten Aktivitätsprotokolle in Kibana visualisieren.

Wenn Sie die Seite, auf der wir die Filebeat-Konfiguration initiiert haben, noch offen haben, gelangen Sie durch Wählen von Check data und anschließendes Klicken auf Azure logs dashboard direkt zum Dashboard.

blog-azure-log-mon-11.jpg

Das wars schon – Ingestieren, Analysieren und Visualisieren ganz einfach in einigen wenigen Schritten!

Fazit

Wir hoffen, dass Ihnen dieser Blogpost dabei hilft, die ersten Schritte mit Filebeat zu gehen, Azure-Aktivitätsprotokolle mithilfe eines Event Hubs zu ingestieren und Ihr Azure-Deployment mit integrierten Dashboards zu überwachen.

Als Nächstes gilt es, mithilfe des Metricbeat-Azure-Moduls Ihre Computing-, Container-, Datenbankspeicher-, Abrechnungs- und Anwendungs-Insight-Metriken aus Azure zu erfassen.

Wenn Sie Fragen haben oder sich in die laufenden Diskussionen einbringen möchten, besuchen Sie die Diskussionsgruppe zu Elastic Observability. Darüber hinaus finden Sie auf unserer Seite „Resources and Training“ eine Vielzahl von hilfreichen Erste-Schritte-Videos und Schulungsmaterialien.