【逗老師帶你學IT】PRTG監控系統通過阿里雲API獲取雲產品運行狀況

本文介紹如何使PRTG監控系統通過阿里雲監控API獲取阿里雲產品監控數據。例如網絡帶寬,ECS性能,RDS產品性能等。
本文主要涉及的技術點:

1、PRTG監控系統高級自定義傳感器的使用
2、PRTG高級自定義傳感器xml或json返回值格式
3、阿里雲CMS雲監控API的使用

在這裏插入圖片描述
本文涉及的示例Github地址
Github/ytlzq0228/Public_Share_Project/PRTG Customer Senser/阿里雲相關-Alicloud-Monitor

在這裏插入圖片描述

一、阿里雲API AccessKey

1、創建API AccessKey

訪問阿里雲控制檯,RAM訪問控制,創建一個新用戶或者選擇一個已有的用戶,點擊創建AccessKey。關於AccessKey更多信息,可以參考阿里雲文檔訪問祕鑰常見問題

在這裏插入圖片描述

2、對AccessKey授予權限

對AccessKey所在的用戶,點擊權限管理,添加權限
本例中我們僅需要通過API調用雲監控的相關數據,因此授予 AliyunCloudMonitorReadOnlyAccess權限
在這裏插入圖片描述
在這裏插入圖片描述

二、阿里雲CMS雲監控產品API

官方文檔雲監控>API參考>API概覽

1、可視化調試工具

阿里雲提供一個可視化調試工具,可以直接在線可視化調試多種常見語言的雲產品的API。
CMS雲監控可視化調試
但是請注意,平臺通過已登錄用戶信息獲取當前賬號臨時Access Keys、對當前賬號線上資源發起線上資源操作,請小心操作
在調試過程中,會直接獲取登錄賬號的管理權限。如果使用管理員身份進行調試時,請務必小心使用DELETE,INSERT等功能,該功能會直接對雲產品進行操作。
在這裏插入圖片描述

2、安裝CMS雲監控API SDK

在可視化調試工具頁面,點擊SDK信息即可看到本功能需要使用的SDK信息。本例中主要涉及CMS雲監控產品,SDK信息如下:
SDK 包名稱:aliyun-python-sdk-cms
版本:7.0.12
包管理平臺:pypi 包訪問地址
安裝:pip install aliyun-python-sdk-cms

3、CMS雲監控API常用監控項

CMS中的DescribeMetricList接口是用戶獲取監控數據的API。
調用DescribeMetricList接口查詢指定時間段內的雲產品時序指標監控數據。
各雲產品的Namespace、Project、Metric、Period、Dimensions等參數的取值,請參見DescribeMetricMetaList雲監控主要監控項
怎麼說呢,你能想到的,在CMS頁面可以直接查看的監控數據,幾乎都可以通過API直接調用
本例中,我們對網絡產品的監控,主要涉及到的產品有VPN網關,CBWP共享帶寬,CEN國際流量等,可以在上文中找到具體的監控指標。
在開始之前,我們需要想好,我們需要收集並在PRTG中展示的監控指標。
例如在VPN網關產品中:
在這裏插入圖片描述

4、可視化調試工具中調用API獲取數據

DescribeMetricList接口有兩個必填參數。
*MetricName
*Namespace
對於不同的監控指標,這兩個參數可以在雲監控主要監控項中找到,對應關係如下圖所示。
在這裏插入圖片描述
DescribeMetricList接口有多個選填參數。具體參照DescribeMetricMetaList
在這裏插入圖片描述
可視化調試的時候,直接在左側填入信息,右側即可生成匹配的代碼,後期直接粘下來用就好了。
在這裏插入圖片描述
在這裏插入圖片描述

5、返回數據格式

正常JSON返回數據

{
	"RequestId": "FBDE19F1-7FA6-443C-9E5E-6338733E5E1D",
	"Period": "60",
	"Datapoints": "[
	{\"timestamp\":1593680460000,\"userId\":\"5727269569738808\",\"instanceId\":\"vpn-k1abi72jmago3qccwn2c7\",\"Value\":246318.56},
	{\"timestamp\":1593680520000,\"userId\":\"5727269569738808\",\"instanceId\":\"vpn-k1abi72jmago3qccwn2c7\",\"Value\":258930.16},
	{\"timestamp\":1593680580000,\"userId\":\"5727269569738808\",\"instanceId\":\"vpn-k1abi72jmago3qccwn2c7\",\"Value\":235862.64},
	{\"timestamp\":1593680640000,\"userId\":\"5727269569738808\",\"instanceId\":\"vpn-k1abi72jmago3qccwn2c7\",\"Value\":237868.12}
	]",
	"Code": "200",
	"Success": true

錯誤JSON返回數據

{
	"Message": "parse param dimensions error(123)",
	"RequestId": "82875E84-3AA2-45A0-8D6F-642A95711CDB",
	"Code": "400",
	"Success": false
}

訪問錯誤中心查看更多錯誤碼。

三、PRTG監控系統高級自定義傳感器

PRTG監控系統高級自定義傳感器EXE / Script Advanced傳感器在探針系統上運行可執行文件(.exe,.dll)或腳本(.bat,Python,VBScript,PowerShell)。此選項作爲PRTG API的一部分提供。此傳感器的返回值必須是有效的可擴展標記語言(XML)或JavaScript對象表示法(JSON)。
原文鏈接PRTG Manual: EXE/Script Advanced Sensor

1、PRTG傳感器XML、JSON返回值格式

PRTG系統中,高級EXE/腳本高級Python腳本高級SSH腳本高級HTTP推送數據高級HTTP數據高級HTTP IoT推送數據,上述這些傳感器所接收的返回值類型必須是XML或者JSON格式的數據。
以下最小示例將大多數參數保留爲其默認值,並返回兩個靜態通道值。

XML Return Format: Minimum Example:
<prtg>
	<result>
		<channel>First channel</channel>
		<value>10</value>
	</result>
	<result>
		<channel>Second channel</channel>
		<value>20</value>
	</result>
</prtg>
To return an error, the XML format is:
<prtg>
	<error>1</error>
	<text>Your error message</text>
</prtg>
JSON Return Format: Minimum Example
{
 "prtg": {
  "result": [
   {
    "channel": "First channel",
    "value": 10
   },
   {
    "channel": "Second channel",
    "value": 20
   }
  ]
 }
}

To return an error, the JSON format is:
{
 "prtg": {
  "error": 1,
  "text": "Your error message"
 }
}

其中,result中更多可選字段配置,可以參照Advanced Script, HTTP Data, and REST Custom Sensors原文文檔,可以自定義單位、類型、告警閾值、值浮點精度等,例如
在這裏插入圖片描述

2、本例中的返回值示例

我們以監控VPN網關的參數爲例,監控收/發包速率,入站/出站流量,延遲等五個參數,設計如下的XML返回值。

<?xml version="1.0" encoding="Windows-1252" ?>
<prtg>
   <result>
       <channel>Inbound Traffic</channel>
       <CustomUnit>Kb/s</CustomUnit>
       <mode>Absolute</mode>
       <float>1</float>
       <value>2343.27</value>
   </result>
   <result>
       <channel>Outbound Traffic</channel>
       <CustomUnit>Kb/s</CustomUnit>
       <mode>Absolute</mode>
       <float>1</float>
       <value>1068.66</value>
   </result>
   <result>
       <channel>Inbound Packets</channel>
       <CustomUnit>Pkgs/s</CustomUnit>
       <mode>Absolute</mode>
       <float>1</float>
       <value>494.58</value>
   </result>
   <result>
       <channel>Outbound Packets</channel>
       <CustomUnit>Pkgs/s</CustomUnit>
       <mode>Absolute</mode>
       <float>1</float>
       <value>424.13</value>
   </result>
   <result>
       <channel>Update Time Dealy</channel>
       <Unit>TimeSeconds</Unit>
       <mode>Absolute</mode>
       <float>1</float>
       <LimitMaxError>300</LimitMaxError>
       <LimitMaxWarning>180</LimitMaxWarning>
       <value>57.0</value>
   </result>
   <text>OK</text>
</prtg>

3、添加高級自定義傳感器

在PRTG探針所在的操作系統裏編寫正確的腳本,確定腳本會返回如上格式的XML或者JSON數據返回值。
保存到如下位置

C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML

然後,在PRTG系統裏面,添加傳感器,搜索“EXE”,選擇“高級EXE/腳本”
在這裏插入圖片描述
EXE/腳本選擇剛纔創建的腳本文件
互斥名稱儘量跟參數保持一致。PRTG將逐一執行 (並非同時執行)擁有相同互斥名稱的所有 EXE/腳本傳感器。如果您擁有大量傳感器並想要避免由同時運行進程所引起的資源高度使用,這十分有用。
在這裏插入圖片描述

搞定!等待看數據就好了

往期回顧:
【逗老師帶你學IT】通過企業微信推送AD域密碼即將到期提醒
【逗老師帶你學IT】AD域控 Dsquery 查詢命令實例彙總
【逗老師帶你學IT】Google Admin服務賬號+API管理G suit內所有網域用戶
【逗老師帶你學IT】PRTG監控系統通過企業微信推送圖文混排告警消息
【逗老師帶你學IT】PRTG HTTP API獲取指定傳感器流量圖表圖片
【逗老師帶你學IT】PRTG監控系統合併多個傳感器通道數據
【逗老師帶你學IT】PRTG監控系統通過企業微信推送告警消息
【逗老師帶你學IT】PRTG監控系統配合樹莓派採集企業內部無線網絡質量
【逗老師帶你學IT】vMware ESXi 6.7合併第三方硬件驅動
【逗老師帶你學IT】Kiwi Syslog Server安裝和配置教程
【逗老師帶你學IT】Kiwi Syslog Web Access與Active Directory集成認證
【逗老師帶你學IT】vMware ESXi 6.7合併第三方硬件驅動
【逗老師帶你學IT】Windows Server Network Policy Service(NPS)記賬與審計
【逗老師帶你學IT】Windows Server NPS服務構建基於AD域控的radius認證
【逗老師帶你學IT】AD域控和freeradius集成認證環境,PAP,MSCHAPV2
【逗老師帶你學IT】深信服SSL遠程接入與深信服行爲審計同步登陸用戶信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章