发布于 2026-01-06 1 阅读
0

PowerShell 通用仪表板:创建交互式仪表板

PowerShell 通用仪表板:创建交互式仪表板

PowerShell 通用仪表板

PowerShell 通用仪表板

PowerShell Universal Dashboard是一个非常强大的 PowerShell 模块,也是我见过的最有趣的开源项目之一。
它允许你仅使用 PowerShell 命令,为你的 IT 系统创建美观且交互式的 Web 仪表板。
它非常适合设置监控仪表板,以便跟踪你的系统运行状况。

每个系统管理员都梦想在办公室里拥有一块大屏幕,以便查看系统的状态。

监视器

我们来建造一个

让我们进入正题,搭建一个简单的仪表盘,以便熟悉这个工具。
(要跟随本教程操作,您需要 PowerShell 5 或更高版本,并按照说明安装模块。)

创建一个dashboard.ps1文件并添加以下代码:



$dashboard = New-UDDashboard -Title "DevTo Dashboard" -Content{
    New-UDHeading -Text "DevTo"
}

Start-UDDashboard -Dashboard $dashboard -Port 1000 -AutoReload


Enter fullscreen mode Exit fullscreen mode

这里我们创建仪表盘对象并为其添加标题。
如果一切正常,执行此文件后您应该会看到以下输出:



Name       Port Running
----       ---- -------
Dashboard2 1000    True


Enter fullscreen mode Exit fullscreen mode

您的仪表盘应该可以通过http://localhost:1000访问:

仪表板

现在让我们让它更酷炫,添加一个不同的主题,我特别喜欢内置的 Azure 主题:



$theme = Get-UDTheme -Name 'Azure'
$dashboard = New-UDDashboard -Title "DevTo Dashboard" -Theme $theme -Content{
    New-UDHeading -Text "DevTo"
}
...



Enter fullscreen mode Exit fullscreen mode

现在酷多了,对吧?
Azure主题

监测

PowerShell Universal Dashboard 有一个名为monitor 的组件,它是一种特殊的图表,可以跟踪一段时间内的数据。例如,您可以使用它来绘制 CPU 或内存使用情况。



$theme = Get-UDTheme -Name 'Azure'
$dashboard = New-UDDashboard -Title "DevTo Dashboard" -Theme $theme -Content{
New-UdMonitor -Title "CPU (% processor time)" -Type Line -DataPointHistory 20 -RefreshInterval 10 -ChartBackgroundColor '#80FF6B63' -ChartBorderColor '#FFFF6B63'  -Endpoint {
            try {
                Get-Counter '\Processor(_Total)\% Processor Time' -ErrorAction SilentlyContinue | Select-Object -ExpandProperty CounterSamples | Select-Object -ExpandProperty CookedValue | Out-UDMonitorData
            }
            catch {
                0 | Out-UDMonitorData
            }
        }
}

Start-UDDashboard -Dashboard $dashboard -Port 1000 -AutoReload


Enter fullscreen mode Exit fullscreen mode

基本上,我们在这里所做的就是使用Get-Counter cmdlet从 Windows 性能监视工具获取实时数据,然后将其通过管道传递Out-UDMonitorData给监视器,将这些信息转换为监视器可读的数据。

UNIX 用户:此命令仅适用于Windows 系统,因此您需要寻找其他方法来获取 CPU 数据。
您可以尝试使用软件包mpstat中的命令sysstat,然后使用 PowerShell 解析数据。

图表

另一个非常实用的组件是图表。您可以将各种数据以柱状图折线图环形图饼图的形式展示。由于它们是基于Chart.js 库构建的,因此非常易于自定义和使用

例如,您可以使用环形图来显示已用磁盘空间和可用磁盘空间:



$theme = Get-UDTheme -Name 'Azure'
$dashboard = New-UDDashboard -Title "DevTo Dashboard" -Theme $theme -Content{

New-UDChart -Title "Disk Space" -Type Doughnut -RefreshInterval $refreshRate -Endpoint {  
            try {
                Get-CimInstance -ClassName Win32_LogicalDisk | Where-Object {$_.DriveType -eq '3'} | Select-Object -First 1 -Property DeviceID,Size,FreeSpace | ForEach-Object {
                    @([PSCustomObject]@{
                        Label = "Used Space"
                        Data = [Math]::Round(($_.Size - $_.FreeSpace) / 1GB, 2);
                    },
                    [PSCustomObject]@{
                        Label = "Free Space"
                        Data = [Math]::Round($_.FreeSpace / 1GB, 2);
                    }) | Out-UDChartData -DataProperty "Data" -LabelProperty "Label" -BackgroundColor @("#80FF6B63","#8028E842") -HoverBackgroundColor @("#80FF6B63","#8028E842") -BorderColor @("#80FF6B63","#8028E842") -HoverBorderColor @("#F2675F","#68e87a")
                }
            }
            catch {
                0 | Out-UDChartData -DataProperty "Data" -LabelProperty "Label"
            }
        }

}

Start-UDDashboard -Dashboard $dashboard -Port 1000 -AutoReload


Enter fullscreen mode Exit fullscreen mode

现在你可以在仪表盘上同时添加监控器和图表了。你的仪表盘现在应该看起来像这样。是不是很棒?😃

UNIX 用户:同样,这仅适用于 Windows 系统,但您可以轻松进行变通并将其调整以适用于 UNIX 系统。

瞧!一个相当酷炫美观的仪表盘就做好了。现在,找个大屏幕把它挂在墙上展示吧。

探索

这些示例只是该框架功能的一小部分。您还可以构建简单的 REST API、实现多页面动态轮播、添加可填写的输入表单以及许多其他组件。

最好的办法是自己去查证,他们的文档写得相当不错。

希望您也觉得这个工具和我一样有趣实用。

你觉得这个 PowerShell 模块怎么样?如果你用过这个工具,请在评论区告诉我你的使用体验 :)

文章来源:https://dev.to/jcoelho/powershell-universal-dashboard-making-interactive-dashboards-9kl