Anzeige

Vmware-Server über die Powershell 2.0 verwalten

Die Verwaltung von ESX-Servern ist auch über Microsofts Powershell – und somit über die Kommandozeile – machbar. Dazu stehen bei Vmware zusätzliche Cmdlets zum Download bereit: die »vSphere PowerCLI«. Mit dieser Software bekommt der Administrator Funktionen in die Hand, die ihm den Zugriff auf die Interna von ESX-Systemen erlauben.

Bild 1. Das Verwaltungsmodul für die Powershell steht zum kostenlosen Download bereit;  Quelle: VMware
Bild 1. Das Verwaltungsmodul für die Powershell steht zum kostenlosen Download bereit; Quelle: VMware
Zu einer kompletten Sitzung an der »vSphere PowerCLI«  gehört das Verbinden mit dem gewünschten Virtualisierungs-Host, das Ausführen grundlegenden Überwachungs- und Verwaltungsaufgaben und danach das Lösen der Verbindung. Die Schritte für den Einsatz des PowerCLI sind vom Prinzip her immer die gleichen. Eine gute Einführung in die ersten Schritte beim Arbeiten mit der »vSphere PowerCLI« bietet der Grundlagenbeitrag  »Powershell 2.0 verwaltet die VMware-Server«. Sind diese Vorbedingungen erfüllt, lassen sich Verwaltungsaufgaben auf den VMware-Servern ausführen.

Das Software-Modul »vSphere PowerCLI« verfügt über eine Vielzahl von Cmdlets, mit deren Hilfe sich die Protokolldateien auf einem Server und die zugehörigen, aktuellen Statistikdaten überprüfen lassen. Auf der Download-Seite von Vmware für das Snap-in gibt es auch ein Poster mit den Details des Pakets (als PDF-Datei). 

Anzeige

Zugriff auf die Protokolldateien

Bild 2. Der komplette Funktionsumfang des »vSphere PowerCLI« in der Version 4.1.1;  Quelle: VMware
Bild 2. Der komplette Funktionsumfang des »vSphere PowerCLI« in der Version 4.1.1; Quelle: Vmware
Mit dem Cmdlet Get-Log zum Beispiel ist der Zugriff auf die Protokolldateien machbar. Doch üblicherweise wird der Administrator zuerst das Cmdlet Get-LogType benötigen. Server auf der Basis von ESX und ESXi verfügen über weniger umfangreiche Sätze von Protokolldateien, da sie auch weniger Kerndienste bereit stellen – im Vergleich zu einem kompletten Server auf Basis von »vSphere 4«.

Aber auch her gibt es Besonderheiten zu beachten, da diese Protokolldateien mehrfach vorliegen – weil Vmware die Protokolldateien rotiert und Sicherungen davon anlegt. Im einfachsten Fall hat man eine einfache Sammlung vorliegen. Um nur die Protokolleinträge von hostd zu bekommen, ist das folgende Kommando nötig:

Get-Log -Key hostd

Das PowerCLI gibt das Resultat dann als ein »Blob« von Einträgen zurück. Um sich die zugehörigen Textinformationen anzeigen zu lassen, muss der Administrator die zurück gelieferten Werte noch expandieren. Diese Aufgabe lässt sich wie folgt meistern.

(Get-Log -Key hostd).Entries

Wer wirklich alle bestehenden Protokolleinträge bekommen möchte, egal wie viele Protokolldateien und Einträge es auf dem betreffenden System gibt, der kann über eine Pipe die Ausgabe von Get-LogType in Get-Log leiten und so die Einträge für jede Protokolldatei expandieren:

Get-LogType | Get-Log | ForEach-Object { $_.Entries}

Doch das kann sich als eine sehr Ressourcen-intensive Aufgabe darstellen, vor allem beim betreffenden Server. Da gilt besonders für Systeme auf der Basis von ESX oder ESXi.

Informationsverdichtung durch das Bundling

Wer kein Vorfiltern der Protokolleinträge ausführen will, und mit diesem Ansatz verstehen möchte, was alles auf dem betreffenden Server los ist, der sollte wohl besser das Bundling-Feature von Get-Log verwenden. Es wird zwar genauso lang dauern wie das interaktive Anzeigen der Protokolle, allerdings muss man es nur einmal ausführen. Zudem liefert dieser Ansatz auch einen noch einen kompletten Satz der Konfigurationsdateien des Servers.

Dazu muss der Administrator das Cmdlet Get-Log mit dem Bundle-Parameter aufrufen. Dazu ist dann noch der Pfad auf dem lokalen System anzugeben, in dem die Protokolle abgelegt werden sollen. Dieser Pfad muss aber bereits vorhanden sein. Soll das komplette »Bundle« zum Beispiel unter C:\tmp\Server1 abgelegt werden, muss man diesen Ordner zuvor anlegen. Dann ist das folgende Kommando nötig:

Get-Log -Bundle -DestinationPath c:\tmp\Server1

Wenn PowerCLI mit dem Zusammenfassen der Protokolle und ihrem Abspeichern fertig ist, gibt es einen Dateinamen zurück, der das Archiv für diese abgelegten Informationen angibt. Dabei handelt es sich um eine Standard-zip-Datei, wenn man »vCenter« einsetzt. Da die ESX- und ESXi-Server die üblichen Linux-Infrastruktur-Tools verwenden, wird es sich bei den Archiven um mit tar und zip verarbeitete Dateien mit der Endung .tgz handeln. Öffnen lassen sich diese Archive mit Hilfe von WinZip oder 7-Zip.

In den Protokolldateien liegen Informationen über signifikante Ereignisse – und über die Konfiguration des Systems, wenn man das Bundle-Feature einsetzt. Wer dagegen mehr statistische Informationen braucht, der kann sich der Stat-Cmdlets bedienen, etwa um die Leistungsfähigkeit des Systems oder seine Auslastung zu bestimmen.

VMware-Server überwachen von sich aus bereits einen großen Bereich von Daten zur Leistungsfähigkeit des Servers, für virtuelle Maschinen (VMs), Resource Pools, Clusters und Hosts.

Für das Abfragen der statistischen Daten eines Servers, zu dem bereits eine Verbindung besteht, sind keine Besonderheiten nötig. Um sich zum Beispiel die unterschiedlichen Typen von Statistiken anzeigen zu lassen, ist nur das folgende Cmdlet nötig:

Get-StatType

Dieses Cmdlet führt eine Liste von Namen oder »MetricIDs« von statistischen Größen auf, die von Vmware verfolgt werden. Allerdings kann diese Liste auch sehr umfangreich und somit extrem unübersichtlich werden – zumal auch Doubletten in der Liste enthalten sein können. Etwas mehr Übersichtlichkeit kann daher nicht schaden – und das lässt sich über den folgenden Befehl erreichen:

Get-StatType | Sort-Object -Unique