Überwachen von Surface Hub mit Operations Management Suite
Microsoft Surface Hub stellen eine tolle Lösung für Konferenzräume dar. Gerade bei der Zusammenarbeit von verteilten Teams hilft die Integration von modernen Office Applikationen wie Exchange und Skype for Business die Produktivät der Mitarbeiter zu steigern und schafft neue Kommunikationsmöglichkeiten. Im neuen Standort von Microsoft in Schwabing beispielsweiese sind viele der Konferenzräume mit Surface Hubs ausgestattet.
Hieraus ergeben sich interessante Herausforderungen, denn es liegt in der Natur der Sache, dass Konferenzräume und dadurch natürlich auch die dort eingesetzten Geräte räumlich weit verteilt liegen können. Zentrales Management und Überwachung sind wichtige Integrationsmerkmale von solchen Systemen.
Wie aber überwacht man eine solche Appliance? Das Management und insbesondere auch die Überwachung wurde beim Design des Surface Hub berücksichtigt. So ist eine Schnittstelle für die Microsoft Operations Management Suite zentraler Bestandteil der Software, die auf jedem Surface Hub läuft.
Anforderungen
Es stehen einige Performanceindikatoren zur Überwachung zur Verfügung. Für eine Übersicht können die folgenden Informationen aufbereitet werden:
- Übersicht (Name, Kurzname, Seriennummer)
- Zustand (Heartbeat, Erreichbarkeit des Geräts)
- Leistungsdaten (CPU, Memory, Disk)
- Fehlerzustände (Crashes, ...)
Instrumentierung
Damit die Daten in Log Analytics zur Verfügung stehen und für Dashboards genutzt werden können müssen die folgenden Schritte ausgeführt werden:
- Aufnahme des Surface Hub in Log Analytics
- Aktivierung der Surface Hub Solution
- Erstellen von Custom Fields für die Ermittlung von Seriennummer und Kurzname
Aufnahme des Surface Hub in Log Analytics
Die Aufnahme eines Surface Hub in Log Analytics ist detailliert in der TechNet Dokumentation beschrieben. Hierbei kann die Aufnahme entweder über eine Intune Policy oder über die Settings-App des Geräts selber vorgenommen werden.
Aktivierung der Surface Hub Solution
Um die Surface Hub Solution zu aktivieren sind die folgenden Schritte auszuführen:
Erstellen von Custom Fields
Viele Informationen stehen bereits als Teil von anderen Datentypen bereit. Damit diese nutzbar gemacht werden können, müssen einzelne Felder extrahiert werden. Log Analytics bietet hierfür die Möglichkeit Custom Fields anzulegen, die mit Daten aus anderen Quellen belegt werden somit aber für die Auswertung und Anzeige indiziert und nutzbar gemacht werden.
Damit die Seriennummer und der Kurzname über eine Abfrage angezeigt werden können, müssen diese aus den ETW Logs des Surface Hub extrahiert werden. Damit die Custom Fields angelegt werden können, müssen vorher bereits Geräte angeschlossen und Daten von den Geräten an Log Analytics geschickt worden sein.
- Log Search öffnen
- Die folgende Abfrage durchführen:
Type=DeviceEtw | select tags
- Field Menü aufrufen und Extract fields from 'DeviceEtw' (Preview) auswählen
- Den Wert von
MicrosoftPPISerialNumber
markieren, als NamenSerialNumber
angeben und auf Extract klicken - Unter Search Results alle falschen Ergebnisse löschen
- Dialog mit Save extraction beenden
Dieser Vorgang muss für den Kurznamen wiederholt werden. Hierfür sind die gleichen Schritte durchzuführen - lediglich bei Schritt 3. muss der Wert von MicrosoftPPIDeviceName
verwendet und als Namen FriendlyName
verwendet werden.
Abfragen
Nach der Instrumentierung ist es leicht Abfragen zu entwickeln um diese Informationen anzuzeigen. Die folgenden Abfragen bereiten die Informationen auf und stellen sie entsprechend dar. Es ist ein leichtes aus diesen Abfragen entsprechende Dashboards zu entwickeln - eine beispielhafte Implementierung steht als Download bereit.
- Liste mit allen Surface Hubs (FQDN, Kurzname, Seriennummer):
Type=DeviceEtw Computer IN {Type=DeviceEtw | distinct Computer} | measure count() by Computer, FriendlyName_CF, SerialNumber_CF | select Computer, FriendlyName_CF, SerialNumber_CF
- Available MBytes:
Type=Perf ObjectName=Memory CounterName="Available MBytes" Computer IN {Type=DeviceEtw | distinct Computer} | measure percentile99(CounterValue) by Computer interval 30MINUTE
- % Processor Time (Total):
Type=Perf ObjectName=Processor CounterName="% Processor Time" InstanceName=_Total Computer IN {Type=DeviceEtw | distinct Computer} | measure percentile99(CounterValue) by Computer interval 30MINUTE
- % Free Space (C:):
Type=Perf ObjectName=LogicalDisk CounterName="% Free Space" InstanceName="C:" Computer IN {Type=DeviceEtw | distinct Computer} | measure percentile99(CounterValue) by Computer, InstanceName interval 30MINUTE