Überwachung und Instrumentierung von „ Microsoft® Azure “ mit dem „ Instana “-Agenten
Nach der Installation des Host-Agenten für „ Instana “ wird der Sensor „ Microsoft® Azure “ automatisch installiert. Nachdem Sie den Sensor „ Microsoft® Azure “ wie im Abschnitt zur Konfiguration beschrieben eingerichtet haben, können Sie in der Benutzeroberfläche von „ Instana “ Kennzahlen anzeigen, die sich auf „ Microsoft® Azure “ beziehen.
Überwachte Services
Der Host-Agent von „ Instana “ überwacht die von „ Azure “ verwalteten Dienste, indem er Daten über die APIs von „ Azure “ erfasst. Instana unterstützt die Überwachung der folgenden Dienste von Azure :
Instrumentierte Services
Sie können die folgenden Dienste nutzen:
Zusätzliche Informationen
Unterstützte Betriebssysteme
Die unterstützten Betriebssysteme des Microsoft® Azure-Sensors entsprechen den Anforderungen der Host-Agenten. Weitere Informationen finden Sie unter den unterstützten Betriebssystemen für die einzelnen Host-Agenten von „ Instana “.
Sensorausführungen und Überwachungsfunktionen
Die Sensorversion von „ Azure “ bestimmt die Funktionen zur Abonnementüberwachung:
| Sensorausführung | Support für Abonnements | Beschreibung |
|---|---|---|
| 1.2.x und früher | Einzelabonnement | Überwacht Ressourcen innerhalb eines einzelnen „ Azure “-Abonnements in einem einzelnen Mandanten |
| 1.3.x und später | Mehrere Abonnements | Überwacht Ressourcen über mehrere „ Azure “-Abonnements hinweg in einem einzigen Mandanten |
Instanzagenten installieren
Informationen zur Überwachung einer virtuellen Maschine von „ Azure “ oder eines „ Kubernetes “-Clusters, die auf „ Azure Kubernetes Service “ ausgeführt werden, finden Sie unter „Installieren der Host-Agenten für „ Instana ““.
AGENT_MAX_MEM auf einen Wert setzen, der über dem Standardwert liegt 544 MiB.Um dem Agenten beispielsweise 1 GB Speicherplatz zuzuweisen, setzen Sie AGENT_MAX_MEM=1024M.
Installieren Sie den Host-Agenten von „ Instana “ auf einem Host innerhalb oder außerhalb Ihrer „ Azure “-Umgebung. Instana unterstützt die Überwachung eines oder mehrerer „ Azure “-Abonnements innerhalb eines einzelnen Mandanten. Ein einzelner „ Instana “-Agent unterstützt sowohl die Überwachung mit einem Abonnement als auch die Überwachung mit mehreren Abonnements für Remote-Dienste von „ Azure “. Befolgen Sie für die Überwachung mit einem einzigen Abonnement die Konfigurationsanweisungen für die Überwachung mit einem einzigen Abonnement. Um mehrere „ Azure “-Abonnements zu überwachen, befolgen Sie die Konfigurationsanweisungen für die Überwachung mehrerer Abonnements.
Installation eines „ Instana “-Agenten außerhalb Ihrer „ Azure “-Umgebung
Wenn Sie den „ Instana “-Agenten außerhalb Ihrer „ Azure “-Umgebung installieren, verwendet der Agent standardmäßig den Public-Cloud-Endpunkt „ Azure “.
Um den Azure-Cloud-Endpunkt anzugeben, den Sie verwenden möchten, ändern Sie die Konfigurationsdatei des Agenten /opt/instana/agent/etc/instana/configuration.yaml wie folgt:
com.instana.plugin.azure:
cloud: 'AzurePublicCloud'
Azure Cloud-Endpunkte
Je nachdem, welchen Cloud-Endpunkt von „ Azure “ Sie verwenden möchten, können Sie aus folgenden Cloud-Konfigurationswerten wählen: AzurePublicCloud, AzureChinaCloud, AzureUSGovernmentCloud, und AzureGermanCloud. Weitere Informationen zu den Cloud-Endpunkten von „ Azure “ finden Sie unter „ Azure -Cloud-Endpunkte “.
Stellen Sie sicher, dass Sie Zugriff auf die folgenden Netzwerk-Endpunkte für Ihre ausgewählte „ Azure “-Cloud-Umgebung haben:
| Azure Cloud-Endpunkt | Active Directory Endpunkt | Managementendpunkt |
|---|---|---|
AzurePublic: Microsoft Azure Public Cloud |
https://login.microsoftonline.com |
https://management.azure.com/ |
AzureChina: Microsofts nationale Cloud für China |
https://login.chinacloudapi.cn/ |
https://management.chinacloudapi.cn/ |
AzureGermany: Microsoft Deutsche nationale Cloud |
https://login.microsoftonline.de/ |
https://management.microsoftazure.de/ |
AzureUsGovernment: Cloud der US-Regierung |
https://login.microsoftonline.us/ |
https://management.usgovcloudapi.net/ |
Um die externe Überwachung von „ Azure “-Diensten zu ermöglichen, konfigurieren Sie Ihre Firewall so, dass der Zugriff auf die oben genannten Endpunkte unter REST API entsprechend Ihrer „ Azure “-Cloud-Umgebung zugelassen wird. Stellen Sie außerdem sicher, dass der Firewall-Zugriff auf den Log Analytics-Endpunkt unter erlaubt https://api.loganalytics.io ist; dies ist vor allem für Databricks erforderlich, unabhängig von den Cloud-Endpunkten von Azure.
Überwachung von „ Azure “ bei Instana
Instana Entdecken Sie die Ressourcen von „ Azure “ mithilfe von zwei Hauptmethoden:
- VM Metadatendienst: Der Agent „ Instana “ fragt den Instance Metadata Service (IMDS) von „ Azure “ unter ab, um grundlegende Informationen über die
http://169.254.169.254/metadata/instance„ VM “-Instanz zu erfassen, auf der der Agent installiert ist. - Azure Resource Manager (ARM) „ API “: Instana nutzt die ARM-Schnittstelle API, um festzustellen, welche Ressourcen unter Azure in einem Abonnement vorhanden sind.
Sie können die Client-ID, das Client-Geheimnis und die Mandanten-ID über die Konfigurationsdateien angeben. Instana ruft Zugriffstoken automatisch ab, aktualisiert sie und nutzt sie, um entsprechend den erteilten Berechtigungen auf die erforderlichen APIs von Azure zuzugreifen.
Autorisierungs- URL : {activeDirectoryEndpoint} + {TenantId} + /oauth2/token
Der für jede erkannte Ressource registrierte Sensor erfasst in regelmäßigen Abständen Metriken und Metadaten für diese Ressource mithilfe der „ Azure -Monitor“-APIs.
Azure API
Azure Resource Manager (ARM) API : Instana nutzt ARM API, um die Ressourcen von Azure innerhalb eines Abonnements zu ermitteln und Konfigurationsdetails wie Namen, Typen, Standorte und Tags zu erfassen. Instana nutzt diese Angaben auch, um zu verstehen, wie Ressourcen miteinander verknüpft sind.
ARM- API -Endpunkte verwenden in der Regel dieses Muster: https://{managementendpoint}/subscriptions/{subscriptionId}/...
https://management.azure.com/subscriptions/{subscriptionId}/...https://management.usgovcloudapi.net/subscriptions/{subscriptionId}/...
Azure Monitor API : Instana nutzt denselben Azure -Monitor API, der den ARM-Verwaltungsendpunkt gemeinsam nutzt, um Überwachungsdaten wie Metriken, Protokolle und Zustandsinformationen zu Azure -Ressourcen zu erfassen.
Azure Endpunkte für die Überwachung von „ API “ verwenden in der Regel dieses Muster: https://{managementendpoint}/subscriptions/{subscriptionId}/providers/Microsoft.Insights/...
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Insights/...https://management.usgovcloudapi.net/subscriptions/{subscriptionId}/providers/Microsoft.Insights/...
Serviceprinzipal
1. Dienstprinzipal erstellen
Um die Überwachung von „ Azure “ zu aktivieren, konfigurieren Sie den Host-Agenten mit einem Dienstprinzipal, der mindestens über Leseberechtigungen verfügt. Sie können einen Dienstprinzipal mithilfe des Azure Portals, Azure CLI oder Azure PowerShell erstellen.
Erstellen Sie einen Dienstprinzipal im Portal „ Azure “
In den folgenden Schritten wird beschrieben, wie Sie im Portal „ Azure “ ein Dienstprinzipalkonto mit Lesezugriff auf Ihre Ressourcen erstellen.
Erstellen Sie einen Dienstprinzipal, indem Sie eine Anwendung im Portal „ Azure “ registrieren:
- Öffnen Sie das Azure Management Portal und wählen Sie Microsoft Entra ID.
- Kopieren Sie den Wert der Mandanten-ID. Sie benötigen diesen Wert, um den Agenten so zu konfigurieren, dass er eine Verbindung zu Ihrem „ Azure “-Konto herstellt.
- Wählen Sie im Navigationsfenster App-Registrierungen aus.
- Erstellen Sie eine neue Anwendung, indem Sie oben auf der Registerkarte „App-Registrierungen“ die Option „Neue Registrierung“ auswählen.
- Geben Sie den Namen Ihrer Anwendung ein, belassen Sie alle anderen Einstellungen auf ihren Standardwerten und wählen Sie „Registrieren “.
- Kopieren Sie den Wert der Anwendungs-ID (Client-ID). Sie benötigen diesen Wert, um die Dienstprinzipal-ID zu konfigurieren, die der Agent für die Verbindung mit dem Konto „ Azure “ verwendet.
- Öffnen Sie die neu erstellte App und wählen Sie im Navigationsmenü „Zertifikate & Geheimnisse“ > „Neues Client-Geheimnis“, um einen neuen Sicherheitsschlüssel zu erstellen.
- Kopieren Sie den Wert des neuen Schlüssels und speichern Sie ihn. Sie benötigen diesen Wert, um das Service-Principal-Secret zu konfigurieren, das der Agent für die Verbindung mit Ihrem „ Azure “-Konto verwendet.
Erstellen Sie einen Dienstprinzipal mithilfe der CLI von „ Azure “
Sie können die Befehlszeilenschnittstelle (CLI) von „ Azure “ verwenden – eine schnelle und einfache Methode, um mit einem einzigen Befehl einen Dienstprinzipal zu erstellen und ihm eine Rolle zuzuweisen.
- Installieren Sie die CLI von „ Azure “.
- Führen Sie den
az loginBefehl in Ihrem Terminal aus, um sich bei Ihrem „ Azure “-Konto anzumelden, und befolgen Sie anschließend die Anweisungen auf dem Bildschirm. - Öffnen Sie Ihr Terminal oder rufen Sie Azure Cloud Shell auf.
- Führen Sie den folgenden Befehl aus, um Ihre Abonnement-ID zu ermitteln:
az account show --query id --output tsv - Führen Sie den folgenden Befehl aus, um einen Dienstprinzipal anzulegen. Ersetzen Sie
service-principal-name,role, undsubscription-IDdurch Ihre eigenen Werte.az ad sp create-for-rbac --name "<service-principal-name>" --role "<role>" --scopes "/subscriptions/<subscription-id>"--name: Ein eindeutiger Name für Ihren Dienstprinzipal.--role: Die zuzuweisende RBAC-Rolle, z. B. „Mitwirkender“, „Leser“ oder „Eigentümer“.--scopes: Der Ressourcenbereich „ Azure “, auf den die Rolle angewendet werden soll, z. B. Ihr Abonnement, Ihre Ressourcengruppe oder eine bestimmte Ressource.
- Die Ausgabe des vorangegangenen Befehls enthält die Anmeldedaten des Dienstprinzipals. Kopieren Sie die
appId(Client-ID), das Passwort (Client-Secret) und den Mandanten (Mandanten-ID) aus der Ausgabe von „ JSON “ und bewahren Sie diese sicher auf. Das Passwort wird nur einmal angezeigt und kann später nicht mehr abgerufen werden. - Führen Sie den folgenden Befehl aus, um die neue Rollenzuweisung zu überprüfen. Ersetzen Sie das
appIddurch Ihre Client-ID:az role assignment list --assignee "<appId>"
Erstellen eines Dienstprinzipals mithilfe von Azure PowerShell
Um einen Dienstprinzipal mithilfe von Azure PowerShell zu erstellen und die erforderlichen Zugriffsrechte zu gewähren, befolgen Sie die Schritte in der Dokumentation unter Azure PowerShell.
2. Erteilen Sie dem Leser die Berechtigung für Ihren Dienstprinzipal
Durch die Nutzung des Portals „ Azure “:
- Wählen Sie im Portal „ Azure “ die Option „Alle Dienste “ > „Allgemein“ > „Abonnements “.
- Wählen Sie auf der Seite Abonnements Ihr Abonnement aus und wählen Sie dann Zugangskontrolle (IAM).
- Wählen Sie „Rollenzuweisung hinzufügen “ und wählen Sie „Leser “. Klicken Sie auf Weiter (Next).
- Geben Sie im Bereich „Mitglieder “ die folgenden Angaben ein:
- Wählen Sie für Zugriff zuweisen,
user,groupoderservice principal. - Wenn Sie „Mitglieder“ auswählen, klicken Sie auf „Mitglieder auswählen “ und wählen Sie dann Ihren Dienstprinzipal aus der Liste auf der linken Seite aus.
- Wählen Sie für Zugriff zuweisen,
- Klicken Sie auf Weiter, und wählen Sie dann Überprüfen + Zuweisen.
Mit der Azure -Befehlszeilenschnittstelle:
Reader selben Befehl angeben, erteilt die CLI dem Dienstprinzipal automatisch Leseberechtigungen:az ad sp create-for-rbac --name "<service-principal-name>" --role "Reader" --scopes /subscriptions/{subscription-id}
Informationen zur Überprüfung der Leserolle für einen Dienstprinzipal mithilfe des Skripts „ Python “ (optional) finden Sie im Skript „ Python “.
3. Aktivieren Sie den Sensor „ Azure “ im Agenten
configuration.yaml Agent-Datei. Eine minimale Konfiguration zur Überwachung eines einzelnen Abonnements sieht wie im folgenden Beispiel aus:com.instana.plugin.azure:
enabled: true
subscription: "Your-Subscription-Id"
tenant: "Your-Tenant-Id"
principals:
- id: "Your-Service-Principal-Account-Id"
secret: "Your-Service-Principal-Secret"
Starten Sie den Host-Agenten neu, um die neue Konfiguration zu übernehmen. Nach dem Neustart kann der Agent automatisch unterstützte Remote-Dienste im angegebenen Abonnement erkennen.
Azure Resource Manager (ARM) nutzt ein auf einem Token-Bucket-Modell basierendes Drosselungsverfahren, das kurze Anforderungsspitzen (beispielsweise 250 Lesevorgänge) bei einer konstanten Auffüllrate (25 Anfragen pro Sekunde) zulässt. Die Überwachung von „ Azure “ in Instana erfasst Metriken und Ressourcendaten über alle Abonnements hinweg, was insbesondere in großen Umgebungen zu einer hohen Anzahl von API -Anfragen führen kann. Um diese Einschränkung zu überwinden, können Sie mehrere Serviceprinzipale erstellen. Anweisungen zum Erstellen von Dienstprinzipalen finden Sie unter „Verwenden von Azure PowerShell zum Erstellen eines Dienstprinzips mit einem Zertifikat “.
Nachdem Sie die Dienstprinzipale erstellt haben, aktualisieren Sie die /opt/instana/agent/etc/instana/configuration.yaml Datei auf dem Host-Agenten von „ Instana “ wie folgt:
com.instana.plugin.azure:
enabled: true
subscription: "Your-Subscription-Id"
tenant: "Your-Tenant-Id"
principals:
- id: "Your-Service-Principal-Account-Id-1"
secret: "Your-Base64-encoded-Service-Principal-Secret-1"
- id: "Your-Service-Principal-Account-Id-2"
secret: "Your-Base64-encoded-Service-Principal-Secret-2"
Konfiguration
Proxy-Konfiguration
Um den Host-Agenten von „ Instana “ für die Verwendung eines Proxys zu konfigurieren, fügen Sie der Agentenkonfiguration die folgenden Einstellungen hinzu:
com.instana.plugin.azure:
proxy_host: 'example.com' # proxy host name or ip address
proxy_port: 3128 # proxy port
proxy_username: 'username' # OPTIONAL: proxy username
proxy_password: 'password' # OPTIONAL: proxy password
Definieren Sie die beiden Felder proxy_host und proxy_port, damit der Agent den Datenverkehr über einen Proxyserver leiten kann.
Nachdem Sie den Proxy konfiguriert haben, starten Sie den „ Instana “-Agenten neu, damit die Änderungen wirksam werden.
Filterung und Tagging
Der Host-Agent von „ Instana “ unterstützt die Filterung von „ Azure “-Diensten. Die Filterung der Dienste und ihrer Instanzen basiert auf Tags und Ressourcengruppen.
Weitere Informationen zum Hinzufügen von Tags zu Ressourcen in „ Azure “ finden Sie unter „Verwenden von Tags zum Organisieren Ihrer Ressourcen und Verwaltungshierarchie in „ Azure ““.
Weitere Informationen zum Definieren von Ressourcengruppen in „ Azure “ finden Sie unter „Was ist „ Azure “? Resource Manager “.
Wenden Sie die Filterung an, indem Sie die Konfigurationsdatei des Host-Agenten unter „ Instana/opt/instana/agent/etc/instana/configuration.yaml “ wie folgt ändern:
com.instana.plugin.azure:
# Comma separated list of tags in key:value format
include_tags:
# Comma separated list of tags in key:value format
exclude_tags:
# Comma separated list of resource groups
include_resource_groups:
# Comma separated list of resource groups
exclude_resource_groups:
Sie können die Filterung auch auf der Ebene bestimmter Dienste anwenden. Weitere Informationen zu den einzelnen Diensten finden Sie im Abschnitt Überwachte Dienste.
API mit API-Management-Service filtern
Wenn Sie zu viele APIs unter einem API Management-Dienst haben, kann es schwierig sein, die Daten effektiv zu sammeln und zu analysieren. Um sich auf wichtige APIs zu konzentrieren, konfigurieren Sie die Filterung unter „ API “, indem Sie einen inklusiven oder exklusiven regulären Ausdruck definieren, wie im folgenden Beispiel in der Datei „ YAML “ gezeigt:
com.instana.plugin.azure.apimanagement:
monitorApiList:
- serviceName: 'robotShopApiGateway'
#inclusiveApiRegex: '^(API name 1|API name 2)$'
exclusiveApiRegex: '^(API name 1|API name 2)$'
Wie im vorangegangenen Beispiel gezeigt, können Sie komplexe Regex-Ausdrücke mit or und and Logik verwenden. Wenn Sie sowohl inclusiveApiRegex als auch exclusiveApiRegex definieren, gibt der Host-Agent exclusiveApiRegex den Vorrang.
Um eine sehr große Anzahl von Ressourcen zu überwachen, können Sie entweder mehrere Abonnements pro Agent konfigurieren oder mehrere Agenten bereitstellen, von denen jeder über ein einzelnes Abonnement verfügt. Stellen Sie in beiden Fällen sicher, dass Abonnements nicht von mehreren Agenten gemeinsam genutzt werden und sich gegenseitig ausschließen.
Konfigurieren der Überwachung mehrerer Abonnements in „ Azure “ (öffentliche Vorschau)
Instana unterstützt die Überwachung mehrerer „ Azure “-Abonnements innerhalb desselben Mandanten mithilfe eines einzigen Host-Agenten. Diese Funktion bietet einen umfassenden Überblick über Ihre gesamte „ Azure “-Infrastruktur, ohne dass für jedes Abonnement separate Agenten erforderlich sind.
Voraussetzungen
- Alle Abonnements müssen zum selben „ Azure “-Mandanten gehören.
- Für jedes Abonnement ist mindestens ein Dienstprinzipal mit Berechtigungen für die Rolle „Reader“ erforderlich.
Konfiguration für mehrere Abonnements
Um mehrere „ Azure “-Abonnements zu überwachen, konfigurieren Sie den Host-Agenten „ Instana “ mit den Angaben zum Abonnement und zum Dienstprinzipal in der /opt/instana/agent/etc/instana/configuration.yaml Datei:
com.instana.plugin.azure:
enabled: true
tenant: 'Your-Tenant-Id'
subscriptions:
- id: 'Subscription-Id-1'
principals:
- id: 'Service-Principal-Client-Id-1'
secret: 'Service-Principal-Client-Secret-1'
- id: 'Service-Principal-Client-Id-2'
secret: 'Service-Principal-Client-Secret-2'
- id: 'Subscription-Id-2'
principals:
- id: 'Service-Principal-Client-Id-3'
secret: 'Service-Principal-Client-Secret-3'
- id: 'Service-Principal-Client-Id-4'
secret: 'Service-Principal-Client-Secret-4'
Für jedes Abonnement können mehrere Dienstprinzipale konfiguriert werden, um die Last von „ API “ zu verteilen.
Bewährte Verfahren für die Überwachung mehrerer Abonnements
- Planung der Service-Principals : Erstellen Sie mindestens 2–3 Service-Principals pro Abonnement, um eine Drosselung bei der Überwachung einer großen Anzahl von Ressourcen zu vermeiden.
- Ressourcenverteilung : Wenn Sie eine große Anzahl von Ressourcen überwachen, sollten Sie in Erwägung ziehen, diese auf mehrere Abonnements und verschiedene Regionen zu verteilen, wie in der Dokumentation zu „ Azure “ beschrieben.
- Erforderliche Berechtigungen : Stellen Sie sicher, dass jede Dienstinstanz mindestens über die Rolle „Leser“ für das Abonnement verfügt. Dienstprinzipale ohne die erforderlichen Berechtigungen werden bei der Konfiguration des „ API “-Clients übersprungen.
Anmerkungen zur Dimensionierung von Agenten und zur Skalierbarkeit der Ressourcen bei der Überwachung mehrerer Abonnements
Die folgenden Hinweise geben einen Überblick über die validierten Leistungsgrenzen des „ Instana “-Agenten bei der Überwachung synthetischer Ressourcen unter Azure. Diese Ergebnisse basieren auf Belastungstests unter Ubuntu 24.04, mit denen die sichere Grenze für einen stabilen Betrieb ermittelt wurde.
Durch die Erhöhung der Maschinenressourcen und der Heap-Größe von „ Java “ lassen sich größere Entitätszahlen erreichen. Beachten Sie jedoch, dass eine Skalierung über diese Grenzen hinaus die Häufigkeit von Fehlern vom Typ „ HTTP 429 (Too Many Requests)“ von Azure Resource Manager API erhöhen kann, insbesondere bei bestimmten Ressourcentypen wie Speicher und Load Balancer.
Validierte Ergebnisse der Belastungsprüfung
Die folgende Tabelle zeigt die stabilen Schwellenwerte, die während der Tests ermittelt wurden. Das Überschreiten dieser Schwellenwerte ohne eine entsprechende Erhöhung des Heap-Speichers kann dazu führen, dass java.lang.OutOfMemoryError.
| Azure VM Größe | Hardware-Spezifikationen | Agent Max Heap (INSTANA_AGENT_MAX_MEM) |
Überwachte Ressourcen von „ Azure “ | Pro Abonnement verwendete Dienstprinzipale |
|---|---|---|---|---|
| Standard- D4ds_v6 | 4 vCPU, 16 GiB RAM | 2048 MB | 3.000 | 3 |
| Standard- D8s_v6 | 8 vCPU, 32 GiB RAM | 2048 MB | 7.000 | 4 |
Skalierbarkeit und Einschränkungen bei der „ API “
Azure API Drosselung (429-Fehler)
Zwar lässt sich der Agent „ Instana “ technisch gesehen durch eine Erhöhung der Maschinengröße und der Heap-Zuweisung skalieren, um mehr Ressourcen zu überwachen, doch das Portal „ Azure “ ( API ) setzt hier eigene Grenzen.
- Eine Überwachung mit hoher Frequenz erhöht die Wahrscheinlichkeit, dass von Azure 429-Fehlermeldungen empfangen werden.
- Ressourcentypen wie Microsoft.Storage/storageAccounts sind besonders anfällig für diese Beschränkungen.
- Häufig auftretende 429-Fehler können zu Lücken bei der Erfassung von Kennzahlen und zu einer verzögerten Erkennung neuer Ressourcen führen.
Verfügbare Kennzahlen für jeden Ressourcentyp
Eine Liste der unterstützten Metriken für die verschiedenen Ressourcentypen finden Sie in der offiziellen Dokumentation zu „ Azure “.
Kostenberechnung für die Nutzung von „ Azure “ und „ API “
Weitere Informationen zur Berechnung der Nutzungskosten für „ Azure “ ( API ) finden Sie unter Azure API.