In diesem Blogbeitrag wollen wir uns genauer ansehen, wie man Daten von Client-Systemen sammeln kann, um diese zu überwachen. Mit Endpoint Analytics bietet Microsoft eine sehr leistungsfähige Möglichkeit, Clients zu analysieren, potenzielle Probleme zu beheben oder auch Anomalien im Feld zu erkennen. Wenn du an unaggregierten und detaillierteren Daten interessiert bist, um eigene Lösungen zu erstellen, dann ist der Log Analytics Management Agent die richtige Lösung für dich. Dies ist der erste Teil einer kleinen, zweiteiligen Serie. In diesem Teil schauen wir uns an, wie dieser Dienst funktioniert und wie man ihn einrichtet, und im anderen Teil, wie du mit den Daten arbeiten kannst.

Inhaltsverzeichnis
Inhalt
- Inhalt
- Was ist der Azure Monitor Agent?
- Wie funktioniert er?
- Was sind die Voraussetzungen?
- So stellst du den Monitoring Agent bereit
- Data Collection Rule erstellen
- Ein Monitored Object erstellen
- Troubleshooting
- Weitere Ressourcen
Was ist der Azure Monitor Agent?
Der Azure Monitor Agent (AMA) sammelt Überwachungsdaten aus dem Betriebssystem einer Azure-VM oder einer physischen Maschine und liefert sie an Azure Monitor Log Analytics, wo sie von Azure Monitor und anderen Diensten wie Microsoft Sentinel und Microsoft Defender for Cloud genutzt werden können. Du kannst sowohl Leistungsdaten als auch Ereignisprotokolle oder andere Telemetriedaten sammeln.
Wie funktioniert er?
Zuerst musst du ein „Monitored Object” (MO) anlegen, das als Repräsentation des Microsoft Entra ID Tenants innerhalb des Azure Resource Manager (ARM) dient. Es ist die ARM-Entität, mit der Data Collection Rules verknüpft werden. Das MO muss nur einmal für eine beliebige Anzahl von Maschinen innerhalb eines einzelnen Microsoft Entra ID Tenants angelegt werden. Die aktuelle Einschränkung dieser Verbindung besteht darin, dass sie nur auf der Ebene des Microsoft Entra ID Tenants anwendbar ist. Das bedeutet, dass alle auf den Microsoft Entra ID Tenant angewendeten Einstellungen auch auf alle Geräte innerhalb dieses Tenants angewendet werden, auf denen der über den Client-Installer installierte Agent läuft. Agents, die als VM-Erweiterung installiert wurden, sind davon nicht betroffen. Das beigefügte Bild veranschaulicht diesen Vorgang:

Da ein MO eine Ressource auf Tenant-Ebene ist, ist der Umfang der Berechtigungen größer als der einer Subscription. Daher kann es erforderlich sein, dass ein Azure-Tenant-Administrator diesen Schritt durchführt. Dazu musst du den Microsoft Entra ID Tenant-Admin zum Azure-Tenant-Admin hochstufen. Dadurch erhält der Microsoft Entra ID Admin „Owner”-Berechtigungen auf dem Root-Scope.
Was sind die Voraussetzungen?
- Netzwerkzugriff auf die folgenden Endpunkte:
- * .global.handler.control.monitor.azure.com
*.handler.control.monitor.azure.com<log-analytics-workspace-id>.ods.opinsights.azure.com
- Microsoft Visual C++ Redistributable
- Windows-Client-Betriebssystem
- Die Maschine muss in einen Microsoft Entra ID Tenant eingebunden sein (AADj- oder Hybrid-AADj-Maschinen), um ein Device-Token zu erhalten
- Azure-Tenant-Admin-Berechtigungen
Wenn du Microsoft Entra ID Tenant-Admin bist, kannst du deine Berechtigungen mit dieser Anleitung zum Azure-Tenant-Admin hochstufen oder weiter unten mehr Informationen finden.
So stellst du den Monitoring Agent bereit
Log Analytics Workspace erstellen
- Melde dich im Azure-Portal an
- Suche nach Log Analytics und wähle den Dienst Log Analytics workspace

- Klicke auf + Create

- Wähle die Subscription und eine Resource group oder erstelle eine neue
- Gib einen Name für den Workspace ein und wähle eine Region
- Klicke auf Review + Create

- Klicke auf Create

Installation und Bereitstellung des Agents
- Lade die MSI von der folgenden URL herunter
msiexec /i AzureMonitorAgentClientSetup.msi /qn
| Parameter | Beschreibung |
|---|---|
| INSTALLDIR | Verzeichnispfad, in dem die Agent-Binärdateien installiert werden |
| DATASTOREDIR | Verzeichnispfad, in dem der Agent seine Betriebsprotokolle und Daten speichert |
| PROXYUSE | Muss auf “true” gesetzt werden, um einen Proxy zu verwenden |
| PROXYADDRESS | Auf die Proxy-Adresse setzen. PROXYUSE muss auf “true” gesetzt sein, damit dies korrekt angewendet wird |
| PROXYUSEAUTH | Auf “true” setzen, wenn der Proxy eine Authentifizierung erfordert |
| PROXYUSERNAME | Auf den Proxy-Benutzernamen setzen. PROXYUSE und PROXYUSEAUTH müssen auf “true” gesetzt sein |
| PROXYPASSWORD | Auf das Proxy-Passwort setzen. PROXYUSE und PROXYUSEAUTH müssen auf “true” gesetzt sein |
| CLOUDENV | Auf die Cloud setzen. “Azure Commercial”, “Azure China”, “Azure US Gov”, “Azure USNat” oder “Azure USSec |
- Weitere Informationen findest du hier
- Um sicherzustellen, dass die Installation abgeschlossen ist, öffne die Systemsteuerung und navigiere zu Systemsteuerung\Programme\Programme und Funktionen und prüfe, ob du den Azure Monitor Agent findest

Du kannst eine intunewin-Datei erstellen, um den Agent als Win32-App über Intune bereitzustellen. Eine Anleitung findest du unter deploy a Win32 app with Intune cmtrace.
Data Collection Rule erstellen
- Öffne den Log Analytics Workspace und wähle Agents
- Klicke auf Data Collection Rules

- Gib einen Regelnamen ein und wähle die Subscription / Resource group und die Region
- Klicke auf Next

- Klicke auf + Add resource
- Wähle die Ressourcen aus (falls du eine in der Liste hast, die du hinzufügen möchtest, z. B. eine Azure-VM) und klicke auf Apply
- Klicke auf Next

- Klicke auf + Add data source
- Wähle einen Typ und die Metriken

- Wähle Destination und wähle Azure Monitor Logs
- Wähle deinen Workspace
- Klicke auf Add data source und Next

- Klicke auf Create

Ein Monitored Object erstellen
Die Rolle “Monitored Object Contributor” zuweisen
- Erzeuge eine AssignmentGUID über diesen Link oder führe
[guid]::NewGuid()in PowerShell aus - Weise die Rolle “Monitored Object Contributor” einem Benutzer oder einer Gruppe zu. Dies musst du über den Management-API-Aufruf erledigen:
Call
PUT https://management.azure.com/providers/microsoft.insights/providers/microsoft.authorization/roleassignments/{roleAssignmentGUID}?api-version=2021-04-01-preview
Body
Trage hier die ID deines Benutzers oder deiner Gruppe ein
{
"properties":
{
"roleDefinitionId":"/providers/Microsoft.Authorization/roleDefinitions/56be40e24db14ccf93c37e44c597135b",
"principalId":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
}
}
Header
- Füge ein Azure ARM Token hinzu. Du kannst dieses Token über den Befehl Get-AzAccessToken erhalten.
Monitored Object erstellen
In diesem Schritt wird das Monitored Object speziell für den Scope des Microsoft Entra ID Tenants angelegt. Sein Zweck ist es, als Repräsentation von Client-Geräten zu dienen, die mit der Identität dieses bestimmten Microsoft Entra ID Tenants authentifiziert wurden.
- Führe den folgenden Befehl aus und ersetze den Microsoft Entra ID Tenant durch die ID deines Tenants
Call
PUT https://management.azure.com/providers/Microsoft.Insights/monitoredObjects/{AADTenantId}?api-version=2021-09-01-preview
Body
Trage hier die Location ein
{
"properties":
{
"location":"westeurope"
}
}
DCR mit dem Monitored Object verknüpfen
- Führe den folgenden Befehl aus und ersetze MOResourceId, associationName, subscriptionId, resourceGroupName, DCRName durch die korrekten Werte
Call
PUT https://management.azure.com/{MOResourceId}/providers/microsoft.insights/datacollectionruleassociations/{associationName}?api-version=2021-09-01-preview
Body
Trage hier die Location ein
{
"properties":
{
"dataCollectionRuleId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{DCRName}"
}
}
Skript
Das Skript stammt aus der offiziellen Microsoft-Dokumentation, wurde jedoch angepasst, damit es funktioniert, und vereinfacht.
- Du kannst dieses PowerShell-Skript ausführen, um den gesamten Workflow abzudecken
$TenantID = "" #Your Tenant ID
$SubscriptionID = "" #Your Subscription ID
$ResourceGroup = "" #Your resourcegroup
$associationName = "" #You can define your custom associationname, must change the association name to a unique name, if you want to associate multiple DCR to monitored object
$DCRName = "" #Your Data collection rule name
$Location = "" #Use your own loacation westeurope
$UserPrincipalId = ""
Connect-AzAccount -Tenant $TenantID
#Select the subscription
Select-AzSubscription -SubscriptionId $SubscriptionID
#Create Auth Token
$auth = Get-AzAccessToken
$AuthenticationHeader = @{
"Content-Type" = "application/json"
"Authorization" = "Bearer " + $auth.Token
}
# Elevate access for a Global Administrator
$uri = "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
$response = Invoke-RestMethod -Method POST -Uri $uri -Headers $AuthenticationHeader
#1. Assign ‘Monitored Object Contributor’ Role to the operator
$newguid = (New-Guid).Guid
$body = @"
{
"properties": {
"roleDefinitionId":"/providers/Microsoft.Authorization/roleDefinitions/56be40e24db14ccf93c37e44c597135b",
"principalId": `"$UserPrincipalId`"
}
}
"@
$requestURL = "https://management.azure.com/providers/microsoft.insights/providers/microsoft.authorization/roleassignments/$newguid`?api-version=2021-04-01-preview"
Invoke-RestMethod -Uri $requestURL -Headers $AuthenticationHeader -Method PUT -Body $body
##########################
#2. Create Monitored Object
# "location" property value under the "body" section should be the Azure region where the MO object would be stored. It should be the "same region" where you created the Data Collection Rule. This is the location of the region from where agent communications would happen.
$requestURL = "https://management.azure.com/providers/Microsoft.Insights/monitoredObjects/$TenantID`?api-version=2021-09-01-preview"
$body = @"
{
"properties":{
"location":`"$Location`"
}
}
"@
$Respond = Invoke-RestMethod -Uri $requestURL -Headers $AuthenticationHeader -Method PUT -Body $body -Verbose
$RespondID = $Respond.id
##########################
#3. Associate DCR to Monitored Object
#See reference documentation https://learn.microsoft.com/en-us/rest/api/monitor/data-collection-rule-associations/create?tabs=HTTP
$requestURL = "https://management.azure.com$RespondId/providers/microsoft.insights/datacollectionruleassociations/$associationName`?api-version=2021-09-01-preview"
$body = @"
{
"properties": {
"dataCollectionRuleId": "/subscriptions/$SubscriptionID/resourceGroups/$ResourceGroup/providers/Microsoft.Insights/dataCollectionRules/$DCRName"
}
}
"@
Invoke-RestMethod -Uri $requestURL -Headers $AuthenticationHeader -Method PUT -Body $body
#(Optional example). Associate another DCR to Monitored Object
#See reference documentation https://learn.microsoft.com/en-us/rest/api/monitor/data-collection-rule-associations/create?tabs=HTTP
$requestURL = "https://management.azure.com$RespondId/providers/microsoft.insights/datacollectionruleassociations/$associationName`?api-version=2021-09-01-preview"
$body = @"
{
"properties": {
"dataCollectionRuleId": "/subscriptions/$SubscriptionID/resourceGroups/$ResourceGroup/providers/Microsoft.Insights/dataCollectionRules/$DCRName"
}
}
"@
Invoke-RestMethod -Uri $requestURL -Headers $AuthenticationHeader -Method PUT -Body $body
#4. (Optional) Get all the associatation.
$requestURL = "https://management.azure.com$RespondId/providers/microsoft.insights/datacollectionruleassociations?api-version=2021-09-01-preview"
(Invoke-RestMethod -Uri $requestURL -Headers $AuthenticationHeader -Method get).value
Vergiss nicht, den erhöhten Zugriff auch wieder zu entfernen. Dies wird in der Microsoft-Dokumentation erklärt.
Troubleshooting
- Unter Program Files \Azure Monitor Agent findest du einen Log Connector
- Wenn du CollectAMALogs.ps1 ausführst, wird auf dem Desktop ein Ordner mit Protokollen erstellt
[…] Azure Monitor Agent to monitor Windows devices (1/2) – Setup […]