Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm erfahren Sie, wie Sie eine neue oder aktualisieren eine vorhandene FinOps-Hubinstanz in Azure oder Microsoft Fabric erstellen. Das Lernprogramm führt durch Bereitstellungsoptionen und Entscheidungen, die beim Einrichten und Konfigurieren von FinOps-Hubs getroffen werden müssen. Dieser Artikel hilft Ihnen:
- Wenden Sie die Voraussetzungen für FinOps-Hubs an.
- Erstellen Sie eine neue oder aktualisieren Sie eine vorhandene FinOps-Hubinstanz.
- Aufnehmen und Zurückfüllen von Daten in FinOps-Hubs.
- Verbinden Sie Ihren Hub mit Microsoft Fabric.
- Erstellen Sie Berichte und Dashboards.
Voraussetzungen
- Zugriff auf ein aktives Azure-Abonnement mit Berechtigungen zum Bereitstellen der FinOps-Hubs-Vorlage:
- Verantwortlicher zur Bereitstellung von Ressourcen.
- Rollenbasierter Zugriffssteuerungsadministrator zum Konfigurieren der verwalteten Identität.
- Informationen zum geringsten Privilegierten Zugriff finden Sie unter Vorlagendetails.
- Zugriff auf einen oder mehrere unterstützte Bereiche im Rahmen von Enterprise Agreements (EA), Microsoft Customer Agreement (MCA) oder Microsoft Partner Agreement (MPA) im Kostenmanagement, um Exporte zu konfigurieren:
- Abonnements und Ressourcengruppen: Kostenverwaltungsmitwirkender.
- EA-Abrechnungsbereiche: Enterprise Reader, Abteilungsleser oder Kontobesitzer (auch als Registrierungskonto bezeichnet).
- MCA-Abrechnungsbereiche: Mitwirkender am Abrechnungskonto, Abrechnungsprofil oder Rechnungsabschnitt.
- MPA-Abrechnungsbereiche: Beitragender für das Abrechnungskonto, das Abrechnungsprofil oder den Kunden.
- Optional: Zugriff auf Power BI oder einen Microsoft Fabric-Arbeitsbereich mit Mitwirkenden- oder Mitgliedsberechtigungen zum Erstellen von Ressourcen und Veröffentlichen von Berichten.
- Optional: PowerShell 7 oder Azure Cloud Shell mit dem FinOps-Toolkit PowerShell-Modul installiert und importiert.
Weitere Berechtigungen werden im Rahmen des Tutorials behandelt.
Aktivieren erforderlicher Ressourcenanbieter
FinOps-Hubs verwenden Kostenverwaltung zum Exportieren von Daten und Event Grid, um zu wissen, wann Daten zu Ihrem Speicherkonto hinzugefügt werden. Vor der Bereitstellung der Vorlage müssen Sie die Microsoft.CostManagementExports - und Microsoft.EventGrid-Ressourcenanbieter registrieren.
- Öffnen Sie im Azure-Portal die Liste der Abonnements.
- Wählen Sie das Abonnement aus, das für Ihre FinOps-Hubbereitstellung verwendet werden soll.
- Wählen Sie im linken Menü Einstellungen>Ressourcenanbieter aus.
- Suchen Sie in der Liste der Ressourcenanbieter die Zeile für Microsoft.EventGrid.
- Wenn in der Spalte Status nicht registriert angezeigt wird, wählen Sie das Kontextmenü rechts neben dem Anbieternamen (⋅⋅⋅) aus, und wählen Sie dann Registrieren aus.
- Wiederholen Sie die Schritte 4-5 für Microsoft.CostManagementExports.
Planen der Netzwerkarchitektur
Bevorzugen Sie öffentliches oder privates Netzwerkrouting?
Öffentliches Routing ist am häufigsten und am einfachsten zu verwenden. Ressourcen sind über das offene Internet erreichbar. Der Zugriff wird über die rollenbasierte Zugriffssteuerung (RBAC) gesteuert. Öffentliches Routing erfordert keine Konfiguration.
Bevorzugen Sie öffentliches oder privates Netzwerkrouting?
- Öffentliches Routing ist am häufigsten, am einfachsten zu verwenden und macht Ressourcen aus dem offenen Internet erreichbar.
- Privates Routing ist am sichersten, verfügt über zusätzliche Kosten und macht Ressourcen nur aus Peered-Netzwerken erreichbar.
Öffentliches Routing erfordert keine Konfiguration. Wenn Sie sich für privates Routing entscheiden, arbeiten Sie mit Ihrem Netzwerkadministrator zusammen, um Peering und Routing zu konfigurieren, damit das isolierte FinOps-Netzwerk über Ihr Netzwerk erreichbar ist. Bevor Sie sich entscheiden, erfahren Sie mehr über die zusätzlichen Konfigurationsschritte, die in "Private Netzwerke konfigurieren" erforderlich sind.
Optional: Einrichten von Microsoft Fabric
Viele Organisationen nutzen Microsoft Fabric als einheitliche Datenplattform, um Datenanalysen, Speicher und Verarbeitung zu optimieren. FinOps-Hubs können Microsoft Fabric Real-Time Intelligence (RTI) als primären oder sekundären Datenspeicher verwenden. Dieser Abschnitt gilt nur beim Konfigurieren von Microsoft Fabric als primären Datenspeicher anstelle von Azure Data Explorer.
Das Konfigurieren von Microsoft Fabric ist ein manueller Prozess und erfordert explizite Schritte vor und nach der Vorlagenbereitstellung. In diesem Abschnitt werden die anfänglichen Setupanforderungen behandelt.
- Erstellen sie einen Arbeitsbereich und ein Veranstaltungshaus:
- Öffnen Sie in Microsoft Fabric den gewünschten Arbeitsbereich, oder erstellen Sie einen neuen Arbeitsbereich. Erfahren Sie mehr.
- Wählen Sie im Fabric-Arbeitsbereich oben auf der Seite den Befehl +Neues Element aus.
- Wählen Sie "Store data>Eventhouse" aus.
- Geben Sie einen Namen an (z. B.
FinOpsHub) und wählen Sie Erstellen aus.
- Erstellen und Konfigurieren der Erfassungsdatenbank :
- Wählen Sie "Eventhouse>+ Database " oben auf der Seite aus, legen Sie den Namen fest
Ingestion, und wählen Sie " Erstellen" aus. - Wählen Sie im linken Menü Ingestion_queryset aus.
- Löschen Sie den gesamten Text in der Datei.
- Laden Sie die Datei "finops-hub-fabric-setup-Ingestion.kql" in einem Text-Editor herunter, und öffnen Sie sie.
- Kopieren Sie den gesamten Text aus dieser Datei in den Editor für Abfragesätze von Fabric.
- Drücken Sie STRG+H, um das Dialogfeld für Suchen und Ersetzen zu öffnen. Legen Sie den Suchtext auf
$$rawRetentionInDays$$fest und ersetzen Sie ihn durch0oder die gewünschte Anzahl von Tagen, um Daten in _raw Tabellen beizubehalten. Drücken Sie dann STRG+ALT+EINGABETASTE, um alle Instanzen zu ersetzen. - Drücken Sie STRG+POS1, um den Cursor an den Anfang der Datei zu verschieben, und drücken Sie Umschalt+Eingabetaste oder wählen Sie oben auf der Seite den Befehl "Ausführen" aus.
- Warten Sie, bis das Skript abgeschlossen ist, und überprüfen Sie dann die Ergebnisspalte, um zu bestätigen, dass alle Befehle erfolgreich abgeschlossen wurden.
- Wenn für eine Zeile mit $$rawRetentionInDays$$ ein Fehler angezeigt wird, wiederholen Sie die Schritte 2,6 und 2,7.
- Wenn ein anderer Fehler auftritt, erstellen Sie ein Problem in GitHub.
- Wählen Sie "Eventhouse>+ Database " oben auf der Seite aus, legen Sie den Namen fest
- Wiederholen Sie Schritt 2 für die Hub-Datenbank mithilfe der Skriptdatei "finops-hub-fabric-setup-Hub.kql ".
- Wählen Sie im linken Bereich die Systemübersicht und dann den Link " URI kopieren " für die Abfrage-URI-Eigenschaft im Detailbereich auf der rechten Seite aus.
- Notieren Sie sich den Abfrage-URI. Sie verwenden ihn im nächsten Schritt.
Bereitstellen der FinOps-Hubvorlage
Das Kernmodul für FinOps-Hubs wird über eine Azure Resource Manager-Bereitstellungsvorlage bereitgestellt. Die Vorlage ist in bicep verfügbar. Die Vorlage enthält ein Speicherkonto, Azure Data Factory, Azure Data Explorer und andere unterstützende Ressourcen. Weitere Informationen zu den Vorlagen- und Zugriffsanforderungen mit den geringsten Rechten finden Sie in den FinOps-Hub-Vorlagendetails.
- Öffnen Sie die gewünschte Vorlage im Azure-Portal:
- Wählen Sie die gewünschte Abonnement- und Ressourcengruppe aus.
- Wählen Sie eine Azure-Region aus, in der Sie Ressourcen bereitstellen möchten.
- Wenn Sie eine Verbindung mit Microsoft Fabric herstellen, wählen Sie denselben Bereich wie Ihre Fabric-Kapazität aus. Sie finden die Region in Den Arbeitsbereichseinstellungen >Lizenzinformationen>Lizenzkapazität.
- Geben Sie einen Hubnamen an, der für Kernressourcen und Berichterstellungszwecke verwendet wird.
- Alle Ressourcen verfügen über ein gemeinsames cm-resource-parent-Tag , um sie unter dem Hub in Cost Management zu gruppieren.
- Geben Sie einen eindeutigen Azure Data Explorer-Clusternamen oder den Microsoft Fabric Eventhouse Query-URI an.
- Dieser Name wird verwendet, um Daten abzufragen und eine Verbindung mit Berichten, Dashboards und anderen Tools herzustellen.
- Verwenden Sie bei der Bereitstellung in Microsoft Fabric Ihren Fabric Eventhouse-Abfrage-URI, und lassen Sie den Clusternamen des Daten-Explorers leer.
- Daten-Explorer und Fabric sind optional, werden jedoch empfohlen, wenn Sie mehr als 100.000 USD an Gesamtausgaben überwachen.
- Warnung: Power BI kann Timeouts und Probleme bei der Datenaktualisierung haben, wenn es sich auf Speicherkapazität für mehr als 1 Million US-Dollar stützt. Wenn Probleme auftreten, führen Sie die erneute Bereitstellung mit dem Daten-Explorer oder Microsoft Fabric durch.
- Wählen Sie unten im Formular die Schaltfläche "Weiter " aus.
- Bei Bedarf können Sie die Speicherredundanz oder die SKU des Daten-Explorers ändern.
- Es wird nicht empfohlen, eine der Einstellungen für die erste Bereitstellung zu ändern.
- Bei Verwendung des Daten-Explorers ist das Speicherkonto ein temporärer Datenspeicher und sollte keine Georedundanz benötigen.
- Für die meisten Bereitstellungen ist keine größere Daten-Explorer-SKU erforderlich. Es wird empfohlen, mit dem Entwicklungs-/Testcluster zu beginnen und die Leistung vor dem Hochskalieren oder Ausskalieren zu überwachen.
- Ausführliche Informationen zum Skalieren des Daten-Explorers finden Sie unter Auswählen einer SKU für Ihren Cluster.
- Wählen Sie unten im Formular die Schaltfläche "Weiter " aus.
- Legen Sie die gewünschten Datenaufbewahrungszeiträume fest.
- Die Speicherung von Rohdaten bezieht sich auf die dem Daten-Explorer hinzugefügten Daten, die jedoch nicht in die endgültigen Tabellen normalisiert werden. Verwenden Sie 0, es sei denn, Sie müssen Probleme bei der Aufnahme beheben. Diese Zahl gibt die Aufbewahrung in Tagen an.
- Die normalisierte Datenaufbewahrung bezieht sich auf den Zeitrahmen in Monaten, in dem Daten in den endgültigen Tabellen verfügbar sind. 0 behält nur den aktuellen Monat bei, 1 ist nur letzter Monat und der aktuelle Monat usw.
- Wählen Sie unten im Formular die Schaltfläche "Weiter " aus.
- Geben Sie an, ob Sie eine Infrastrukturverschlüsselung benötigen.
- Es wird nicht empfohlen, es sei denn, Sie verfügen über bestimmte Richtlinien, die eine Infrastrukturverschlüsselung erfordern.
- Geben Sie an, dass Sie öffentliches oder privates Netzwerkrouting verwenden möchten. Erfahren Sie mehr.
- Wenn Sie "Privat" ausgewählt haben, geben Sie das gewünschte Präfix für private Netzwerkadressen an.
- Wählen Sie unten im Formular die Schaltfläche "Weiter " aus.
- Geben Sie bei Bedarf weitere Tags an, die zu den Ressourcen hinzugefügt werden sollen.
- Wählen Sie unten im Formular die Schaltfläche "Weiter " aus.
- Überprüfen Sie die Konfigurationszusammenfassung, und wählen Sie unten im Formular die Schaltfläche " Erstellen " aus.
Optional: Konfigurieren des Fabric-Zugriffs
Wenn Sie Microsoft Fabric als primären Datenspeicher einrichten, konfigurieren Sie den Zugriff auf Data Factory und das Fabric-Ereignishaus.
- Abrufen der Data Factory-Identität:
- Öffnen Sie im Azure-Portal die FinOps-Hubressourcengruppe.
- Wählen Sie in der Liste der Ressourcen die Data Factory-Instanz aus.
- Wählen Sie im Menü auf der linken Seite " Einstellungen>verwaltete Identitäten " aus, und kopieren Sie die Objekt-ID (Prinzipal-ID).
- Gewähren Sie der Data Factory Zugriff auf die Hub- und Eingabedatenbanken:
Öffnen Sie in Microsoft Fabric den gewünschten Arbeitsbereich, und wählen Sie das Zielereignishaus aus.
Wählen Sie die Erfassungsdatenbank im linken Bereich aus.
Wählen Sie im linken Bereich Ingestion_queryset aus.
Führen Sie die folgenden Befehle separat aus und ersetzen Sie
<adf-identity-id>durch die verwaltete Identitätsobjekt-ID von Data Factory aus Schritt 1..add database Ingestion admins ('aadapp=<adf-identity-id>') .add database Hub admins ('aadapp=<adf-identity-id>')
Konfigurieren von Bereichen zum Überwachen
FinOps-Hubs können alle Kosten- und Nutzungsdatensätze überwachen, die an der FinOps Open Cost and Usage Specification (FOCUS) ausgerichtet sind.
Sie können Daten aus Microsoft Cost Management aufnehmen, indem Sie Exporte manuell erstellen oder Zugriff auf FinOps-Hubs gewähren, um Exporte für Sie zu erstellen und zu verwalten. Die folgenden Schritte müssen für jeden Bereich wiederholt werden, den Sie überwachen müssen. Wir empfehlen die Verwendung von EA-Abrechnungskonten und MCA-Abrechnungsprofilen für die beste Abdeckung und die umfassendsten verfügbaren Datasets. Weitere Informationen zum Unterschied zwischen manuellen und verwalteten Exporten finden Sie unter Konfigurieren von Bereichen.
- Öffnen Sie im Azure-Portal die Kostenverwaltung.
- Wählen Sie den gewünschten Bereich aus der Bereichsauswahl am oberen Rand der Seite aus.
- Wählen Sie im Menü auf der linken Seite "Berichterstellung + Analyseexporte>" aus.
- Wählen Sie den Befehl Erstellen aus.
- Wählen Sie die Vorlage "Alle Kosten (FOCUS) + Preise " aus.
- Geben Sie ein Präfix (z. B. finops-hub) an, und wählen Sie unten "Weiter" aus.
- Wählen Sie das Abonnement- und Speicherkonto aus, das von der FinOps-Hubbereitstellung erstellt wurde.
- Legen Sie den Container auf
msexports. - Legen Sie das Verzeichnis auf eine eindeutige Zeichenfolge fest,
billingAccounts/###die den Bereich identifiziert (z. B. ). - Wählen Sie das Parquet-Format und die Snappy-Komprimierung, um die beste Leistung zu erzielen.
- Jede Kombination aus CSV und Parquet, komprimiert oder unkomprimiert, wird unterstützt, aber Snappy-Parquet wird empfohlen.
- Wählen Sie unten "Weiter" aus.
- Überprüfen und korrigieren Sie die Einstellungen nach Bedarf, und wählen Sie dann unten "Erstellen" aus.
- Wiederholen Sie die Schritte 4 bis 12 für weitere Datasets.
- Damit die Seite mit den Reservierungsempfehlungen des Berichts zur Optimierung der Tarife geladen werden kann, sind Reservierungsempfehlungen erforderlich.
Verwaltete Exporte
Verwaltete Exporte ermöglichen FinOps-Hubs das Einrichten und Verwalten von Kostenverwaltungsexporten für Sie. Um verwaltete Exporte zu aktivieren, müssen Sie Azure Data Factory Zugriff gewähren, um Daten in jedem Bereich zu lesen, den Sie überwachen möchten. Ausführliche Anweisungen finden Sie unter Konfigurieren verwalteter Exporte.
Aufnehmen aus anderen Datenquellen
Zum Aufnehmen von Daten von anderen Datenanbietern, die FOCUS unterstützen, z. B. Amazon Web Services (AWS), Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) und Tencent:
- Konfigurieren Sie ein FOCUS-Dataset von Ihrem Anbieter.
- Erstellen Sie einen Workflow zum Kopieren von Daten in den Aufnahmecontainer im FinOps-Hub-Speicherkonto.
- Dateien werden nach UTC-Kalendermonaten getrennt und sollten jeweils weniger als 2 GB groß sein, gespeichert im Parquet-Format. Snappy-Komprimierung ist optional.
- Dateien sollten im folgenden Ordnerpfad abgelegt werden:
Costs/yyyy/mm/{scope}.-
yyyystellt das vierstellige Jahr des Datasets dar. -
mmstellt den zweistelligen Monat des Datasets dar. -
{scope}stellt einen logischen, konsistenten Bezeichner für das Dataset dar. Dieser Wert kann ein beliebiger gültiger Pfad mit einem oder mehreren geschachtelten Ordnern sein.
-
- Wenn der Anbieter nicht überlappende Deltas in jedem Dataset generiert, fügen Sie einen zusätzlichen Ordner für den Tag und/oder die Stunde (
ddoderdd/hh) zwischen den Monats- und Bereichsordnern hinzu.- Ziel ist es, sicherzustellen, dass überschreibende Datasets beständig in denselben Ordnerpfad gelangen, sodass sie bei jedem Vorgang ersetzt werden. Nicht überlappende Datensätze sollten an einen neuen Ordnerpfad verschoben werden.
- Erstellen Sie eine leere
manifest.jsonDatei im selben Ordner.- Die Datenaufnahme für Data Explorer wird ausgelöst, wenn manifest.json-Dateien hinzugefügt oder aktualisiert werden.
- Wenn es irgendwelche Spalten gibt, die im aktuellen Aufnahmeprozess nicht abgedeckt sind, aktualisieren Sie die Costs_raw und Costs_final_v1_0 Tabellen, und Costs_transform_v1_0, Costs_v1_0 und Costs Funktionen entsprechend.
- Reichen Sie eine Funktionsanforderung ein, um dem Standardaufnahmecode neue Spalten hinzuzufügen und sicherzustellen, dass Anpassungen zukünftige Upgrades nicht behindern.
Optional: Auffüllen von historischen Daten
FinOps-Hubs füllen keine Daten automatisch aus. Führen Sie historische Datenexporte vom Originalanbieter durch, einschließlich aller benutzerdefinierten Datenpipelines, die zum Einspeisen von Daten in den Aufnahmespeichercontainer verwendet werden.
Für Microsoft Cost Management:
- Öffnen Sie im Azure-Portal die Kostenverwaltung.
- Wählen Sie den gewünschten Bereich aus der Bereichsauswahl am oberen Rand der Seite aus.
- Wählen Sie im Menü auf der linken Seite "Berichterstellung + Analyseexporte>" aus.
- Wählen Sie den gewünschten Export in der Liste der Exporte aus.
- Exportieren Sie immer Preise vor Kosten, um sicherzustellen, dass sie zur Verfügung stehen, um fehlende Preise im Kosten- und Nutzungsdatensatz aufzufüllen.
- Wenn die Kosten zuerst exportiert werden, führen Sie die ingestion_ExecuteETL Pipeline für die Kostendaten des Monats erneut aus, um die fehlenden Preise aufzufüllen.
- Wählen Sie "Ausgewählte Datumsangaben exportieren " aus, und geben Sie den gewünschten Monat an. Exportieren Sie immer den vollständigen Monat.
- Wiederholen Sie Schritt 5 für alle gewünschten Monate.
- Die Kostenverwaltung unterstützt nur den Export bis zu den letzten 12 Monaten aus dem Azure-Portal.
- Erwägen Sie die Verwendung von PowerShell zum Exportieren außerhalb der letzten 12 Monate.
- Wiederholen Sie die Schritte 4 bis 6 für jeden Export.
- Wiederholen Sie die Schritte 2 bis 7 für jeden Bereich.
Optional: Herstellen einer Verbindung mit Microsoft Fabric als Follower
Wenn Sie sich für die Konfiguration von FinOps-Hubs mit dem Daten-Explorer entschieden haben, aber dennoch daran interessiert sind, Daten in Microsoft Fabric verfügbar zu machen, erstellen Sie eine Verknüpfungsdatenbank (Follower) mit Fabric Eventhouses. Verknüpfungsdatenbanken sind nicht erforderlich, wenn Sie direkt in ein Fabric-Event-Hub importieren.
- Wählen Sie im Fabric-Arbeitsbereich oben auf der Seite den Befehl +Neues Element aus.
- Wählen Sie "Store data>Eventhouse" aus.
- Geben Sie einen Namen an, und wählen Sie "Erstellen" aus.
- Wählen Sie oben auf der Seite +Datenbank aus.
- Setzen Sie den Namen auf
Ingestionund den Typ auf Neue Verknüpfungsdatenbank (Follower) fest, und wählen Sie dann Weiter aus. - Legen Sie den Cluster-URI auf den FinOps-Hubcluster-URI fest und die Datenbank auf
Ingestion, und wählen Sie dann Erstellen aus. - Wiederholen Sie die Schritte 4 bis 6 für die
HubDatenbank.
Konfigurieren von Berichten und Dashboards
FinOps-Hubs verfügen über ein Daten-Explorer-Dashboard und Power BI-Berichte, die eine Verbindung mit Daten im Daten-Explorer (über KQL) oder in Azure Data Lake Storage herstellen können.
Es wird empfohlen, das Daten-Explorer-Dashboard einzurichten, auch wenn Sie Power BI aufgrund der schnellen und einfachen Einrichtung und Einblicke in aufgenommene Daten verwenden.
- Laden Sie die Dashboardvorlage herunter.
- Gewähren Sie allen Benutzern mit Viewer-Rechten (oder höher) Zugriff auf die Hub und Ingestionsdatenbanken. Erfahren Sie mehr.
- Wechseln Sie zu Azure Data Explorer-Dashboards.
- Importieren Sie ein neues Dashboard aus der Datei in Schritt 1.
- Bearbeiten Sie das Dashboard und ändern Sie die Datenquelle zu Ihrem FinOps-Hubcluster.
Weitere Informationen finden Sie unter Konfigurieren von Daten-Explorer-Dashboards.
Problembehandlung
Wenn ein bestimmter Fehler auftritt, überprüfen Sie die Liste der häufig auftretenden Fehler auf Abhilfeschritte. Wenn kein bestimmter Fehlercode auftritt oder andere Probleme auftreten, lesen Sie das Handbuch zur Problembehandlung.
Wenn Ihr Problem mit dem Handbuch zur Problembehandlung nicht behoben wurde, finden Sie weitere Hilfe unter "Support für FinOps-Toolkit-Probleme ".
Feedback senden
Lassen Sie uns mit einer kurzen Bewertung wissen, wie wir abschneiden. Wir verwenden diese Rezensionen, um FinOps-Tools und -Ressourcen zu verbessern und zu erweitern.
Wenn Sie nach etwas Spezifischem suchen, wählen Sie eine vorhandene Idee aus, oder erstellen Sie eine neue Idee. Teilen Sie Ideen mit anderen, um mehr Stimmen zu erhalten. Wir konzentrieren uns auf Ideen mit den meisten Stimmen.
Verwandte Inhalte
Verwandte FinOps-Funktionen:
Verwandte Produkte:
Verwandte Lösungen: