我有 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 選擇它們。