Teilen über


Konfiguration der Azure Monitor-Edgepipeline

Die Azure Monitor-Pipeline ist eine Datenerfassungspipeline, die eine konsistente und zentralisierte Datenerfassung für Azure Monitor bietet. Die Edgepipeline ermöglicht Datensammlungen im großen Stil sowie die Weiterleitung von Telemetriedaten, bevor sie an die Cloud gesendet werden. Sie kann Daten lokal zwischenspeichern und mit der Cloud synchronisieren, wenn die Konnektivität wiederhergestellt wurde, sowie Telemetriedaten an Azure Monitor weiterleiten, wenn das Netzwerk segmentiert ist und Daten nicht direkt an die Cloud gesendet werden können. In diesem Artikel erfahren Sie, wie Sie die Edgepipeline in Ihrer Umgebung aktivieren und konfigurieren.

Übersicht

Die Azure Monitor-Edgepipeline ist eine containerisierte Lösung, die in einem Kubernetes-Cluster mit Arc-Unterstützung bereitgestellt wird und auf dem OpenTelemetry-Collector basiert. Das Diagramm weiter unten zeigt die Komponenten der Edgepipeline. Mindestens ein Datenfluss lauscht auf eingehende Daten von Clients, und die Pipelineerweiterung leitet die Daten an die Cloud weiter – bei Bedarf unter Verwendung des lokalen Cache.

Die Pipelinekonfigurationsdatei definiert die Datenflüsse und Cacheeigenschaften für die Edgepipeline. Die Datensammlungsregel (Data Collection Rule, DCR) definiert das Schema der Daten, die an die Cloudpipeline gesendet werden, eine Transformation zum Filtern oder Ändern der Daten sowie das Ziel, an das die Daten gesendet werden sollen. Jede Datenflussdefinition für die Pipelinekonfiguration gibt die DCR und den Datenstrom innerhalb dieser DCR an, der diese Daten in der Cloudpipeline verarbeitet.

Übersichtsdiagramm: Dataflow für die Azure Monitor-Edgepipeline

Hinweis

Von der Edgepipeline wird eine private Verbindung zur Cloudpipeline unterstützt.

Die folgenden Komponenten und Konfigurationen sind erforderlich, um die Azure Monitor-Edgepipeline zu aktivieren. Wenn Sie das Azure-Portal zum Konfigurieren der Edgepipeline verwenden, wird jede dieser Komponenten für Sie erstellt. Bei anderen Methoden müssen Sie die einzelnen Komponenten konfigurieren.

Komponente Beschreibung
Controllererweiterung der Edgepipeline Erweiterung, die Ihrem Kubernetes-Cluster mit Arc-Unterstützung hinzugefügt wird, um Pipelinefunktionen zu unterstützen: microsoft.monitor.pipelinecontroller.
Controllerinstanz der Edgepipeline Instanz der Edgepipeline, die in Ihrem Kubernetes-Cluster mit Arc-Unterstützung ausgeführt wird.
Datenfluss Kombination von Empfängern und Exportern, die in der Pipelinecontrollerinstanz ausgeführt werden. Empfänger akzeptieren Daten von Clients, und Exporter übermitteln diese Daten an Azure Monitor.
Pipeline Konfiguration Konfigurationsdatei, die die Datenflüsse für die Pipelineinstanz definiert. Jeder Datenfluss enthält einen Empfänger und einen Exporter. Der Empfänger lauscht auf eingehende Daten, und der Exporter sendet die Daten an das Ziel.
Datensammlungsendpunkt (Data Collection Endpoint, DCE) Endpunkt, an dem die Daten an die Azure Monitor-Pipeline gesendet werden. Die Pipelinekonfiguration enthält eine Eigenschaft für die URL des Datensammlungsendpunkts, damit die Pipelineinstanz weiß, wohin die Daten gesendet werden sollen.
Konfiguration Beschreibung
Datensammlungsregel (Data Collection Rule, DCR) Konfigurationsdatei, die definiert, wie die Daten in der Cloudpipeline empfangen und wohin sie gesendet werden. Die Datensammlungsregel kann auch eine Transformation enthalten, um die Daten zu filtern oder zu ändern, bevor sie an das Ziel gesendet werden.
Pipeline Konfiguration Konfigurationsdatei, die die Datenflüsse für die Pipelineinstanz definiert (einschließlich der Datenflüsse und des Cache).

Unterstützte Konfigurationen

Unterstützte Distributionen
Die Edgepipeline wird in folgenden Kubernetes-Distributionen unterstützt:

  • Canonical
  • Cluster-API-Anbieter für Azure
  • K3
  • Rancher Kubernetes Engine
  • VMware Tanzu Kubernetes Grid

Unterstützte Standorte
Die Edgepipeline wird in folgenden Azure-Regionen unterstützt:

  • USA (Ost 2)
  • USA, Westen 2
  • Europa, Westen

Voraussetzungen

Workflow

Wenn Sie die Azure Monitor-Pipeline über das Azure-Portal konfigurieren, müssen Sie nicht im Detail mit den verschiedenen Schritten vertraut sein, die von der Pipeline ausgeführt werden. Wenn Sie allerdings eine andere Installationsmethode verwenden oder eine komplexere Konfiguration benötigen, bei der die Daten beispielsweise transformiert werden müssen, bevor sie am Ziel gespeichert werden, ist ggf. ein detaillierteres Verständnis der Pipeline erforderlich.

In den folgenden Tabellen und Diagrammen werden die detaillierten Schritte und Komponenten beschrieben, die im Rahmen des Prozesses verwendet werden, um Daten mithilfe der Edgepipeline zu sammeln und zur Speicherung in Azure Monitor an die Cloudpipeline zu übergeben. Außerdem enthalten die Tabellen die jeweils erforderliche Konfiguration für die einzelnen Komponenten.

Schritt Aktion Unterstützende Konfiguration
1. Der Client sendet Daten an den Empfänger der Edgepipeline. Der Client ist mit der IP-Adresse und dem Port des Empfängers der Edgepipeline konfiguriert und sendet Daten im erwarteten Format für den Empfängertyp.
2. Der Empfänger leitet Daten an den Exporter weiter. Empfänger und Exporter sind in der gleichen Pipeline konfiguriert.
3. Der Exporter versucht, die Daten an die Cloudpipeline zu senden. Der Exporter in der Pipelinekonfiguration enthält die URL des Datensammlungsendpunkts, einen eindeutigen Bezeichner für die Datensammlungsregel und den Datenstrom in der Datensammlungsregel, die definiert, wie die Daten verarbeitet werden.
3a. Der Exporter speichert Daten im lokalen Cache, wenn keine Verbindung mit dem Datensammlungsendpunkt hergestellt werden kann. Das persistente Volume für den Cache und die Konfiguration des lokalen Cache ist in der Pipelinekonfiguration aktiviert.

Diagramm: Ausführliche Darstellung der Schritte und Komponenten für die Datensammlung unter Verwendung der Azure Monitor-Edgepipeline

Schritt Aktion Unterstützende Konfiguration
4. Die Cloudpipeline akzeptiert die eingehenden Daten. Die Datensammlungsregel enthält eine Schemadefinition für den eingehenden Datenstrom, die dem Schema der Daten aus der Edgepipeline entsprechen muss.
5. Die Cloudpipeline wendet eine Transformation auf die Daten an. Die Datensammlungsregel enthält eine Transformation, um die Daten zu filtern oder zu ändern, bevor sie an das Ziel gesendet werden. Die Transformation kann Daten filtern, Spalten entfernen oder hinzufügen oder das zugehörige Schema vollständig ändern. Die Ausgabe der Transformation muss dem Schema der Zieltabelle entsprechen.
6. Die Cloudpipeline sendet die Daten an das Ziel. Die Datensammlungsregel enthält ein Ziel, das den Log Analytics-Arbeitsbereich und die Tabelle für die Speicherung der Daten angibt.

Diagramm: Ausführliche Darstellung der Schritte und Komponenten für die Datensammlung unter Verwendung der Azure Monitor-Cloudpipeline

Segmentiertes Netzwerk

Netzwerksegmentierung ist ein Modell, bei dem softwaredefinierte Perimeter verwendet werden, um einen anderen Sicherheitsstatus für verschiedene Teile Ihres Netzwerks zu erstellen. In diesem Modell gibt es möglicherweise ein Netzwerksegment, das keine Verbindung mit dem Internet oder mit anderen Netzwerksegmenten herstellen kann. Die Edgepipeline kann verwendet werden, um Daten aus diesen Netzwerksegmenten zu sammeln und an die Cloudpipeline zu senden.

Diagramm: Mehrschichtiges Netzwerk für die Azure Monitor-Edgepipeline

Um die Azure Monitor-Pipeline in der Konfiguration eines mehrschichtigen Netzwerks verwenden zu können, müssen Sie der Positivliste für den Kubernetes-Cluster mit Arc-Unterstützung die folgenden Einträge hinzufügen. Weitere Informationen finden Sie im Artikel „Konfigurieren von Azure IoT Layered Network Management Preview in einem Ebene 4-Cluster“ unter Konfigurieren des Layered Network Management Preview-Diensts

- destinationUrl: "*.ingest.monitor.azure.com"
  destinationType: external
- destinationUrl: "login.windows.net"
  destinationType: external

Erstellen einer Tabelle im Log Analytics-Arbeitsbereich

Bevor Sie den Datensammlungsprozess für die Edgepipeline konfigurieren, müssen Sie im Log Analytics-Arbeitsbereich eine Tabelle zum Empfangen der Daten erstellen. Dies muss eine benutzerdefinierte Tabelle sein, da integrierte Tabellen derzeit nicht unterstützt werden. Das Schema der Tabelle muss den empfangenen Daten entsprechen. Es gibt jedoch mehrere Schritte innerhalb des Sammlungsprozesses, in denen die eingehenden Daten geändert werden können, sodass das Tabellenschema nicht den gesammelten Quelldaten entsprechen muss. Die einzige Anforderung für die Tabelle im Log Analytics-Arbeitsbereich ist, dass sie über eine TimeGenerated-Spalte verfügen muss.

Ausführliche Informationen zu verschiedenen Tabellenerstellungsmethoden finden Sie unter Hinzufügen oder Löschen von Tabellen und Spalten in Azure Monitor-Protokollen. Verwenden Sie z. B. den folgenden CLI-Befehl, um eine Tabelle mit drei Spalten (Body, TimeGenerated und SeverityText) zu erstellen:

az monitor log-analytics workspace table create --workspace-name my-workspace --resource-group my-resource-group  --name my-table_CL --columns TimeGenerated=datetime Body=string SeverityText=string

Aktivieren der Zwischenspeicherung

In einigen Umgebungen kann es bei Edgegeräten aufgrund von Faktoren wie Netzwerküberlastung, Signalstörungen, Stromausfall oder Mobilität zu vorübergehenden Verbindungsunterbrechungen kommen. In diesen Umgebungen können Sie die Edgepipeline so konfigurieren, dass Daten zwischengespeichert werden, indem Sie ein persistentes Volume in Ihrem Cluster erstellen. Der Prozess hierfür variiert je nach Umgebung. Die Konfiguration muss jedoch folgende Anforderungen erfüllen:

  • Der Metadatennamespace muss der gleiche sein wie bei der angegebenen Instanz der Azure Monitor-Pipeline.
  • Der Zugriffsmodus muss ReadWriteMany unterstützen.

Nachdem das Volume im entsprechenden Namespace erstellt wurde, muss es mithilfe von Parametern in der unten angegebenen Pipelinekonfigurationsdatei konfiguriert werden.

Achtung

Jedes Replikat der Edgepipeline speichert Daten an einem Speicherort im persistenten Volume, das für dieses Replikat spezifisch ist. Wenn Sie die Anzahl von Replikaten verringern, während die Verbindung des Clusters mit der Cloud unterbrochen ist, können diese Daten nicht mehr abgeglichen werden, nachdem die Konnektivität wiederhergestellt wurde.

Aktivieren und Konfigurieren der Pipeline

Die aktuellen Optionen für die Aktivierung und Konfiguration werden auf den folgenden Registerkarten erläutert.

Konfigurieren der Pipeline über das Azure-Portal

Wenn Sie zum Aktivieren und Konfigurieren der Pipeline das Azure-Portal verwenden, werden alle erforderlichen Komponenten basierend auf den von Ihnen ausgewählten Optionen erstellt. Das erspart Ihnen die komplexe Erstellung der einzelnen Komponenten, die bei der Verwendung anderer Methoden erforderlich ist.

Führen Sie im Azure-Portal eine der folgenden Aktionen aus, um den Installationsprozess für die Azure Monitor-Pipeline zu starten:

  • Klicken Sie im Menü Azure Monitor-Pipelines (Vorschau) auf Erstellen.
  • Wählen Sie im Menü für Ihren Kubernetes-Cluster mit Arc-Unterstützung die Option Erweiterungen aus, und fügen Sie dann die Azure Monitor-Pipelineerweiterung (Vorschau) hinzu.

Auf der Registerkarte Allgemein werden Sie zur Angabe der folgenden Informationen aufgefordert, um die Erweiterung und die Pipelineinstanz in Ihrem Cluster bereitzustellen.

Screenshot: Bildschirm „Azure Monitor-Pipeline erstellen“

Die Einstellungen in diesem Lab werden in der folgenden Tabelle beschrieben.

Eigenschaft Beschreibung
Instanzname Der Name für die Azure Monitor-Pipelineinstanz. Muss für das Abonnement eindeutig sein.
Abonnement Das Azure-Abonnement zum Erstellen der Pipelineinstanz.
Resource group Die Ressourcengruppe zum Erstellen der Pipelineinstanz.
Clustername Wählen Sie Ihren Kubernetes-Cluster mit Arc-Unterstützung aus, in dem die Pipeline installiert wird.
Benutzerdefinierter Speicherort Der benutzerdefinierte Speicherort Ihres Kubernetes-Clusters mit Arc-Unterstützung. Hierfür wird automatisch der Name eines benutzerdefinierten Speicherorts angegeben, der für Ihren Cluster erstellt wird. Sie können aber auch einen anderen benutzerdefinierten Speicherort im Cluster auswählen.

Auf der Registerkarte Dataflow können Sie Dataflows für die Pipelineinstanz erstellen und bearbeiten. Jeder Dataflow enthält folgende Details:

Screenshot: Bildschirm zum Erstellen/Hinzufügen eines Dataflows

Die Einstellungen in diesem Lab werden in der folgenden Tabelle beschrieben.

Eigenschaft Beschreibung
Name Der Name für den Dataflow. Muss für diese Pipeline eindeutig sein.
Quellentyp Die Art der gesammelten Daten. Die folgenden Quellentypen werden derzeit unterstützt:
- Syslog
- OTLP
Port Der Port, an dem die Pipeline auf eingehende Daten lauscht. Wenn zwei Dataflows den gleichen Port verwenden, werden die Daten von beiden empfangen und verarbeitet.
Log Analytics-Arbeitsbereich Der Log Analytics-Arbeitsbereich, an den die Daten gesendet werden.
Tabellenname Der Name der Tabelle im Log Analytics-Arbeitsbereich, an die die Daten gesendet werden sollen.

Überprüfen der Konfiguration

Überprüfen der im Cluster ausgeführten Pipelinekomponenten

Navigieren Sie im Azure-Portal zum Menü Kubernetes Service-Instanzen, und wählen Sie Ihren Kubernetes-Cluster mit Arc-Unterstützung aus. Wählen Sie Dienste und eingehende Elemente aus, und vergewissern Sie sich, dass die folgenden Dienste angezeigt werden:

  • <Pipelinename>-external-service
  • <Pipelinename>-service

Screenshot: Clusterkomponenten zur Unterstützung der Azure Monitor-Edgepipeline

Klicken Sie auf den Eintrag für <Pipelinename>-external-service, und notieren Sie sich die IP-Adresse und den Port aus der Spalte Endpunkte. Hierbei handelt es sich um die externe IP-Adresse und um den Port, an die bzw. an den Ihre Clients Daten senden.

Überprüfen des Heartbeats

Jede in Ihrer Pipelineinstanz konfigurierte Pipeline sendet im Minutentakt einen Heartbeat-Datensatz an die Heartbeat-Tabelle in Ihrem Log Analytics-Arbeitsbereich. Der Inhalt der OSMajorVersion-Spalte muss dem Namen Ihrer Pipelineinstanz entsprechen. Enthält die Pipelineinstanz mehrere Arbeitsbereiche, wird der erste konfigurierte Arbeitsbereich verwendet.

Rufen Sie den Heartbeat-Datensatz mithilfe einer Protokollabfrage ab, wie im folgenden Beispiel gezeigt:

Screenshot: Protokollabfrage, die Heartbeat-Datensätze für die Azure Monitor-Edgepipeline zurückgibt

Clientkonfiguration

Nach der Installation Ihrer Edgepipelineerweiterung und der entsprechenden Instanz müssen Sie Ihre Clients so konfigurieren, dass sie Daten an die Pipeline sendet.

Abrufen des Eingangsendpunkts

Jeder Client muss über die externe IP-Adresse der Pipeline verfügen. Verwenden Sie den folgenden Befehl, um diese Adresse abzurufen:

kubectl get services -n <namespace where azure monitor pipeline was installed>

Wenn sich die Anwendung, die Protokolle erzeugt, außerhalb des Clusters befindet, kopieren Sie den Wert von external-ip des Diensts nginx-controller-service mit dem Lastenausgleichstyp. Wenn sich die Anwendung in einem Pod innerhalb des Clusters befindet, kopieren Sie den Wert von cluster-ip. Falls das Feld „external-ip“ auf pending (ausstehend) festgelegt ist, muss für diesen Eingang manuell eine externe IP-Adresse gemäß Ihrer Clusterkonfiguration konfiguriert werden.

Client Beschreibung
syslog Aktualisieren Sie Syslog-Clients, sodass sie Daten an den Pipelineendpunkt und den Port Ihres Syslog-Dataflows senden.
OTLP Die Azure Monitor-Edgepipeline macht einen gRPC-basierten OTLP-Endpunkt am Port 4317 verfügbar. Die Konfiguration Ihrer Instrumentierung zum Senden von Daten an diesen OTLP-Endpunkt hängt von der Instrumentierungsbibliothek selbst ab. Informationen zum OTLP-Endpunkt oder -Collector finden Sie in der OpenTelemetry-Dokumentation. Die Umgebungsvariablenmethode ist hier dokumentiert.

Überprüfen der Daten

Der letzte Schritt besteht darin, zu überprüfen, ob die Daten im Log Analytics-Arbeitsbereich empfangen werden. Für diese Überprüfung können Sie im Log Analytics-Arbeitsbereich eine Abfrage ausführen, um Daten aus der Tabelle abzurufen.

Screenshot: Protokollabfrage, die die Syslog-Sammlung zurückgibt

Nächste Schritte