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
这里我们创建仪表盘对象并为其添加标题。
如果一切正常,执行此文件后您应该会看到以下输出:
Name Port Running
---- ---- -------
Dashboard2 1000 True
您的仪表盘应该可以通过http://localhost:1000访问:
现在让我们让它更酷炫,添加一个不同的主题,我特别喜欢内置的 Azure 主题:
$theme = Get-UDTheme -Name 'Azure'
$dashboard = New-UDDashboard -Title "DevTo Dashboard" -Theme $theme -Content{
New-UDHeading -Text "DevTo"
}
...
监测
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
基本上,我们在这里所做的就是使用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
现在你可以在仪表盘上同时添加监控器和图表了。你的仪表盘现在应该看起来像这样。是不是很棒?😃
UNIX 用户:同样,这仅适用于 Windows 系统,但您可以轻松进行变通并将其调整以适用于 UNIX 系统。
瞧!一个相当酷炫美观的仪表盘就做好了。现在,找个大屏幕把它挂在墙上展示吧。
探索
这些示例只是该框架功能的一小部分。您还可以构建简单的 REST API、实现多页面动态轮播、添加可填写的输入表单以及许多其他组件。
最好的办法是自己去查证,他们的文档写得相当不错。
希望您也觉得这个工具和我一样有趣实用。
你觉得这个 PowerShell 模块怎么样?如果你用过这个工具,请在评论区告诉我你的使用体验 :)
文章来源:https://dev.to/jcoelho/powershell-universal-dashboard-making-interactive-dashboards-9kl



