Zabbix监控腾讯云VPC

一、简介

私有网络(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,disklist

try:
    # 实例化一个认证对象,入参需要传入腾讯云账户 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往后的数据拼接至list
        if totalcount % 100 > 0:
            num = totalcount // 100 + 1
        else:
            num = totalcount // 100
        for i in range(num):
            if i == 0:
                continue
            else:
                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_id
        list_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

相关推荐

  1. 阿里

    2023-12-12 22:00:04       59 阅读
  2. 部署服务问题汇总

    2023-12-12 22:00:04       68 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-12 22:00:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-12 22:00:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-12 22:00:04       82 阅读
  4. Python语言-面向对象

    2023-12-12 22:00:04       91 阅读

热门阅读

  1. unity Pc获取本机Mac地址

    2023-12-12 22:00:04       61 阅读
  2. react面试总结2

    2023-12-12 22:00:04       43 阅读
  3. 7-3 Left-pad

    2023-12-12 22:00:04       42 阅读
  4. Linux0.11内核源码解析-printk

    2023-12-12 22:00:04       56 阅读
  5. Linux(centos, ubuntu) 快速安装anaconda;5秒安装anaconda

    2023-12-12 22:00:04       65 阅读
  6. ROS-ROS通信机制-常用API

    2023-12-12 22:00:04       54 阅读
  7. YOLO_embedded: YOLO算法快速嵌入式部署

    2023-12-12 22:00:04       64 阅读
  8. 机房建设设计方案

    2023-12-12 22:00:04       50 阅读
  9. 好题分享(1)

    2023-12-12 22:00:04       66 阅读
  10. ARM NEON加速介绍及使用示例

    2023-12-12 22:00:04       45 阅读
  11. 【设计模式】:单例模式

    2023-12-12 22:00:04       55 阅读
  12. AtCoder Beginner Contest 332

    2023-12-12 22:00:04       66 阅读