一、簡介
私有網絡(Virtual Private Cloud,VPC)是騰訊云上一塊由用戶自定義的邏輯隔離網絡空間,為云服務器、云數據庫等資源提供安全可控的網絡環境。通過構建邏輯隔離的、用戶自定義配置的網絡空間,用戶能夠提升其云上資源的安全性,并滿足不同的應用場景需求。
二、監控前準備
1、通過Zabbix外部檢查監控方式自動發現實例,監控項數據通過Zabbix采集器方式生成。將腳本上傳至外部檢查路徑下(需根據實際環境的外部檢查路徑放至腳本)。
#!/usr/bin/python3 import json from tencentcloud.common import credential from tencentcloud.common.profile.client_profile import ClientProfile from tencentcloud.common.profile.http_profile import HttpProfile from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException from tencentcloud.vpc.v20170312 import vpc_client, models import sys from os import popen from zbxsend import ZabbixMetric, ZabbixSender akey = sys.argv[1] ckey = sys.argv[2] region = sys.argv[3] ZABBIX_SEND_ADDR = '/home/zabbix/bin/zabbix_sender' ZABBIX_SERVER_IP = '127.0.0.1' ZABBIX_PORT = '10051' def get_data(offset):params = {"Limit": str(100),"Offset": str(offset)}req.from_json_string(json.dumps(params))# 返回的resp是一個DescribeVpcsResponse的實例,與請求對象對應resp = client.DescribeVpcs(req)# 輸出json格式的字符串回包res = resp.to_json_string()data = json.loads(res)disklist = data['VpcSet']# 獲取記錄總條目數totalcount = int(data['TotalCount'])return totalcount,disklisttry:# 實例化一個認證對象,入參需要傳入騰訊云賬戶 SecretId 和 SecretKey# 密鑰可前往官網控制臺 https://console.cloud.tencent.com/cam/capi 進行獲取cred = credential.Credential(akey,ckey)# 實例化一個http選項,可選的,沒有特殊需求可以跳過httpProfile = HttpProfile()httpProfile.endpoint = "vpc.tencentcloudapi.com"# 實例化一個client選項,可選的,沒有特殊需求可以跳過clientProfile = ClientProfile()clientProfile.httpProfile = httpProfile# 實例化要請求產品的client對象,clientProfile是可選的client = vpc_client.VpcClient(cred, region, clientProfile)# 實例化一個請求對象,每個接口都會對應一個request對象req = models.DescribeVpcsRequest()totalcount,disklist = get_data(0) ## 獲取100條以內的disk數據if totalcount > 100: ## 如果disk記錄大于100,則將100往后的數據拼接至listif totalcount % 100 > 0:num = totalcount // 100 + 1else:num = totalcount // 100for i in range(num):if i == 0:continueelse:disklist = disklist + get_data(i*100)[1]list_disk = []for i in disklist:vpc_id = i['VpcId']vpc_name = i['VpcName']vpc_name = vpc_name+vpc_idlist_disk.append({"{#VPCID}":vpc_id,"{#VPCNAME}":vpc_name})keys_list = list(i.keys())for key in keys_list:result = ZabbixSender(ZABBIX_SERVER_IP).send([ZabbixMetric(vpc_id,key,str(i[key]))])print(json.dumps(list_disk))except TencentCloudSDKException as err:print(err)
注意以下三處的值根據實際環境調整
ZABBIX_SEND_ADDR:zabbix_sender路徑
ZABBIX_SERVER_IP:server服務器IP地址
ZABBIX_PORT:server服務器端口
2、監控模板制作
2.1、新增自動發現規則用于自動發現VPC實例
tencent.VPC.py:腳本名稱,可自定義腳本名稱,需要與外部檢查路徑下的腳本名稱一致
{$ACCESS_KEY}:?SecretId
{$SECRET_KEY}:SecretKey
可前往官網控制臺?https://console.cloud.tencent.com/cam/capi?獲取SecretId和SecretKey
{$REGION}:資源地域,表示操作的資源所屬的地域
2.2、新增監控數據接收的監控模板
監控項名稱入口:
配置完成,等待自動發現即可。
探索技術無限可能,博主具有豐富監控模板資源及開發能力和項目管理經驗,歡迎添加交流一起探討,解決你的技術難題!
微信號:king_songax