Überwachung und Instrumentierung von Microsoft® Azure mit dem Instana -Agenten

Nach der Installation des Host-Agenten „ Instana “ wird der Sensor „ Microsoft® Azure “ automatisch installiert. Sie können Metriken, die sich auf „ Microsoft® Azure “ beziehen, in der Benutzeroberfläche von „ Instana “ anzeigen, nachdem Sie den Sensor „ Microsoft® Azure “ wie im Abschnitt „Konfiguration“ beschrieben konfiguriert haben.

Hinweis: Um „ Azure “ in einem „ Kubernetes “- oder „ Red Hat OpenShift “-Cluster remote zu überwachen, installieren Sie den „ Instana “-Host-Agent nicht auf jedem Knoten des Clusters. Installieren Sie den Host-Agenten auf einem dedizierten Host-Rechner.

Überwachte Services

Der Host-Agent „ Instana “ überwacht die von „ Azure “ verwalteten Dienste, indem er Daten von „ Azure “-APIs erfasst. Instana Unterstützt die Überwachung der folgenden Dienste von Azure :

Unterstützte Informationen

Unterstützte Betriebssysteme

Die unterstützten Betriebssysteme des Sensors „ Microsoft® Azure “ entsprechen den Anforderungen der Host-Agenten. Weitere Informationen finden Sie unter den unterstützten Betriebssystemen für jeden Host-Agenten von „ Instana “.

Instanzagenten installieren

Informationen zum Überwachen einer virtuellen Maschine „ Azure “ oder eines Clusters „ Kubernetes “, die bzw. der unter „ Azure Kubernetes Service “ ausgeführt wird, finden Sie unter „Installieren der Host-Agenten von Instana “.

Hinweis: Je nach Anzahl der überwachten Entitäten in Ihrer Cloud-Umgebung müssen Sie den für Ihren Host-Agenten verfügbaren Speicher erhöhen. Sie können den Speicherplatz des Agenten erhöhen, indem Sie die Umgebungsvariable AGENT_MAX_MEM auf einen Wert setzen, der größer ist als der Standardwert 544 MiB.

Um beispielsweise dem Agenten 1 GB Speicher zuzuweisen, setzen Sie AGENT_MAX_MEM=1024M.

Installieren Sie den Host-Agent „ Instana “ auf einem Host innerhalb oder außerhalb Ihrer „ Azure “-Umgebung. Jeder Host-Agent kann Remote-Dienste innerhalb eines einzigen Abonnements überwachen. Um mehrere Azure -Abonnements zu überwachen, müssen Sie mehrere Host-Agenten bereitstellen.

Installieren 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 öffentlichen Cloud-Endpunkt Azure.

Um den Cloud-Endpunkt „ Azure “ anzugeben, den Sie verwenden möchten, ändern Sie die /opt/instana/agent/etc/instana/configuration.yaml Agent-Konfigurationsdatei wie folgt:

com.instana.plugin.azure:
  cloud: 'AzurePublicCloud'

Azure Cloud-Endpunkte

Je nach dem Cloud-Endpunkt von „ Azure “, den Sie verwenden möchten, können Sie aus folgenden Cloud-Konfigurationswerten auswählen: AzurePublicCloud, AzureChinaCloud, AzureUSGovernmentCloud, und AzureGermanCloud. Weitere Informationen zu den Cloud-Endpunkten von „ Azure “ finden Sie unter Cloud-Endpunkte von „ Azure “.

Stellen Sie sicher, dass Sie Zugriff auf die folgenden Netzwerkendpunkte für Ihre ausgewählte Cloud-Umgebung „ Azure “ haben:

Tabelle 1. Azure Cloud-Endpunktzuordnungen
Azure Cloud-Endpunkt Active Directory Endpunkt Managementendpunkt
AzurePublicMicrosoft Azure e öffentliche Cloud https://login.microsoftonline.com https://management.azure.com/
AzureChinaMicrosoft Chinesische nationale Cloud https://login.chinacloudapi.cn/ https://management.chinacloudapi.cn/
AzureGermanyMicrosoft Deutsche nationale Cloud https://login.microsoftonline.de/ https://management.microsoftazure.de/
AzureUsGovernment: US-Regierungs-Cloud 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 REST API -Endpunkte basierend auf Ihrer Azure -Cloud-Umgebung möglich ist. Stellen Sie außerdem sicher, dass der Firewall-Zugriff auf den Log Analytics-Endpunkt unter https://api.loganalytics.io, der hauptsächlich für Databricks erforderlich ist, unabhängig von den Cloud-Endpunkten von Azure.

Überwachung von „ Azure ” durch Instana

Instana Entdecken Sie die Ressourcen von „ Azure “ mithilfe von zwei grundlegenden Methoden:

  1. VM-Metadatendienst: Der Agent „ Instana “ fragt den Instanzmetadatendienst (IMDS) von Azure unter http://169.254.169.254/metadata/instance ab, um grundlegende Informationen über die VM-Instanz zu sammeln, auf der der Agent installiert ist.
  2. Azure Resource Manager (ARM) API : Instana verwendet ARM API, um herauszufinden, welche Azure -Ressourcen in einem Abonnement vorhanden sind.

Sie können die Client-ID, den geheimen Client-Schlüssel und die Mandanten-ID über die Konfigurationsdateien bereitstellen. Instana ruft automatisch Zugriffstoken ab, aktualisiert sie und verwendet sie, um auf die erforderlichen Azure -APIs basierend auf den erteilten Berechtigungen zuzugreifen.

Autorisierungs- URL : {activeDirectoryEndpoint} + {TenantId} + /oauth2/token

Der für jede erkannte Ressource registrierte Sensor sammelt regelmäßig Metriken und Metadaten für seine Ressource mithilfe der Monitor-APIs von Azure.

Azure API

Azure Resource Manager (ARM) API : Instana verwendet ARM API, um die Ressourcen Azure innerhalb eines Abonnements zu ermitteln und Konfigurationsdetails wie Namen, Typen, Speicherorte und Tags zu erfassen. Instana verwendet diese Details auch, um zu verstehen, wie Ressourcen miteinander verbunden sind.

ARM- API -Endpunkte verwenden in der Regel dieses Muster: https://{managementendpoint}/subscriptions/{subscriptionId}/...

Der Management-Endpunkt variiert je nach dem Cloud-Endpunkt von „ Azure “. Siehe die folgenden Beispielmuster:
  • https://management.azure.com/subscriptions/{subscriptionId}/...
  • https://management.usgovcloudapi.net/subscriptions/{subscriptionId}/...

Azure Monitor API : Instana verwendet denselben Azure Monitor API, der den ARM-Verwaltungsendpunkt gemeinsam nutzt, um Überwachungsdaten wie Metriken, Protokolle und Statusinformationen zu Azure -Ressourcen zu erfassen.

Azure Monitor- API -Endpunkte verwenden in der Regel dieses Muster: https://{managementendpoint}/subscriptions/{subscriptionId}/providers/Microsoft.Insights/...

Der Verwaltungsendpunkt variiert je nach dem Cloud-Endpunkt von „ Azure “. Siehe die folgenden Beispielmuster:
  • 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 Leserechte verfügt. Sie können einen Dienstprinzipal über das Portal „ Azure “, die CLI „ Azure “ oder „ AzurePowerShell “ erstellen.

Erstellen Sie einen Dienstprinzipal im Portal „ Azure “

Die folgenden Schritte beschreiben, 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:

  1. Öffnen Sie das Verwaltungsportal „ Azure “ und wählen Sie „Microsoft Entra ID“ aus.
  2. Kopieren Sie den Wert der Mandanten-ID. Sie benötigen diesen Wert, um den Agenten für die Verbindung mit Ihrem Azure -Konto zu konfigurieren.
  3. Wählen Sie im Navigationsbereich „App-Registrierungen“ aus.
  4. Erstellen Sie eine neue Anwendung, indem Sie oben auf der Registerkarte „App-Registrierungen“ die Option „Neue Registrierung“ auswählen.
  5. Geben Sie den Namen Ihrer Anwendung ein, belassen Sie alle anderen Einstellungen auf ihren Standardwerten und wählen Sie „Registrieren “.
  6. 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.
  7. Öffnen Sie die neu erstellte App und wählen Sie im Navigationsmenü „Zertifikate & Geheimnisse“ > „Neuer Client-Geheimcode“, um einen neuen Sicherheitsschlüssel zu erstellen.
  8. 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.
Hinweis: Sie können die Werte für Client-Geheimnisse erst nach der Erstellung anzeigen. Speichern Sie den geheimen Schlüssel unbedingt, wenn Sie ihn erstellen und bevor Sie die Seite verlassen.

Erstellen Sie einen Dienstprinzipal mithilfe der CLI „ 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 eine Rolle zuzuweisen.

  1. Installieren Sie die CLI „ Azure “.
  2. Führen Sie den az login Befehl in Ihrem Terminal aus, um sich bei Ihrem Azure -Konto anzumelden, und befolgen Sie dann die Anweisungen auf dem Bildschirm.
  3. Öffnen Sie Ihr Terminal oder Azure Cloud Shell.
  4. Führen Sie den folgenden Befehl aus, um Ihre Abonnement-ID zu ermitteln:
    az account show --query id --output tsv
  5. Führen Sie den folgenden Befehl aus, um einen Dienstprinzipal zu erstellen. Ersetzen Sie service-principal-name, role und subscription-ID durch Ihre spezifischen 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.
    • --roleDie zuzuweisende RBAC-Rolle, z. B. Mitwirkender, Leser oder Eigentümer.
    • --scopesDer Ressourcenbereich „ Azure “, auf den die Rolle angewendet werden soll, z. B. Ihr Abonnement, Ihre Ressourcengruppe oder eine bestimmte Ressource.
  6. Die Ausgabe des vorherigen Befehls enthält die Anmeldeinformationen des Dienstprinzipals. Kopieren Sie die appId Client-ID, das Passwort (Client Secret) und den Mandanten (Tenant ID) aus der Ausgabe „ JSON “ und speichern Sie diese sicher. Das Passwort wird nur einmal angezeigt und kann später nicht wieder abgerufen werden.
  7. Führen Sie den folgenden Befehl aus, um die neue Rollenzuweisung zu überprüfen. Ersetzen Sie appId durch 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 den erforderlichen Zugriff zu gewähren, befolgen Sie die Schritte in der Dokumentation „ Azure “ ( PowerShell ).

2. Gewähren Sie dem Leser die Berechtigung für Ihren Dienstprinzipal

Durch die Nutzung des Portals „ Azure “:

  1. Wählen Sie im Portal „ Azure “ die Option „Alle Dienste“ > „Allgemein“ > „Abonnements“ aus.
  2. Wählen Sie auf der Seite „Abonnements“ Ihr Abonnement aus und wählen Sie dann „Zugriffskontrolle (IAM) “.
  3. Wählen Sie „Rollenzuweisung hinzufügen ” und dann „Leser ”. Klicken Sie auf Weiter (Next).
  4. Geben Sie im Bereich „Mitglieder“ die folgenden Angaben ein:
    • Wählen Sie für „Zugriff userzuweisen“ die Option, group, oder service principal.
    • Für Mitglieder klicken Sie auf „Mitglieder auswählen “ und wählen Sie dann Ihren Dienstprinzipal aus der Liste auf der linken Seite aus.
  5. Klicken Sie auf „Weiter “ und wählen Sie dann „Überprüfen + zuweisen “.

Durch Verwendung der CLI „ Azure “:

Wenn Sie beim Erstellen des Dienstprinzipals die Rolle im Reader selben Befehl angeben, erteilt die CLI dem Dienstprinzipal automatisch Leseberechtigung:
az ad sp create-for-rbac --name "<service-principal-name>" --role "Reader" --scopes /subscriptions/{subscription-id}

Informationen zum Überprüfen der Leserrolle für einen Dienstprinzipal mithilfe des Skripts „ Python “ (optional) finden Sie im Skript „ Python “.

3. Aktivieren Sie den Sensor „ Azure ” im Agenten

Um die Überwachung von „ Azure “ zu aktivieren, konfigurieren Sie den Sensor „ Azure “ in der configuration.yaml Agentendatei. Eine minimale Konfiguration 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-Agent neu, um die neue Konfiguration zu übernehmen. Nach dem Neustart kann der Agent automatisch unterstützte Remote-Dienste für das angegebene Abonnement erkennen.

Konfiguration

Proxy-Konfiguration

Um den Host-Agent „ Instana “ für die Verwendung eines Proxys zu konfigurieren, fügen Sie die folgenden Einstellungen zur Agent-Konfiguration 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 sowohl das Feld proxy_host als auch proxy_port das Feld, damit der Agent den Datenverkehr über einen Proxy-Server leiten kann.

Nachdem Sie den Proxy konfiguriert haben, starten Sie den Instana -Agent neu, damit die Änderungen wirksam werden.

Filterung und Tagging

Der Host-Agent „ Instana “ unterstützt die Filterung von „ Azure “-Diensten. Die Filterung von Diensten und deren Instanzen basiert auf Tags und Ressourcengruppen.

Weitere Informationen zum Anwenden von Tags auf Ressourcen von „ Azure “ finden Sie unter Verwenden von Tags zum Organisieren Ihrer „ Azure “-Ressourcen und Verwaltungshierarchie.

Weitere Informationen zum Definieren von Ressourcengruppen in „ Azure “ finden Sie unter „Was ist „ Azure “ Resource Manager? “.

Wenden Sie die Filterung an, indem Sie die Host-Agent-Konfigurationsdatei „ Instana “ wie /opt/instana/agent/etc/instana/configuration.yaml 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 Filter auch auf der Ebene bestimmter Dienste anwenden. Weitere Informationen finden Sie im Abschnitt „Überwachte Dienste “ mit Details zu bestimmten Diensten.

Mehrere Serviceprinzipale

Azure Die Überwachung von API unterliegt einer Beschränkung der 12000 Anzahl der Anfragen pro Dienstprinzipal, wodurch die Anzahl der Dienste begrenzt wird, die ein einzelner Host-Agent überwachen kann. Um diese Einschränkung zu überwinden, können Sie mehrere Serviceprinzipale erstellen. Informationen zum Erstellen von Dienstprinzipien finden Sie unter Verwenden von Azure PowerShell zum Erstellen eines Dienstprinzipals mit einem Zertifikat.

Nachdem Sie die Dienstprinzipale erstellt haben, aktualisieren Sie die /opt/instana/agent/etc/instana/configuration.yaml Datei auf dem Host-Agenten „ 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"
 
Hinweis: Der Host-Agent lädt Änderungen an diesen Hauptkonfigurationen im laufenden Betrieb neu, sodass sie ohne Neustart des Host-Agenten wirksam werden.

API mit API-Management-Service filtern

Wenn Sie zu viele APIs unter einem einzigen 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 von „ API “, indem Sie einen inklusiven oder exklusiven regulären Ausdruck definieren, wie im folgenden Beispiel für die 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 reguläre Ausdrücke mit or und and Logik verwenden. Wenn Sie sowohl inclusiveApiRegex als auch exclusiveApiRegexdefinieren, priorisiert der exclusiveApiRegexHost-Agent.

Kostenberechnung für die Nutzung von Azure API

Weitere Informationen zu den Kostenberechnungen für die Nutzung von „ Azure “ ( API ) finden Sie unter „ Azure “ ( API ) Kostenberechnung.