Übung: Zusammenfassen von Freiraumstatistiken nach Computer

Abgeschlossen

Hier werden Sie mithilfe von KQL-Abfragen Daten aus der Tabelle Perf abrufen und transformieren, um den freien Speicherplatz der Computer zu analysieren, die Daten in Ihrem Log Analytics-Arbeitsbereich protokollieren.

1. Festlegen von Zielen

Erinnern Sie sich daran, dass Ihr IT-Team immer wieder Probleme im Zusammenhang mit unzureichendem freien Speicherplatz auf virtuellen Computern festgestellt hat.

Sie benötigen folgende Informationen, um die Nutzung des freien Speicherplatzes von Computern, die in Ihrer IT-Umgebung ausgeführt werden, zu analysieren:

  • Insgesamt verfügbarer freier Speicherplatz auf den einzelnen Computern.
  • Prozentsatz des auf den einzelnen Computern verwendeten Speicherplatzes.

2. Auswerten von Protokollen

Wie wir in der vorherigen Übung gesehen haben, liefert die Tabelle Perf Informationen über die Leistung von Hardwarekomponenten, Betriebssystemen und Anwendungen.

Wir haben festgestellt, dass die Spalte ObjectName der Tabelle Perf die Namen aller überwachten Objekte auflistet und die Spalte CounterName die Namen der verschiedenen Leistungsindikatoren enthält, die Azure Monitor sammelt. Wir haben auch gesehen, dass diese beiden Spalten zahlreiche Werte enthalten, von denen viele mehrfach vorkommen.

Lassen Sie uns eine Abfrage über die Tabelle Perf ausführen, um eindeutige ObjectName-Werte aufzulisten:

Klicken Sie hier, um die Abfrage in der Log Analytics-Demoumgebung auszuführen

Perf // The table you’re querying
| distinct ObjectName // Lists distinct ObjectName values

Das Resultset dieser Abfrage enthält alle ObjectName-Werte, die sich derzeit in der Tabelle befinden:

Screenshot that shows the results of the Distinct Object Name query on the Perf table with the Logical Disk values highlighted.

In unserem Szenario sind wir daran interessiert, virtuelle Computer zu analysieren. Die Objekte, die wir uns ansehen möchten, sind LogicalDisk und Logical Disk (um den Arbeitsspeicher eines physischen Computers zu überwachen, würden Sie das Objekt memory betrachten). Der Grund, warum es zwei ähnlich benannte Objekte gibt, ist, dass LogicalDisk der Objektname in Windows-Datensätzen ist, während Logical Disk in Linux-Datensätzen verwendet wird.

Um die eindeutigen Namen der Zähler aufzulisten, die Azure Monitor für die Objekte LogicalDisk und Logical Disk sammelt, führen Sie Folgendes aus:

Klicken Sie hier, um die Abfrage in der Log Analytics-Demoumgebung auszuführen

Perf // The table you’re querying  
| where ObjectName == "LogicalDisk" or // The object name used in Windows records
ObjectName == "Logical Disk" // The object name used in Linux records
| distinct CounterName // Lists distinct CounterName values

Das Resultset dieser Abfrage enthält alle Leistungsindikatoren, die für die Objekte LogicalDisk und Logical Disk gesammelt wurden:

Screenshot that shows the results of a query that lists the distinct names of the counters Azure Monitor collects for the LogicalDisk (written as one word) and Logical Disk (written as two words) objects.

Die Leistungsindikatoren, die Informationen über verwendeten und freien Speicherplatz liefern, sind % Used Space, % Free Space und Free Megabytes. Wir haben zwei ähnliche Zähler – % Free Space und % Used Space – die von Windows- bzw. Linux-Datensätzen gesammelt werden.

Lassen Sie uns prüfen, wie wir diese Daten nutzen können und welche KQL-Vorgänge bei der Extraktion und Transformation der Daten helfen können:

Column BESCHREIBUNG Analyseziel Zugehörige KQL-Vorgänge
TimeGenerated Gibt an, wann der virtuelle Computer die einzelnen Protokolle generiert hat. Bestimmen des Zeitrahmens der Analyse. where TimeGenerated > ago(1d)
Weitere Informationen finden Sie unter ago(), WHERE-Operator und Numerische Operatoren.
Computer Computer, auf dem das Ereignis gesammelt wurde. Zuordnen der CPU-Auslastung zu einem bestimmten Computer. summarize... by Computer
Weitere Informationen finden Sie unter SUMMARIZE-Operator.
ObjectName Enthält die Namen aller Objekte, für die die Tabelle Leistungsdaten enthält. Für Ihre Analyse interessieren Sie sich für die Objekte LogicalDisk und Logical Disk. Überwachen Sie die logischen Datenträger auf virtuellen Computern. where ObjectName == "LogicalDisk" or ObjectName == "Logical Disk"
Weitere Informationen finden Sie unter WHERE-Operator und == (GLEICH)-Operator.
CounterName Enthält die Namen aller Leistungsindikatoren in der Tabelle.
  • Überwachen Sie die Zähler für den freien Speicherplatz.
  • Benennen Sie % Used Space in % Free Space um (parallel dazu konvertieren Sie das entsprechende CounterValue).
.
where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space"
Zur Vereinfachung der Ergebnisse und zur Erleichterung der weiteren Analyse:
  • Ändern Sie % Used Space in % Free Space (CounterName = iff(CounterName=="% Used Space", "% Free Space", CounterName)).
  • Ändern Sie Free Megabytes in OverallFreeSpaceInGB (CounterName= iff(CounterName=="Free Megabytes", "OverallFreeSpaceInGB", CounterName)).
Weitere Informationen finden Sie unter WHERE-Operator und == (GLEICH)-Operator.
InstanceName Listet die überwachten Instanzen des überwachten Objekts auf. Überwachen Sie alle Laufwerke auf dem virtuellen Computer. InstanceName == "_Total"
Weitere Informationen finden Sie unter WHERE-Operator und == (GLEICH)-Operator.
CounterValue Die für den Leistungsindikator gesammelte Messung. Rufen Sie Leistungsmeasures für die Leistungsindikatoren % Used Space, % Free Space und Free Megabytes ab.
  • CounterValue = iff(CounterName=="% Used Space", 100-CounterValue, CounterValue)
  • CounterValue = iff(CounterName=="Free Megabytes", (CounterValue)*0.001, CounterValue)
Weitere Informationen finden Sie unter WHERE-Operator und == (GLEICH)-Operator.

3. Schreiben der Abfrage

  1. Rufen Sie alle am letzten Tag generierten Protokolle ab, die die Leistungsindikatoren % Used Space, % Free Space und Free Megabytes für die Objekte LogicalDisk und Logical Disk gemeldet haben:

    Klicken Sie hier, um die Abfrage in der Log Analytics-Demoumgebung auszuführen

    Perf
    | where TimeGenerated > ago(1d)
    | where ObjectName == "LogicalDisk" or // The object name used in Windows records
    ObjectName == "Logical Disk" // The object name used in Linux records
    | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters
    | where InstanceName == "_Total"  // Retrieves data related to free space for all drives on a virtual machine  
    

    Das Resultset dieser Abfrage enthält wahrscheinlich mehrere Datensätze für jeden Computer, von dem Sie Leistungsindikatoren in Bezug auf den freien Speicherplatz sammeln.

    Screenshot that shows the results of a query for logs generated in the past day that report on virtual machine free space.

  2. Filtern Sie nach dem letzten erfassten Zählerwert für jeden Zähler, der von jedem virtuellen Computer gemeldet wird:

    Klicken Sie hier, um die Abfrage in der Log Analytics-Demoumgebung auszuführen

    Perf
    | where TimeGenerated > ago(1d)
    | where ObjectName == "LogicalDisk" or // The object name used in Windows records
    ObjectName == "Logical Disk" // The object name used in Linux records
    | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters
    | where InstanceName == "_Total"  // Retrieves data related to free space for all drives on a virtual disk  
    | summarize arg_max(TimeGenerated, CounterValue) by Computer, CounterName // Retrieves the last counter value collected for each counter for every virtual machine
    

    Sie verfügen jetzt über den letzten gemeldeten Zählerwert für jeden auf freien Speicherplatz bezogenen Zähler jedes Computers.

    Screenshot that shows the results of a query that filters for the last counter value collected for each counter every virtual machine.

  3. So vereinfachen Sie die Analyse:

    1. Konvertieren Sie den Zählerwert % Used Space in % Free Space (indem Sie den Wert % Used Space von 100 % subtrahieren) und ändern Sie den Namen der Spalte % Used Space in % Free Space:

      Klicken Sie hier, um die Abfrage in der Log Analytics-Demoumgebung auszuführen

      Perf
      | where TimeGenerated > ago(1d)
      | where ObjectName == "LogicalDisk" or // The object name used in Windows records
      ObjectName == "Logical Disk" // The object name used in Linux records
      | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters
      | where InstanceName == "_Total"  // Retrieves data related to free space for all drives on a virtual disk  
      | summarize arg_max(TimeGenerated, CounterValue) by Computer, CounterName // Retrieves the last counter value collected for each counter for every virtual machine
      | extend CounterValue = iff(CounterName=="% Used Space", 100-CounterValue, CounterValue) // Converts % Used Space to % Free Space
      | extend CounterName = iff(CounterName=="% Used Space", "% Free Space", CounterName) // Changes the column name from % Used Space to % Free Space
      

      Das Resultset dieser Abfrage stellt den prozentualen Anteil des freien Speicherplatzes auf Windows- und Linux-Computern auf die gleiche Weise dar, was die weitere Analyse übersichtlicher und einfacher gestaltet.

      Screenshot that shows the results of a query that converts the Percentage Used Space counter value to Percentage Free Space.

    2. Konvertieren Sie Free Megabytes in Gigabyte (Free Megabytes-Wert * 0,001 = Freie Gigabytes) und benennen Sie Free Megabytes in OverallFreeSpaceInGB um:

      Klicken Sie hier, um die Abfrage in der Log Analytics-Demoumgebung auszuführen

      Perf
      | where TimeGenerated > ago(1d)
      | where ObjectName == "LogicalDisk" or // The object name used in Windows records
      ObjectName == "Logical Disk" // The object name used in Linux records
      | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters
      | where InstanceName == "_Total"  // Retrieves data related to free space for all drives on a virtual disk  
      | summarize arg_max(TimeGenerated, CounterValue) by Computer, CounterName // Retrieves the last counter value collected for each counter for every virtual machine
      | extend CounterValue = iff(CounterName=="% Used Space", 100-CounterValue, CounterValue) // Converts % Used Space to % Free Space
      | extend CounterName = iff(CounterName=="% Used Space", "% Free Space", CounterName) // Changes the column name from % Used Space to % Free Space
      | extend CounterValue = iff(CounterName=="Free Megabytes", (CounterValue)*0.001, CounterValue) // Converts megabytes to gigabytes
      | extend CounterName= iff(CounterName=="Free Megabytes", "OverallFreeSpaceInGB", CounterName) // Changes the column name fromFree Megabytes to OverallFreeSpaceInGB
      

      Sie können sich jetzt ein klares Bild über den gesamten freien Speicherplatz auf jedem Computer in Gigabyte und als Prozentsatz des gesamten Speichers des Computers machen.

      Screenshot that shows the results of a query that converts the Free Megabytes column to Overall Free Space In Gigabytes.

Herausforderung: Bündeln Sie die Statistiken über den freien Speicherplatz für jeden Computer

Das Resultset unserer Abfrage enthält bisher zwei Zeilen für jeden Computer – eine Zeile zeigt den gesamten freien Speicherplatz in Gigabyte und die andere den Prozentsatz des verfügbaren freien Speichers.

Können Sie ein Wörterbuch erstellen, das diese beiden Statistiken zum freien Speicherplatz für jeden virtuellen Computer zusammenfasst?

Hinweis:

  • Verwenden Sie die Funktion bag_pack(), um Schlüssel-Wert-Paare für jeden der beiden Leistungsindikatoren zu erstellen.
  • Verwenden Sie die Aggregationsfunktion make_bag(), um beide Schlüsselwerte für jeden Computer zu bündeln.

Lösung:

  1. Gruppieren Sie CounterName, CounterValue-Schlüssel-Wert-Paare:

    Klicken Sie hier, um die Abfrage in der Log Analytics-Demoumgebung auszuführen

    Perf
    | where TimeGenerated > ago(1d)
    | where ObjectName == "LogicalDisk" or // The object name used in Windows records
    ObjectName == "Logical Disk" // The object name used in Linux records
    | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters
    | where InstanceName == "_Total"  // Retrieves data related to free space for all drives on a virtual disk  
    | summarize arg_max(TimeGenerated, CounterValue) by Computer, CounterName // Retrieves the last counter value collected for each counter for every virtual machine
    | extend CounterValue = iff(CounterName=="% Used Space", 100-CounterValue, CounterValue) // Converts % Used Space to % Free Space
    | extend CounterName = iff(CounterName=="% Used Space", "% Free Space", CounterName) // Changes the column name from % Used Space to % Free Space
    | extend CounterValue = iff(CounterName=="Free Megabytes", (CounterValue)*0.001, CounterValue) // Converts megabytes to gigabytes
    | extend CounterName= iff(CounterName=="Free Megabytes", "OverallFreeSpaceInGB", CounterName) // Changes the column name fromFree Megabytes to OverallFreeSpaceInGB
    | extend packed = pack(CounterName, CounterValue) // Groups together CounterName-CounterValue key-value pairs
    

    Wenn Sie CounterName, CounterValue-Schlüssel-Wert-Paare zusammenfassen, können Sie im nächsten Schritt ein Wörterbuch mit Statistiken zum freien Speicherplatz für jeden Computer erstellen.

    Screenshot that shows the results of a query that groups together Counter Name and Counter Value key-value pairs.

  2. Erstellen Sie eine Eigenschaftensammlung (Wörterbuch) namens „SpaceStats“ mit allen für jeden Computer gesammelten Statistiken über freien Speicherplatz, fassen Sie diese nach Computer zusammen und filtern Sie nach Computern mit weniger als 50 % freiem Speicherplatz:

    Klicken Sie hier, um die Abfrage in der Log Analytics-Demoumgebung auszuführen

    Perf
    | where TimeGenerated > ago(1d)
    | where ObjectName == "LogicalDisk" or // The object name used in Windows records
    ObjectName == "Logical Disk" // The object name used in Linux records
    | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters
    | where InstanceName == "_Total"  // Retrieves data related to free space for all drives on a virtual disk  
    | summarize arg_max(TimeGenerated, CounterValue) by Computer, CounterName // Retrieves the last counter value collected for each counter for every virtual machine
    | extend CounterValue = iff(CounterName=="% Used Space", 100-CounterValue, CounterValue) // Converts % Used Space to % Free Space
    | extend CounterName = iff(CounterName=="% Used Space", "% Free Space", CounterName) // Changes the column name from % Used Space to % Free Space
    | extend CounterValue = iff(CounterName=="Free Megabytes", (CounterValue)*0.001, CounterValue) // Converts megabytes to gigabytes
    | extend CounterName= iff(CounterName=="Free Megabytes", "OverallFreeSpaceInGB", CounterName) // Changes the column name fromFree Megabytes to OverallFreeSpaceInGB
    | extend packed = pack(CounterName, CounterValue) // Groups together CounterName-CounterValue key-value pairs
    | summarize SpaceStats = make_bag(packed) by Computer // Summarizes free space statstics by computer
    | where SpaceStats.["% Free Space"]<= 50
    

    Das Resultset dieser Abfrage fasst die Statistik des freien Speicherplatzes nach Computer zusammen, was das Ziel Ihrer Speicherplatzanalyse war!

    Die letzte Zeile der Abfrage filtert nach Computern mit weniger als 50 % freiem Speicherplatz. Vielleicht möchten Sie sie genauer überwachen oder analysieren oder sie neu konfigurieren, um sicherzustellen, dass der Speicherplatz nicht knapp wird.

    Screenshot that shows the results of a query that summarizes free space statistics by machine.