Überwachen von VMs mit Azure Monitor: Sammeln von Daten

Dieser Artikel ist Teil des Szenarios Überwachen von VMs und der zugehörigen Workloads in Azure Monitor. Es wird beschrieben, wie Sie die Sammlung von Daten konfigurieren, nachdem Sie den Azure Monitor-Agent auf Ihren virtuellen Azure- und Hybridcomputern in Azure Monitor bereitgestellt haben.

Dieser Artikel enthält einen Leitfaden zum Sammeln der gängigsten Telemetrietypen von VMs. Die genaue Konfiguration, die Sie auswählen, hängt von den Workloads ab, die Sie auf Ihren Computern ausführen. In jedem Abschnitt sind Beispielwarnungen für die Protokollsuche enthalten, die Sie mit diesen Daten verwenden können.

Hinweis

In diesem Szenario wird beschrieben, wie Sie die vollständige Überwachung Ihrer Azure- und Hybrid-VM-Umgebung implementieren. Informationen zum Einstieg in die Überwachung Ihres ersten virtuellen Azure-Computers finden Sie unter Überwachen virtueller Azure-Computer.

Regeln für die Datensammlung

Die Datensammlung vom Azure Monitor-Agent wird durch eine oder mehrere Datensammlungsregeln (DCR) definiert, die in Ihrem Azure-Abonnement gespeichert und Ihren VMs zugeordnet sind.

Für VMs definieren DCRs Daten wie Ereignisse und Leistungsindikatoren zum Sammeln und geben die Log Analytics-Arbeitsbereiche an, an die Daten gesendet werden sollen. Die DCR kann auch Transformationen verwenden, um unerwünschte Daten herauszufiltern und berechnete Spalten hinzuzufügen. Ein einzelner Computer kann mehreren DCRs zugeordnet werden, und eine einzelne DCR kann mehreren Computern zugeordnet werden. DCRs werden an alle Computer bereitgestellt, denen sie zugeordnet sind, wo sie der Azure Monitor-Agent verarbeitet.

Datensammlungsregeln anzeigen

Sie können die DCRs in Ihrem Azure-Abonnement unter Datensammlungsregeln im Menü Überwachen im Azure-Portal anzeigen. DCRs unterstützen andere Datensammlungsszenarien in Azure Monitor, sodass nicht alle Ihre DCRs unbedingt für VMs gelten.

Screenshot von DCRs im Azure-Portal.

Erstellen von Datensammlungsregeln

Je nach Datensammlungsszenario gibt es mehrere Methoden zum Erstellen von DCRs. In einigen Fällen führt Sie das Azure-Portal durch die Konfiguration. In anderen Szenarien müssen Sie eine DCR direkt bearbeiten. Wenn Sie VM-Erkenntnisse konfigurieren, wird automatisch eine vorkonfigurierte DCR für Sie erstellt. In den folgenden Abschnitten werden allgemeine zu sammelnde Daten und die Konfiguration der Datensammlung beschrieben.

In einigen Fällen müssen Sie möglicherweise eine vorhandene DCR bearbeiten, um Funktionen hinzuzufügen. Sie können beispielsweise das Azure-Portal verwenden, um eine DCR zu erstellen, der Windows- oder Syslog-Ereignisse sammelt. Anschließend sollten Sie dieser DCR eine Transformation hinzufügen, um Spalten in den Ereignissen herauszufiltern, die Sie nicht sammeln möchten.

Mit zunehmender Reife und Komplexität Ihrer Umgebung sollten Sie eine Strategie zur Organisation Ihrer DCRs implementieren, um deren Verwaltung zu unterstützen. Den Leitfaden zu verschiedenen Strategien finden Sie unter Bewährte Methoden für die Erstellung und Verwaltung von Datensammlungsregeln in Azure Monitor.

Kostenkontrolle

Da Ihre Azure Monitor-Kosten davon abhängen, wie viele Daten Sie sammeln, sollten Sie sicherstellen, dass Sie nicht mehr sammeln, als Sie zur Erfüllung Ihrer Überwachungsanforderungen benötigen. Ihre Konfiguration ist ein Gleichgewicht zwischen Ihrem Budget und dem gewünschten Einblick in den Betrieb Ihrer VMs.

Tipp

Strategien zum Reduzieren Ihrer Azure Monitor-Kosten finden Sie unter Kostenoptimierung und Azure Monitor.

Ein typischer virtueller Computer generiert zwischen 1 GB und 3 GB Daten pro Monat. Diese Datengröße hängt von der Konfiguration des Computers, den darauf ausgeführten Workloads und der Konfiguration Ihrer DCRs ab. Bevor Sie die Datensammlung in Ihrer gesamten VM-Umgebung konfigurieren, sollten Sie mit der Sammlung auf einigen repräsentativen Computern beginnen, um Ihre erwarteten Kosten bei der Bereitstellung in Ihrer gesamten Umgebung besser vorhersagen zu können. Verwenden Sie Log Analytics-Arbeitsbereichserkenntnisse oder Protokollabfragen in Datenvolumen nach Computer, um die Menge der abrechenbaren Daten zu bestimmen, die für jeden Computer gesammelt werden, und passen Sie sie entsprechend an.

Bewerten Sie die gesammelten Daten, und filtern Sie alle Daten heraus, die die folgenden Kriterien erfüllen, um Ihre Kosten zu senken. Jede Datenquelle, die Sie sammeln, verfügt möglicherweise über eine andere Methode zum Herausfiltern unerwünschter Daten. Ausführliche Informationen zu den einzelnen gängigen Datenquellen finden Sie in den Abschnitten unten.

  • Wird nicht für Warnungen verwendet.
  • Kein bekannter forensischer oder diagnostischer Wert.
  • Von den Aufsichtsbehörden nicht gefordert.
  • Wird nicht in Dashboards oder Arbeitsmappen verwendet.

Sie können auch Transformationen verwenden, um genauere Filter zu implementieren und auch Daten aus Spalten zu filtern, die nur geringen Wert bieten. Beispielsweise könnten Sie ein Windows-Ereignis haben, das für Warnungen nützlich ist, das aber Spalten mit redundanten oder übermäßigen Daten enthält. Sie können eine Transformation erstellen, mit der das Ereignis gesammelt werden kann, die aber diese übermäßigen Daten entfernt.

Filtern Sie Daten so weit wie möglich, bevor sie an Azure Monitor gesendet werden, um potenzielle Kosten für das Filtern zu vieler Daten mithilfe von Transformationen zu vermeiden. Verwenden Sie Transformationen zum Filtern von Datensätzen mit komplexer Logik und zum Filtern von Spalten mit Daten, die Sie nicht benötigen.

Standard-Datensammlung

Azure Monitor führt automatisch die folgende Datensammlung aus, ohne dass eine andere Konfiguration erforderlich ist.

Plattformmetriken

Plattformmetriken für Azure-VMs umfassen wichtige Hostmetriken wie CPU-, Netzwerk- und Datenträgerauslastung. Dabei kann es sich um die Folgenden handeln:

Aktivitätsprotokoll

Das Aktivitätsprotokoll wird automatisch erfasst. Es umfasst die zuletzt durchgeführte Aktivität des Computers, z. B. Konfigurationsänderungen, und die Zeitpunkte, an denen der Computer angehalten und gestartet wurde. Sie können die Plattformmetriken und das Aktivitätsprotokoll anzeigen, die für jeden VM-Host im Azure-Portal gesammelt wurden.

Sie können das Aktivitätsprotokoll für einen einzelnen Computer oder für alle Ressourcen in einem Abonnement anzeigen. Erstellen Sie eine Diagnoseeinstellung, um diese Daten an denselben Log Analytics-Arbeitsbereich zu senden, der vom Azure Monitor-Agent verwendet wird, um sie mit den anderen für die VM erfassten Überwachungsdaten zu analysieren. Es entstehen keine Kosten für die Erfassung oder Aufbewahrung von Aktivitätsprotokolldaten.

VM-Verfügbarkeitsinformationen in Azure Resource Graph

Mit Azure Resource Graph können Sie dieselbe Kusto-Abfragesprache zu nutzen, die in Protokollabfragen verwendet wird, um Ihre Azure-Ressourcen im großen Stil mit komplexem Filtern, Gruppieren und Sortieren nach Ressourceneigenschaften abzufragen. Sie können VM-Integritätsanmerkungen für Resource Graph verwenden, um eine detaillierte Fehlerzuordnung und Ausfallzeitanalyse zu ermöglichen.

Einzelheiten dazu, welche Daten gesammelt und wie sie angezeigt werden, finden Sie unter Überwachen von VMs mit Azure Monitor: Analysieren von Überwachungsdaten.

VM Insights

Wenn Sie VM-Erkenntnisse aktivieren, wird eine DCR mit dem MSVMI-Präfix erstellt, die die folgenden Informationen erfasst. Sie können dieselbe DCR mit anderen Computern verwenden, anstatt eine neue DCR für jede VM zu erstellen.

  • Allgemeine Leistungsindikatoren für das Clientbetriebssystem werden an die Tabelle InsightsMetrics im Log Analytics-Arbeitsbereich gesendet. Zählernamen werden so normalisiert, dass sie unabhängig vom Betriebssystemtyp denselben allgemeinen Namen verwenden.

  • Wenn Sie die zu erfassenden Prozesse und Abhängigkeiten angegeben haben, werden die folgenden Tabellen aufgefüllt:

    • VMBoundPort: Datenverkehr für offene Serverports auf dem Computer
    • VMComputer: Bestandsdaten für den Computer
    • VMConnection: Datenverkehr für eingehende und ausgehende Verbindungen zum und vom Computer
    • VMProcess: Prozesse, die auf dem Computer ausgeführt werden

VM-Erkenntnisse ermöglichen standardmäßig keine Sammlung von Prozessen und Abhängigkeiten, um Kosten für die Datenerfassung zu sparen. Diese Daten sind für das Zuordnungsfeature erforderlich und stellen auch den Abhängigkeits-Agent auf dem Computer bereit. Aktivieren Sie diese Sammlung, wenn Sie dieses Feature verwenden möchten.

Sammeln von Windows- und Syslog-Ereignissen

Das Betriebssystem und die Anwendungen auf VMs schreiben oft in das Windows-Ereignisprotokoll oder Syslog. Sie können eine Warnung erstellen, sobald ein einzelnes Ereignis gefunden wird, oder auf eine Reihe übereinstimmender Ereignisse innerhalb eines bestimmten Zeitfensters warten. Sie können auch Ereignisse für eine spätere Analyse sammeln, z. B. um bestimmte Trends im Laufe der Zeit zu identifizieren, oder um nach dem Auftreten eines Problems eine Fehlerbehebung durchzuführen.

Anleitungen zum Erstellen eines DCR zum Sammeln von Windows- und Syslog-Ereignissen finden Sie unter Sammeln von Daten mit Azure Monitor Agent. Sie können mithilfe der gängigsten Windows-Ereignisprotokolle und Syslog-Funktionen, die nach Ereignisebene filtern, schnell eine DCR erstellen.

Für eine genauere Filterung nach Kriterien wie der Ereignis-ID können Sie mithilfe von XPath-Abfragen einen benutzerdefinierten Filter erstellen. Sie können die gesammelten Daten weiter filtern, indem Sie die DCR bearbeiten, um eine Transformation hinzuzufügen.

Verwenden Sie den folgenden Leitfaden als empfohlenen Startpunkt für die Ereignissammlung. Ändern Sie die DCR-Einstellungen, um nicht benötigte Ereignisse zu filtern und je nach Ihren Anforderungen andere Ereignisse hinzuzufügen.

`Source` Strategie
Windows-Ereignisse Sammeln Sie mindestens die Ereignisse Kritisch, Fehler und Warnung für die System- und Anwendungsprotokolle zur Unterstützung von Warnmeldungen. Fügen Sie Informationsereignisse hinzu, um Trends zu analysieren und die Problembehandlung zu unterstützen. Ausführliche Ereignisse sind selten nützlich und sollten normalerweise nicht gesammelt werden.
Syslog-Ereignisse Sammeln Sie mindestens LOG_WARNING-Ereignisse für jede Einrichtung zur Unterstützung von Warnmeldungen. Fügen Sie Informationsereignisse hinzu, um Trends zu analysieren und die Problembehandlung zu unterstützen. LOG_DEBUG-Ereignisse sind selten nützlich und sollten normalerweise nicht gesammelt werden.

Beispiele für Protokollabfragen: Windows-Ereignisse

Abfrage BESCHREIBUNG
Event Alle Windows-Ereignisse
Event | where EventLevelName == "Error" Alle Windows-Ereignisse mit dem Schweregrad „error“
Event | summarize count() by Source Anzahl von Windows-Ereignissen nach Quelle
Event | where EventLevelName == "Error" | summarize count() by Source Anzahl von Windows-Fehlerereignissen nach Quelle

Beispiele für Protokollabfragen: Syslog-Ereignisse

Abfrage BESCHREIBUNG
Syslog Alle Syslog-Datensätze
Syslog | where SeverityLevel == "error" Alle Syslog-Datensätze mit Fehlerschweregrad
Syslog | summarize AggregatedValue = count() by Computer Anzahl der Syslog-Datensätze je Computer
Syslog | summarize AggregatedValue = count() by Facility Anzahl der Syslog-Datensätze je Einrichtung

Sammeln von Leistungsindikatoren

Leistungsdaten vom Client können entweder an Azure Monitor-Metriken oder Azure Monitor-Protokolle gesendet werden, und Sie senden sie normalerweise an beide Ziele. Wenn Sie VM-Erkenntnisse aktiviert haben, wird ein allgemeiner Satz von Leistungsindikatoren in Protokollen gesammelt, um die Leistungsdiagramme zu unterstützen. Sie können diesen Satz von Zählern nicht ändern, aber Sie können andere DCRs erstellen, um andere Zähler zu sammeln und sie an andere Ziele zu senden.

Es gibt mehrere Gründe, warum Sie eine DCR zum Sammeln der Gastleistung erstellen möchten:

  • Sie verwenden keine VM-Erkenntnisse, sodass noch keine Client-Leistungsdaten gesammelt werden.
  • Sammeln Sie andere Leistungsindikatoren, die VM-Erkenntnisse nicht erfasst.
  • Sammeln Sie Leistungsindikatoren aus anderen Workloads, die auf Ihrem Client ausgeführt werden.
  • Senden Sie Leistungsdaten an Azure Monitor-Metriken, wo Sie sie mit dem Metrik-Explorer und Metrikwarnungen verwenden können.

Einen Leitfaden zum Erstellen einer DCR zum Sammeln von Leistungsindikatoren finden Sie unter Sammeln von Ereignissen und Leistungsindikatoren von VMs mit dem Azure Monitor-Agent. Mithilfe der gängigsten Leistungsindikatoren können Sie schnell eine DCR erstellen. Für eine genauere Filterung nach Kriterien wie der Ereignis-ID können Sie mithilfe von XPath-Abfragen einen benutzerdefinierten Filter erstellen.

Hinweis

Sie können die Leistung und die Ereignissammlung in derselben DCR kombinieren.

Destination BESCHREIBUNG
Metriken Hostmetriken werden automatisch an Azure Monitor-Metriken gesendet. Sie können eine DCR verwenden, um Clientmetriken zu sammeln, damit sie zusammen mit dem Metrik-Explorer analysiert oder mit Metrikwarnungen verwendet werden können. Diese Daten werden für 93 Tage gespeichert.
Protokolle In Azure Monitor-Protokollen gespeicherte Leistungsdaten können über einen längeren Zeitraum gespeichert werden. Die Daten können mithilfe von Protokollabfragen mit Log Analytics oder Protokollsuchwarnungen zusammen mit Ihren Ereignisdaten analysiert werden. Sie können Daten auch mithilfe komplexer Logik über mehrere Computer, Regionen und Abonnements hinweg korrelieren.

Leistungsdaten werden an die folgenden Tabellen gesendet:
- VM-Erkenntnisse: InsightsMetrics
- Andere Leistungsdaten: Perf

Beispielprotokollabfragen

In den folgenden Beispielen wird die Tabelle Perf mit benutzerdefinierten Leistungsdaten verwendet.

Abfrage BESCHREIBUNG
Perf Alle Leistungsdaten.
Perf | where Computer == "MyComputer" Alle Leistungsdaten eines bestimmten Computers.
Perf | where CounterName == "Current Disk Queue Length" Alle Leistungsdaten eines bestimmten Leistungsindikators.
Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AVGCPU = avg(CounterValue) by Computer Durchschnittliche CPU-Nutzung aller Computer.
Perf | where CounterName == "% Processor Time" | summarize AggregatedValue = max(CounterValue) by Computer Maximale CPU-Nutzung aller Computer.
Perf | where ObjectName == "LogicalDisk" and CounterName == "Current Disk Queue Length" and Computer == "MyComputerName" | summarize AggregatedValue = avg(CounterValue) by InstanceName Durchschnittliche aktuelle Länge der Datenträgerwarteschlangen aller Instanzen eines bestimmten Computers.
Perf | where CounterName == "Disk Transfers/sec" | summarize AggregatedValue = percentile(CounterValue, 95) by Computer 95. Perzentil der Datenträgerübertragungen pro Sekunde auf allen Computern.
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 1h), Computer Durchschnittliche CPU-Nutzung pro Stunde auf allen Computern
Perf | where Computer == "MyComputer" and CounterName startswith_cs "%" and InstanceName == "_Total" | summarize AggregatedValue = percentile(CounterValue, 70) by bin(TimeGenerated, 1h), CounterName 70. Perzentil pro Stunde jedes prozentualen Indikators für einen bestimmten Computer
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" and Computer == "MyComputer" | summarize ["min(CounterValue)"] = min(CounterValue), ["avg(CounterValue)"] = avg(CounterValue), ["percentile75(CounterValue)"] = percentile(CounterValue, 75), ["max(CounterValue)"] = max(CounterValue) by bin(TimeGenerated, 1h), Computer Durchschnittliche, minimale, maximale und 75.-Perzentil-CPU-Nutzung pro Stunde für einen bestimmten Computer
Perf | where ObjectName == "MSSQL$INST2:Databases" and InstanceName == "master" Alle Leistungsdaten aus dem Datenbank-Leistungsobjekt für die Masterdatenbank von der benannten SQL Server-Instanz INST2.
Perf | where TimeGenerated >ago(5m) | where ObjectName == "Process" and InstanceName != "_Total" and InstanceName != "Idle" | where CounterName == "% Processor Time" | summarize cpuVal=avg(CounterValue) by Computer,InstanceName | join (Perf| where TimeGenerated >ago(5m)| where ObjectName == "Process" and CounterName == "ID Process" | summarize arg_max(TimeGenerated,*) by ProcID=CounterValue ) on Computer,InstanceName | sort by TimeGenerated desc | summarize AvgCPU = avg(cpuVal) by InstanceName,ProcID Durchschnitt der CPU über die letzten 5 Minuten für jede Prozess-ID.

Sammeln von Textprotokollen

Von einigen Anwendungen werden Ereignisse in ein Textprotokoll geschrieben, das auf dem virtuellen Computer gespeichert wird. Erstellen Sie eine benutzerdefinierte Tabelle und eine DCR, um diese Daten zu sammeln. Sie definieren den Speicherort des Textprotokolls, dessen detaillierte Konfiguration und das Schema der benutzerdefinierten Tabelle. Die Erfassung und Aufbewahrung dieser Daten im Arbeitsbereich sind mit Kosten verbunden.

Beispielprotokollabfragen

Bei den hier verwendeten Spaltennamen handelt es sich lediglich um Beispiele. Die Spaltennamen für Ihr Protokoll lauten höchstwahrscheinlich anders.

Abfrage BESCHREIBUNG
MyApp_CL | summarize count() by code Zählen Sie die Anzahl der Ereignisse nach Code.
MyApp_CL | where status == "Error" | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m) Erstellen Sie für jedes Fehlerereignis eine Warnungsregel.

Sammeln von IIS-Protokollen

Wenn IIS auf Windows-Computern ausgeführt wird, werden Protokolle in eine Textdatei geschrieben. Konfigurieren Sie die IIS-Protokollsammlung mithilfe von Sammeln von IIS-Protokollen mit dem Azure Monitor-Agent. Die Erfassung und Aufbewahrung dieser Daten im Arbeitsbereich sind mit Kosten verbunden.

Datensätze aus dem IIS-Protokoll werden in der Tabelle W3CIISLog im Log Analytics-Arbeitsbereich gespeichert. Die Erfassung und Aufbewahrung dieser Daten im Arbeitsbereich sind mit Kosten verbunden.

Beispielprotokollabfragen

Abfrage BESCHREIBUNG
W3CIISLog | where csHost=="www.contoso.com" | summarize count() by csUriStem Zählen Sie die IIS-Protokolleinträge nach URL für den Host www.contoso.com.
W3CIISLog | summarize sum(csBytes) by Computer Überprüfen Sie die Gesamtanzahl der von jedem IIS-Computer empfangenen Bytes.

Überwachen eines Diensts oder Daemons

Wenn Sie den Status eines Windows-Diensts oder eines Linux-Daemons überwachen möchten, aktivieren Sie die Lösung Änderungsnachverfolgung und Bestand in Azure Automation.

Azure Monitor kann den Status eines Dienstes oder Daemons nicht selbst überwachen. Es gibt zwar einige mögliche Methoden, z. B. die Suche nach Ereignissen im Windows-Ereignisprotokoll, aber diese Methode ist unzuverlässig. Sie können auch nach dem Prozess suchen, der dem Dienst zugeordnet ist, der auf dem Computer ausgeführt wird, in der VMProcess-Tabelle, die von VM-Erkenntnissen aufgefüllt wird. Diese Tabelle wird nur stündlich aktualisiert, was normalerweise nicht ausreicht, wenn Sie diese Daten für Warnungen verwenden möchten.

Hinweis

Die Lösung „Änderungsnachverfolgung und Bestand“ unterscheidet sich vom Feature Änderungsanalyse in VM Insights. Dieses Feature befindet sich in der Phase der öffentlichen Vorschau und ist in diesem Szenario noch nicht enthalten.

Weitere Optionen zum Aktivieren der Lösung „Änderungsnachverfolgung“ auf virtuellen Computern finden Sie unter Aktivieren der Lösung für Änderungsnachverfolgung und Bestand. Diese Lösung enthält Methoden zum Konfigurieren von virtuellen Computern im großen Stil. Zur Unterstützung der Lösung müssen Sie ein Azure Automation-Konto erstellen.

Wenn Sie „Änderungsnachverfolgung und Bestand“ aktivieren, werden im Log Analytics-Arbeitsbereich zwei neue Tabellen erstellt. Verwenden Sie diese Tabellen für Protokollabfragen und Warnungsregeln für die Protokollsuche.

Tabelle BESCHREIBUNG
ConfigurationChange Änderungen an Gastkonfigurationsdaten
ConfigurationData Zuletzt gemeldeter Status für Gastkonfigurationsdaten

Beispielprotokollabfragen

  • Listen Sie alle Dienste und Daemons auf, die vor Kurzem gestartet wurden.

    ConfigurationChange
    | where ConfigChangeType == "Daemons" or ConfigChangeType == "WindowsServices"
    | where SvcState == "Running"
    | sort by Computer, SvcName
    
  • Warnung, wenn ein bestimmter Dienst beendet wird. Verwenden Sie diese Abfrage in einer Warnungsregel für die Protokollsuche.

    ConfigurationData
    | where SvcName == "W3SVC" 
    | where SvcState == "Stopped"
    | where ConfigDataType == "WindowsServices"
    | where SvcStartupType == "Auto"
    | summarize AggregatedValue = count() by Computer, SvcName, SvcDisplayName, SvcState, bin(TimeGenerated, 15m)
    
  • Warnung, wenn einer von mehreren Diensten beendet wird. Verwenden Sie diese Abfrage in einer Warnungsregel für die Protokollsuche.

    let services = dynamic(["omskd","cshost","schedule","wuauserv","heathservice","efs","wsusservice","SrmSvc","CertSvc","wmsvc","vpxd","winmgmt","netman","smsexec","w3svc","sms_site_vss_writer","ccmexe","spooler","eventsystem","netlogon","kdc","ntds","lsmserv","gpsvc","dns","dfsr","dfs","dhcp","DNSCache","dmserver","messenger","w32time","plugplay","rpcss","lanmanserver","lmhosts","eventlog","lanmanworkstation","wnirm","mpssvc","dhcpserver","VSS","ClusSvc","MSExchangeTransport","MSExchangeIS"]);
    ConfigurationData
    | where ConfigDataType == "WindowsServices"
    | where SvcStartupType == "Auto"
    | where SvcName in (services)
    | where SvcState == "Stopped"
    | project TimeGenerated, Computer, SvcName, SvcDisplayName, SvcState
    | summarize AggregatedValue = count() by Computer, SvcName, SvcDisplayName, SvcState, bin(TimeGenerated, 15m)
    

Überwachen eines Ports

Mit der Portüberwachung wird überprüft, ob ein Computer an einem bestimmten Port lauscht. Im Folgenden werden zwei mögliche Strategien für die Portüberwachung beschrieben.

Dependency-Agent-Tabellen

Wenn Sie VM-Erkenntnisse mit aktivierter Sammlung von Prozessen und Abhängigkeiten verwenden, können Sie VMConnection und VMBoundPort verwenden, um Verbindungen und Ports auf dem Computer zu analysieren. Die Tabelle VMBoundPort wird einmal pro Minute für alle auf dem Computer ausgeführten Prozesse und den Port aktualisiert, an dem der Computer lauscht. Erstellen Sie ähnlich wie für die Warnung bei einem fehlenden Heartbeat eine Warnungsregel für dir Protokollsuche, um nach Prozessen zu suchen, die beendet wurden, oder um zu warnen, wenn der Computer nicht an einem bestimmten Port lauscht.

  • Überprüfen Sie die Anzahl der auf Ihren virtuellen Computern geöffneten Ports, um zu ermitteln, welche virtuellen Computer Schwachstellen in der Konfiguration oder Sicherheitsrisiken aufweisen.

    VMBoundPort
    | where Ip != "127.0.0.1"
    | summarize by Computer, Machine, Port, Protocol
    | summarize OpenPorts=count() by Computer, Machine
    | order by OpenPorts desc
    
  • Listen Sie die gebundenen Ports auf Ihren virtuellen Computern auf, um zu ermitteln, welche virtuellen Computer Schwachstellen in der Konfiguration oder Sicherheitsrisiken aufweisen.

    VMBoundPort
    | distinct Computer, Port, ProcessName
    
  • Analysieren Sie die Netzwerkaktivität nach Port, um zu ermitteln, wie die jeweilige Anwendung oder der jeweilige Dienst konfiguriert ist.

    VMBoundPort
    | where Ip != "127.0.0.1"
    | summarize BytesSent=sum(BytesSent), BytesReceived=sum(BytesReceived), LinksEstablished=sum(LinksEstablished), LinksTerminated=sum(LinksTerminated), arg_max(TimeGenerated, LinksLive) by Machine, Computer, ProcessName, Ip, Port, IsWildcardBind
    | project-away TimeGenerated
    | order by Machine, Computer, Port, Ip, ProcessName
    
  • Überprüfen Sie die für Ihre virtuellen Computer gesendeten Bytes und empfangenen Trends.

    VMConnection
    | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer
    | order by Computer desc
    | render timechart
    
  • Verwenden Sie „Verbindungsfehler im Zeitverlauf“, um festzustellen, ob die Fehlerrate stabil ist oder sich ändert.

    VMConnection
    | where Computer == <replace this with a computer name, e.g. 'acme-demo'>
    | extend bythehour = datetime_part("hour", TimeGenerated)
    | project bythehour, LinksFailed
    | summarize failCount = count() by bythehour
    | sort by bythehour asc
    | render timechart
    
  • Verknüpfen Sie Statustrends, um das Verhalten und den Verbindungsstatus eines Computers zu analysieren.

    VMConnection
    | where Computer == <replace this with a computer name, e.g. 'acme-demo'>
    | summarize  dcount(LinksEstablished), dcount(LinksLive), dcount(LinksFailed), dcount(LinksTerminated) by bin(TimeGenerated, 1h)
    | render timechart
    

Verbindungs-Manager

Das Feature Verbindungsmonitor von Network Watcher wird zum Testen von Verbindungen mit einem Port an einem virtuellen Computer verwendet. Mit einem Test wird überprüft, ob der Computer am Port lauscht und im Netzwerk darauf zugegriffen werden kann.

Für den Verbindungs-Manager muss die Erweiterung Network Watcher auf dem Clientcomputer vorhanden sein, mit der der Test initiiert wird. Auf dem Computer, der getestet wird, muss sie nicht installiert werden. Ausführlichere Informationen finden Sie unter Tutorial: Überwachen der Netzwerkkommunikation über das Azure-Portal.

Für den Verbindungs-Manager fallen zusätzliche Kosten an. Weitere Informationen finden Sie unter Network Watcher – Preise.

Ausführen eines Prozesses auf einem lokalen Computer

Für die Überwachung einiger Workloads ist ein lokaler Prozess erforderlich. Ein Beispiel hierfür ist ein PowerShell-Skript, das auf dem lokalen Computer ausgeführt wird, um eine Verbindung mit einer Anwendung herzustellen und Daten zu erfassen oder zu verarbeiten. Sie können Hybrid Runbook Worker verwenden, das Teil von Azure Automation ist, um ein lokales PowerShell-Skript auszuführen. Für Hybrid Runbook Worker fallen keine direkten Gebühren an. Lediglich für die jeweils verwendeten Runbooks entstehen Kosten.

Mit dem Runbook kann auf alle Ressourcen auf dem lokalen Computer zugegriffen werden, um die erforderlichen Daten zu erfassen. Dabei können Daten nicht direkt an Azure Monitor gesendet oder Warnungen direkt erstellt werden. Um eine Warnung zu erstellen, lassen Sie das Runbook einen Eintrag in ein benutzerdefiniertes Protokoll schreiben. Konfigurieren Sie dann das Protokoll, das von Azure Monitor erfasst werden soll. Erstellen Sie eine Warnungsregel für die Protokollsuche, die bei diesem Protokolleintrag ausgelöst wird.

Nächste Schritte