Website-Icon Frankys Web

Tipp: PowerShell Universal Dashboard

Ansprechende Dashboards lassen sich mit vielen Verschiedenen Anwendungen erzeugen, beispielsweise Kibana und Grafana. Dashboards lassen sich aber auch direkt mit der PowerShell erzeugen. Die Firma Ironman Software bietet dazu das Modul “Powershell Universal Dashboard” an. Die Community Edition ist kostenlos nutzbar und hat nur wenige Einschränkungen gegenüber der Enterprise Edition.

Hier gibt es einen Überblick zum PowerShell Modul:

Der Preis für die Enterprise Edition ist meiner Meinung nach mehr als fair (ab 49,99 $). Die Enterprise Edition enthält die Möglichkeit auch Berechtigungen für Dashboards zu verwalten. Hier gibt es einen Vergleich der Features zwischen Community und Enterprise Edition:

Wer also nach einer Möglichkeit sucht ansprechende Dashboards nativ mit der PowerShell zu erstellen, kann PowerShell Universal Dashboards ja mal testen.

Die kostenlose Community Edition lässt sich hier runterladen:

Mit dem folgenden Befehl kann das Modul auch direkt installiert werden:

Install-Module -Name UniversalDashboard -RequiredVersion 2.3.2

Hinweis: Falls bei der Installation des Moduls angezeigt wird, dass eine neuere Version on PowerShellGet benötigt wird, findet sich hier eine Anleitung zur Aktualisierung: Update PowerShellGet and PackageManagement

Hier mal ein kleines PowerShell Script welches ein simples Dashboard mit Dummy Daten befüllt:

Get-UDDashboard | Stop-UDDashboard

$Dashboard = New-UDDashboard -Title "FrankysWeb Demo Dashboard" -Content {
    New-UDRow -Columns {
        New-UDColumn -Size 6 -Content {
			$Pie = @(
				@{Server="Server 2019";Count=10}
				@{Server="Server 2016";Count=20}
				@{Server="Server 2012";Count=15}
				@{Server="Server 2008";Count=7}
				)
            New-UDChart -Title "Server Betriebssysteme" -Type "Doughnut" -Endpoint {
				$Pie | Out-UDChartData -LabelProperty "Server"  -Dataset @(
					New-UDChartDataset -Label "Server" -DataProperty Count -BackgroundColor @("#4286f4", "#41bef4", "#408cad","#70cde0") -BorderColor @("#000000", "#000000", "#000000","#000000") -BorderWidth 1
					)
			} -Options @{cutoutPercentage = 0}
		}
		New-UDColumn -Size 6 -Content {
			New-UdChart -Title "Speicherplatz" -Type Bar -Endpoint {
				$Bar = @(
					@{DeviceID="C:";FreeSpace=16;Size=20}
					@{DeviceID="D:";FreeSpace=13;Size=23}
					)
                $Bar | Out-UDChartData -LabelProperty "DeviceID" -Dataset @(
                    New-UdChartDataset -DataProperty "Size" -Label "Laufwerksgröße" -BackgroundColor "#80962F23" -HoverBackgroundColor "#80962F23"
                    New-UdChartDataset -DataProperty "FreeSpace" -Label "Freier Speicher" -BackgroundColor "#8014558C" -HoverBackgroundColor "#8014558C"
					)
			}	
        }
    }
	
    New-UDRow -Columns {
        New-UDColumn -Size 6 -Content {
            New-UDMonitor -Title "CPU Last" -Type Line  -Endpoint {
				Get-Random -Minimum 0 -Maximum 100 | Out-UDMonitorData
				} -DataPointHistory 10 -RefreshInterval 2
        }
        New-UDColumn -Size 6 -Content {
                New-UDCounter -Title "Mails pro Sekunde" -AutoRefresh -RefreshInterval 3 -Endpoint {
					Get-Random -Minimum 0 -Maximum 1000 | ConvertTo-Json
				} -FontColor "black"
        }
    }
}

Start-UDDashboard -Dashboard $Dashboard -Port 10000

So sieht das Dashboard dann im Browser aus (Aufruf via http://localhost:10000):

Die Farben und die Darstellung lassen sich beliebig anpassen. PowerShell Universal Dashboards bringt direkt einen kleinen Webserver mit, welcher die Dashboards ausliefert. Wenn gewünscht lässt sich aber auch IIS, Apache oder NGINX verwenden.

In der Enterprise Edition lassen sich zusätzlich Login Seiten und Berechtigungen für Dashboards vergeben.

Eine Beispielseite mit Code Beispielen für die verschiedenen Möglichkeiten findet sich hier:

Zur Einstieg findet sich hier ein YouTube Video welches die Grundlagen gut erklärt:

Hinweis: PowerShell Universal Dashboards ist kompatibel zu PowerShell Core und ist somit auch unter Linux und MacOS nutzbar.

Die mobile Version verlassen