我使用 PRTG 监控我的服务器和网络。我的一些服务器是基于 Windows 的,我希望 PRTG 在服务停止时自动重启服务。
这可以使用 WMI 服务传感器来实现,但我遇到了一个难题。它要求我手动选择要监控的服务。这很麻烦,而且不可扩展。
我想自动发现满足条件的服务。例如,服务的启动类型设置为“自动”。这样,如果我想暂时覆盖自动重启,我可以将服务设置为“手动”。
这可能吗?
答案1
我使用 PRTG 已有几年了,我认为 PRTG GUI 之外的功能是不可能的。
你有 3 种可能性。
1)如果您想添加新的 WMI 服务传感器,您可以使用搜索字段来定义条件。但您只能过滤名称、描述或状态。所以我认为这对您没有太大帮助。(见图片)
2)如果您有一些类似的服务,想要在不同的系统上监控,您可以使用模板或克隆功能。但我想您现在会知道这一点,所以它对您没有太大帮助。真正帮助我的是最后一个:
3)使用 PRTG API。使用 API,您可以通过 HTTP 调用创建新的传感器。我多次使用此选项,它确实很有帮助。使用 API,您可以做很多在 Web GUI 中无法完成的事情。所以如果我是你,我会通过 Powershell 检查服务器。(Get-Service | Select * | ? Name -eq Spooler
- 仅示例)因此,您可以定义所有类型的条件并选择所需的服务。例如,如果您将它们放在数组中,则可以轻松发出 HTTP API 请求。示例:
$wclient = New-Object System.Net.WebClient
$wclient.DownloadString('https://PRTGURL/api/duplicateobject.htm?id=12345&name=NAME&targetid=23456&username=USER&passhash=PASSWORD')
这是复制现有传感器的示例。您需要一个现有的 WMI 传感器用于服务,然后可以克隆和修改新的传感器……我已经使用 SNMP 传感器完成了此操作。我克隆了它们,然后更改了 UID 以获得一个新的传感器,该传感器现在可以监控我想要的东西……
您可以在“配置” --> “PRTG API”下找到有关 PRTG API 的信息。或者在https://YOUR-PRTG-URL/api.htm?tabid=6
编辑: 您需要两个 API 调用:一个用于克隆,一个用于操作/更改您想要监控的服务名称。
当您想要从多个服务器中选择服务时,您可以使用 PS-Remoting,也可以通过 WMI 选择它们。