日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【逗老师带你学IT】PRTG、Zabbix通过API监控深信服VDC和VMP云桌面运行状态

發(fā)布時(shí)間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【逗老师带你学IT】PRTG、Zabbix通过API监控深信服VDC和VMP云桌面运行状态 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文介紹,如果使用API讓PRTG和Zabbix等第三方監(jiān)控系統(tǒng)獲取深信服云桌面產(chǎn)品(VDC+VMP)的運(yùn)行狀態(tài),可以獲取的監(jiān)控項(xiàng)包括

1、集群性能匯總(CPU、內(nèi)存、存儲(chǔ)、網(wǎng)絡(luò)IO)
2、集群運(yùn)行狀態(tài)(在線物理機(jī)數(shù)量、下線物理機(jī)數(shù)量、總虛機(jī)數(shù)量、運(yùn)行虛機(jī)數(shù)量等)
3、單臺(tái)物理機(jī)性能狀態(tài)(CPU、內(nèi)存、存儲(chǔ)、運(yùn)行虛擬機(jī)數(shù)量)
4、單臺(tái)物理機(jī)硬件狀態(tài)(CPU溫度、電源功率、內(nèi)存狀態(tài)等IPMI監(jiān)控項(xiàng))



目錄

  • 一、關(guān)于深信服VDC和VMP平臺(tái)
    • 1、VDC與VMP的關(guān)系
    • 2、VDC與VMP的監(jiān)控指標(biāo)
  • 二、VDC API接口說明
    • 1、操作權(quán)限認(rèn)證接口
    • 2、獲取集群在線用戶數(shù)量接口
    • 3、獲取VMP集群匯總性能信息
    • 4、獲取指定主機(jī)信息
  • 三、代碼使用說明
    • 1、Github地址
    • 2、PRTG添加自定義傳感器
      • 2.1、添加在線用戶監(jiān)控項(xiàng)
      • 2.2、添加集群性能匯總監(jiān)控項(xiàng)
      • 2.3、添加單一物理機(jī)性能監(jiān)控項(xiàng)
      • 2.4、添加服務(wù)器帶外管理監(jiān)控項(xiàng)
    • 3、PRTG運(yùn)行Python腳本的傳參
  • 搞定!

一、關(guān)于深信服VDC和VMP平臺(tái)

1、VDC與VMP的關(guān)系

先說一下深信服桌面云產(chǎn)品中VDC和VMP的關(guān)系。
VDC(Virtual Desktop Controller)是云桌面的控制平臺(tái),負(fù)責(zé)云端桌面的接入、展現(xiàn)、控制等。
VMP(Virtual Management Platform)是虛擬化管理平臺(tái),負(fù)責(zé)將裸金屬服務(wù)器構(gòu)建成虛擬化集群。

2、VDC與VMP的監(jiān)控指標(biāo)

所以,結(jié)合一個(gè)正常云計(jì)算系統(tǒng)的框架,我們想象一下這二者面向的對(duì)象和能獲取的監(jiān)控項(xiàng)。
VDC面向桌面,能監(jiān)控到桌面終端連接并發(fā)、用戶操作行為、文件拷貝速率、虛擬桌面數(shù)量等。
VMP面向虛擬化,能監(jiān)控到集群的CPU、內(nèi)存、存儲(chǔ)IO等指標(biāo)。

但是!但是!但是!
深信服這個(gè)傻X玩意不按常理出牌,這也就是為什么我要寫這么一篇文章來說明這個(gè)事情。
先上結(jié)論:
深信服的VMP自身就是個(gè)垃圾,對(duì)VMP的監(jiān)控需要通過調(diào)用VDC的接口來實(shí)現(xiàn)。

那么VDC是如何獲取VMP的運(yùn)行情況,如一般的桌面云產(chǎn)品一樣,VDC是可以管理VMP的,例如VDC可以直接調(diào)用VMP創(chuàng)建虛擬機(jī)。在深信服產(chǎn)品內(nèi),VDC內(nèi)需要添加VMP的控制信息,如下圖:

二、VDC API接口說明

深信服的云桌面API接口文檔已經(jīng)上傳【CSDN資源】深信服桌面云開放平臺(tái)(V1.2)
其中包含了資源管理接口、角色管理接口、虛擬機(jī)管理接口、策略組管理接口、用戶管理接口、用戶組管理接口、VMP管理虛擬機(jī)接口、日志接口、運(yùn)維接口等接口說明。感興趣的讀者可以去下載原文手冊(cè)。

本文全部代碼已經(jīng)上傳Github,地址如下:
Public_Share_Project/PRTG 自定義傳感器Customer Senser/深信服VDI監(jiān)控接口/

本文對(duì)運(yùn)維監(jiān)控需要用到的接口做詳細(xì)說明

1、操作權(quán)限認(rèn)證接口

POST https://<VDC ip>/v1/auth/tokens

簡(jiǎn)介
操作權(quán)限認(rèn)證,將auth_token賦值給請(qǐng)求頭部中Auth-Token字段才能獲取其余接口的訪問權(quán)限。

請(qǐng)求參數(shù)

參數(shù)位置類型必選描述
authbodyobjecty認(rèn)證對(duì)象
namebodystringy超級(jí)租戶賬號(hào)
passwordbodystringy超級(jí)租戶密碼

返回參數(shù)

參數(shù)位置類型必選描述
tokenbodyobjectytoken對(duì)象
tenant_idbodystringy租戶ID號(hào)
auth_tokenbodystringy認(rèn)證token

請(qǐng)求示例代碼

def get_token(deviceip,name,password):try:headers={'Content-Type':'application/json'}data={"auth": {"name": name,"password": password}}post_url='https://%s:11111/v1/auth/tokens'%deviceiprequest = requests.post(url=post_url,headers=headers,json=data,verify = False)request_text=json.loads(request.text)token_text=request_text['data']['token']['auth_token']except Exception as err:raise errelse:return token_text

2、獲取集群在線用戶數(shù)量接口

GET https://<VDC ip>/v1/user_groups

簡(jiǎn)介
獲取指定用戶組的基本信息,包括用戶組ID、用戶組名稱、描述、父組ID、是否啟用、區(qū)域名、策略組名、角色名

請(qǐng)求參數(shù)

參數(shù)位置類型必選描述
group_idPathIntY用戶組ID
page_sizePathIntY每頁(yè)顯示的數(shù)量
pagePathIntY顯示的頁(yè)數(shù)

響應(yīng)參數(shù)

參數(shù)位置類型必選描述
idBodyIntY用戶組ID
nameBodyStringY用戶組名稱
noteBodyStringY描述
group_idBodyIntY所屬用戶組ID
enableBodyIntY是否啟用 1是 0否
area_nameBodyStringY區(qū)域名
grpolicyBodyStringY策略組名
role_namesBodyStringY角色名列表

響應(yīng)示例

{"error_code":0,"error_message":"Operation succeeded. ","data":{"total_count":"2","list":[{"id":-1,"name":"Default Group","note":"System protected,unable to be deleted","group_id":-100,"enable":0,"area_name":"\u5f85\u5206\u914d\u533a\u57df","grpolicy":"Default policy set","role_names":"c"}]} }

請(qǐng)求示例代碼

def get_online_user_info(deviceip,token):try:headers={'Content-Type':'application/json','Auth-Token':token}get_url='https://%s:11111/v1/users?group_id=-100&page_size=10&page=1&user_state=online'%deviceiprequest = requests.get(url=get_url,headers=headers,verify = False)value_text=request.textexcept Exception as err:raise errelse:return value_textdef sort_online_user_info(value_text):try:value_dict={}value_json=json.loads(value_text)value_dict['Online_Users_Number']=[value_json['data']['total_count'],'#','']except Exception as err:raise errelse:return value_dict

本示例可以獲取到當(dāng)前在線用戶數(shù)量的監(jiān)控指標(biāo),并用于后續(xù)在PRTG和Zabbix上進(jìn)行展示。

3、獲取VMP集群匯總性能信息

GET /v1/vtp?vtp_id=3

簡(jiǎn)介
獲取VMP集群的集群信息,包括集群的主機(jī)、cpu、網(wǎng)卡、虛擬機(jī)、存儲(chǔ)、內(nèi)存數(shù)據(jù)。

請(qǐng)求參數(shù)

參數(shù)位置類型必選描述
vtp_idPathIntYVMP控制器 ID,根據(jù)添加的順序,第一個(gè)VMP集群的vtp_id=1

響應(yīng)參數(shù)

參數(shù)位置類型必選描述
clusterBodyObjectY集群信息
cpuBodyObjectYCPU信息
netBodyObjectY網(wǎng)卡信息
hostBodyObjectY主機(jī)信息
vmBodyObjectY虛擬機(jī)信息
stgBodyObjectY存儲(chǔ)信息
memBodyObjectY內(nèi)存信息
totalBodyIntY主機(jī)數(shù)量

響應(yīng)示例

{"error_code": 0,"data": {"cluster": {"cluster_num": 1,"is_cluster": 0},"is_graphics_cluster": 0,"cpu": {"ratio": "0.64","used": "22127.616","total": "34574.4"},"version": "VMP 5.4.2_B \nVMP5.4.0_B-2019-11-26_18:30:00\nupdate=1","net": {"receive": 894928,"send": 56412,"total": 951340},"host": {"offline": 0,"cnt": 1,"online": 1},"vm": {"on": 27,"vgpu_off": 0,"off": 125,"vgpu_on": 0,"cnt": 152,"vgpu_cnt": 0},"stg": {"itl": 1,"ratio": "0.44","vs": 1,"used": 1745930420224,"ext": 0,"total": 3994554466304,"cnt": 2},"mem": {"ratio": "0.67","used": 68899549184,"total": 103079215104}},"total": 2 }

請(qǐng)求示例代碼

def get_vmp_cluster_info(deviceip,token):try:headers={'Content-Type':'application/json','Auth-Token':token}get_url='https://%s:11111/v1/vtp?vtp_id=1'%deviceiprequest = requests.get(url=get_url,headers=headers,verify = False)value_text=request.textexcept Exception as err:raise errelse:return value_textdef sort_vmp_cluster_info(value_text):try:value_dict={}value_json=json.loads(value_text)value_dict['System_Version']=value_json['data']['data']['version'].replace('\n','')value_dict['CPU_Useage']=[float(value_json['data']['data']['cpu']['ratio'])*100,'%',3,-1,70,-1,80]value_dict['Memory_Useage']=[float(value_json['data']['data']['mem']['ratio'])*100,'%',3,-1,70,-1,80]value_dict['Storage_Useage']=[float(value_json['data']['data']['stg']['ratio'])*100,'%',3,-1,80,-1,85]value_dict['VMs_ON_Counts']=[value_json['data']['data']['vm']['on'],'#','']value_dict['VMs_Total_Counts']=[value_json['data']['data']['vm']['cnt'],'#','']value_dict['Physical_Servers_Online_Counts']=[value_json['data']['data']['host']['online'],'#','']value_dict['Physical_Servers_Offline_Counts']=[value_json['data']['data']['host']['offline'],'#',3,-1,0,-1,1]value_dict['Network_Total_Send_Speed']=[round(int(value_json['data']['data']['net']['send'])*8/1024/1024,2),'Mbps','']value_dict['Network_Total_Receive_Speed']=[round(int(value_json['data']['data']['net']['receive'])*8/1024/1024,2),'Mbps','']except Exception as err:raise errelse:return value_dict

本示例可以獲取到當(dāng)前集群的CPU、內(nèi)存等各種性能監(jiān)控指標(biāo),并用于后續(xù)在PRTG和Zabbix上進(jìn)行展示。

4、獲取指定主機(jī)信息

GET /v1/vtp/host?vtp_id=3&host_id=xxx

簡(jiǎn)介
獲取指定VMP集群上的指定主機(jī)信息。

請(qǐng)求參數(shù)

參數(shù)位置類型必選描述
vtp_idPathIntYVMP控制器 ID
host_idPathStringY主機(jī)ID

響應(yīng)參數(shù)

參數(shù)位置類型必選描述
host_ipBodyStringYIP地址
running_vmsBodyIntY運(yùn)行中的虛擬機(jī)數(shù)量
cpu_ratioBodyIntYCPU使用率
mem_ratioBodyIntY內(nèi)存使用率

響應(yīng)示例

{"error_code": 0,"error_message": "","data": {"host_ip": "10.70.50.5","running_vms": 20,"cpu_ratio": 57,"mem_ratio": 44} }

請(qǐng)求示例代碼

def get_server_info(deviceip,token,host_id):try:headers={'Content-Type':'application/json','Auth-Token':token}get_url='https://%s:11111/v1/vtp/host?vtp_id=1&host_id=%s'%(deviceip,host_id)request = requests.get(url=get_url,headers=headers,verify = False)value_text=request.textexcept Exception as err:raise errelse:return value_textdef sort_vmp_cluster_info(value_text):try:value_dict={}value_json=json.loads(value_text)value_dict['host_ip']=value_json['data']['host_ip']value_dict['CPU_Useage']=[float(value_json['data']['cpu_ratio']),'%',3,-1,70,-1,80]value_dict['Memory_Useage']=[float(value_json['data']['mem_ratio']),'%',3,-1,70,-1,80]value_dict['VMs_Running_Counts']=[value_json['data']['running_vms'],'#','']except Exception as err:raise errelse:return value_dict

本示例可以獲取到單一物理機(jī)的性能指標(biāo),并用于后續(xù)在PRTG和Zabbix上進(jìn)行展示。

三、代碼使用說明

作者已經(jīng)上傳了PRTG監(jiān)控系統(tǒng)可用的監(jiān)控腳本,Zabbix版本大佬們簡(jiǎn)單改一下輸出格式就可以了。

1、Github地址

本文全部代碼已經(jīng)上傳Github,地址如下:
Public_Share_Project/PRTG 自定義傳感器Customer Senser/深信服VDI監(jiān)控接口/

2、PRTG添加自定義傳感器

先將三個(gè)py腳本全部拷貝到PRTG探針傳感器的如下目錄

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

然后,在所有操作之前,我們首先添加一個(gè)新的設(shè)備,設(shè)備IP地址為VDC管理平臺(tái)的IP地址

添加設(shè)備的時(shí)候,配置Linux登錄憑據(jù),用戶名和密碼為VDC管理平臺(tái)的用戶名和密碼。

2.1、添加在線用戶監(jiān)控項(xiàng)

添加一個(gè)新的傳感器,傳感器類型為Python自定義腳本,選中下拉列表里剛才拷貝進(jìn)去的Sangfor_VDI_Oneline_Users.py腳本,同時(shí)勾選傳遞Linux憑據(jù)

稍等一會(huì)即可獲取到監(jiān)控?cái)?shù)據(jù)。

2.2、添加集群性能匯總監(jiān)控項(xiàng)

添加一個(gè)新的傳感器,傳感器類型為Python自定義腳本,選中下拉列表里剛才拷貝進(jìn)去的Sangfor_vmp_cluster_summary.py腳本,同時(shí)勾選傳遞Linux憑據(jù)

稍等一會(huì)即可獲取到監(jiān)控?cái)?shù)據(jù)。

2.3、添加單一物理機(jī)性能監(jiān)控項(xiàng)

添加一個(gè)新的傳感器,傳感器類型為Python自定義腳本,選中下拉列表里剛才拷貝進(jìn)去的Sangfor_vmp_host_info.py腳本,勾選傳遞Linux憑據(jù),同時(shí)攜帶一個(gè)自定義參數(shù)

{'host_id':'host-b4055d719a00'}

這個(gè)host_id在登錄VMP管理頁(yè)面后,可以在查看物理機(jī)詳情的時(shí)候通過iSCSI的IQN發(fā)現(xiàn)和獲取。


稍等一會(huì)即可獲取到監(jiān)控?cái)?shù)據(jù)。

2.4、添加服務(wù)器帶外管理監(jiān)控項(xiàng)

關(guān)于帶外管理監(jiān)控項(xiàng),可以參考博主之前的另一篇文章。
【逗老師帶你學(xué)IT】PRTG獲取HUAWEI FusionServer iBMC傳感器狀態(tài)
深信服一般OEM浪潮的服務(wù)器,都是標(biāo)準(zhǔn)的IPMI接口,本文需要用到的浪潮IPMI監(jiān)控腳本也已經(jīng)上傳到github,按照之前這篇文章的方式添加傳感器就可以了。

3、PRTG運(yùn)行Python腳本的傳參

剛才細(xì)心的讀者可能發(fā)現(xiàn),我們?cè)趧?chuàng)建設(shè)備的時(shí)候填入了一個(gè)linux憑據(jù),并且勾選了將linux憑據(jù)傳遞給python腳本。那么這兩個(gè)字段的數(shù)據(jù)在腳本中是如何獲取的呢。

我們來看一下python腳本的前幾行,這里通過linuxloginusername字段獲取linux憑據(jù)的登錄名,通過linuxloginpassword字段獲取linux登錄憑據(jù)的密碼。

data = json.loads(sys.argv[1]) deviceip = data['host'] name=data['linuxloginusername'] password=data['linuxloginpassword']

除了這兩個(gè)字段,PRTG在運(yùn)行Python腳本的時(shí)候還會(huì)傳遞更多的參數(shù)。所有參數(shù)以json結(jié)構(gòu)體的形式傳遞給Python腳本。
以下是筆者抓到的PRTG給Python腳本傳遞的參數(shù)示例。各位同學(xué)在今后編寫自定義腳本的時(shí)候。可以靈活的使用這些系統(tǒng)傳遞參數(shù)。

{ "momopersistent":"", "fastcount":"0", "lastuptime":"0", "hostv6":"", "writeresult":"0", "blockedsens":"", "reqmsginterval":"60", "tlsexplicit_default":"", "tlsexplicit_imap":"", "uptimecount":"0", "canlinux":"0", "isexesensor":"0", "mutexname":"", "reboot":"44127.3734878588", "usednstime":"0", "pythonscript":"save_log.py", "tlsexplicit_port":"", "inerror":"1", "sensorid":"4935", "ipversion":"0", "tlsexplicit_smtp":"", "params":"{'host_id':'host-b4055d719a00'}", "host":"172.16.0.22", "usewindowsauthentication":"0", "simulate":"0", "timeout":"59", "tlsexplicit_ftp":"", "lastmsg":"#O2", "notonpod":"0", "tlsexplicit_pop3":"", "linuxloginusername":"admin", "linuxloginpassword":"123" #如果此前勾選傳遞windows憑據(jù),這里會(huì)變化為windowsloginusername和password字段 }

搞定!

往期回顧:
【逗老師帶你學(xué)IT】PRTG監(jiān)控通過Python通過串口監(jiān)控UPS運(yùn)行狀態(tài)
【逗老師帶你學(xué)IT】PRTG監(jiān)控通過Python+Modbus RTU獲取溫濕度傳感器數(shù)據(jù)
【逗老師帶你學(xué)IT】PRTG監(jiān)控通過Python+Modbus TCP獲取溫濕度傳感器數(shù)據(jù)
【逗老師帶你學(xué)IT】職場(chǎng)數(shù)據(jù)中心異地出口容災(zāi),H3C的IP上一跳保持技術(shù)
【逗老師帶你學(xué)IT】阿里云監(jiān)控報(bào)警回調(diào)+轉(zhuǎn)發(fā)企業(yè)微信+轉(zhuǎn)發(fā)SnmpTrap+PRTG
【逗老師帶你學(xué)IT】HUAWEI華為防火墻自動(dòng)化運(yùn)維Python ssh管理網(wǎng)絡(luò)設(shè)備
【逗老師帶你學(xué)IT】PRTG獲取HUAWEI FusionServer iBMC傳感器狀態(tài)
【逗老師帶你學(xué)IT】PRTG自定義腳本ssh登錄網(wǎng)絡(luò)設(shè)備獲負(fù)載均衡鏈路狀態(tài)
【逗老師帶你學(xué)IT】Django+IIS+Python構(gòu)建微軟AD域控API管理中心
【逗老師帶你學(xué)IT】通過企業(yè)微信推送AD域密碼即將到期提醒
【逗老師帶你學(xué)IT】AD域控 Dsquery 查詢命令實(shí)例匯總
【逗老師帶你學(xué)IT】Google Admin服務(wù)賬號(hào)+API管理G suit內(nèi)所有網(wǎng)域用戶
【逗老師帶你學(xué)IT】PRTG監(jiān)控系統(tǒng)通過企業(yè)微信推送圖文混排告警消息
【逗老師帶你學(xué)IT】PRTG HTTP API獲取指定傳感器流量圖表圖片
【逗老師帶你學(xué)IT】PRTG監(jiān)控系統(tǒng)合并多個(gè)傳感器通道數(shù)據(jù)
【逗老師帶你學(xué)IT】PRTG監(jiān)控系統(tǒng)通過企業(yè)微信推送告警消息
【逗老師帶你學(xué)IT】PRTG監(jiān)控系統(tǒng)配合樹莓派采集企業(yè)內(nèi)部無線網(wǎng)絡(luò)質(zhì)量
【逗老師帶你學(xué)IT】vMware ESXi 6.7合并第三方硬件驅(qū)動(dòng)
【逗老師帶你學(xué)IT】Kiwi Syslog Server安裝和配置教程
【逗老師帶你學(xué)IT】Kiwi Syslog Web Access與Active Directory集成認(rèn)證
【逗老師帶你學(xué)IT】vMware ESXi 6.7合并第三方硬件驅(qū)動(dòng)
【逗老師帶你學(xué)IT】Windows Server Network Policy Service(NPS)記賬與審計(jì)
【逗老師帶你學(xué)IT】Windows Server NPS服務(wù)構(gòu)建基于AD域控的radius認(rèn)證
【逗老師帶你學(xué)IT】AD域控和freeradius集成認(rèn)證環(huán)境,PAP,MSCHAPV2
【逗老師帶你學(xué)IT】深信服SSL遠(yuǎn)程接入與深信服行為審計(jì)同步登陸用戶信息

總結(jié)

以上是生活随笔為你收集整理的【逗老师带你学IT】PRTG、Zabbix通过API监控深信服VDC和VMP云桌面运行状态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。