Ü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.
Ü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 :
Instrumentierte Services
Sie können die folgenden Dienste instrumentieren:
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 “.
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:
| 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:
- VM-Metadatendienst: Der Agent „ Instana “ fragt den Instanzmetadatendienst (IMDS) von Azure unter
http://169.254.169.254/metadata/instanceab, um grundlegende Informationen über die VM-Instanz zu sammeln, auf der der Agent installiert ist. - 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}/...
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/...
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:
- Öffnen Sie das Verwaltungsportal „ Azure “ und wählen Sie „Microsoft Entra ID“ aus.
- 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.
- Wählen Sie im Navigationsbereich „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“ > „Neuer Client-Geheimcode“, 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 „ 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.
- Installieren Sie die CLI „ Azure “.
- Führen Sie den
az loginBefehl in Ihrem Terminal aus, um sich bei Ihrem Azure -Konto anzumelden, und befolgen Sie dann die Anweisungen auf dem Bildschirm. - Öffnen Sie Ihr Terminal oder Azure Cloud Shell.
- 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 zu erstellen. Ersetzen Sie
service-principal-name,roleundsubscription-IDdurch 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.
- Die Ausgabe des vorherigen Befehls enthält die Anmeldeinformationen des Dienstprinzipals. Kopieren Sie die
appIdClient-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. - Führen Sie den folgenden Befehl aus, um die neue Rollenzuweisung zu überprüfen. Ersetzen Sie
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 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 “:
- Wählen Sie im Portal „ Azure “ die Option „Alle Dienste“ > „Allgemein“ > „Abonnements“ aus.
- Wählen Sie auf der Seite „Abonnements“ Ihr Abonnement aus und wählen Sie dann „Zugriffskontrolle (IAM) “.
- Wählen Sie „Rollenzuweisung hinzufügen ” und dann „Leser ”. Klicken Sie auf Weiter (Next).
- Geben Sie im Bereich „Mitglieder“ die folgenden Angaben ein:
- Wählen Sie für „Zugriff
userzuweisen“ die Option,group, oderservice 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.
- Wählen Sie für „Zugriff
- Klicken Sie auf „Weiter “ und wählen Sie dann „Überprüfen + zuweisen “.
Durch Verwendung der CLI „ Azure “:
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
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"
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.
Verfügbare Metriken für jeden Ressourcentyp
Die 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 API
Weitere Informationen zu den Kostenberechnungen für die Nutzung von „ Azure “ ( API ) finden Sie unter „ Azure “ ( API ) Kostenberechnung.