当前位置: 首页 > news >正文

Zabbix如何监控腾讯云NAT网关

1、NAT网关介绍

NAT 网关(NAT Gateway)是一种支持 IP 地址转换服务,提供网络地址转换能力,主要包括SNAT(Source Network Address Translation,源网络地址转换)和DNAT(Destination Network Address Translation,目的网络地址转换)能力,可为私有网络(VPC)内的资源提供安全、高性能的 Internet 访问服务。

NAT 网关分为公网 NAT 网关和私网 NAT 网关。公网 NAT 网关提供公网地址转换服务,而私网 NAT 网关提供私网地址转换服务。

NAT 网关支持高达99.99%的高可用性、5Gbps的带宽以及1000 万以上的并发连接数,其典型应用场景如下:

1. 大带宽、高可用的公网出口服务,例如:网络爬虫,访问 Internet 公共服务等。

2. 安全的公网出口服务,例如:云服务器需要与公网通信,但出于安全性考虑,不希望云服务器绑定公网 IP。

2、监控准备

本次监控方式通过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 =
'/itops/zabbix/bin/zabbix_sender'
ZABBIX_SERVER_IP = '127.0.0.1'
ZABBIX_PORT = '10051'
def get_data(offset):params = {"Limit": 100,"Offset": offset}req.from_json_string(json.dumps(params))# 返回的resp是一个DescribeNatGatewaysResponse的实例,与请求对象对应resp = client.DescribeNatGateways(req)# 输出json格式的字符串回包res = resp.to_json_string()data = json.loads(res)disklist = data['NatGatewaySet']# 获取记录总条目数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.DescribeNatGatewaysRequest()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:
        nat_id = i['NatGatewayId']
        nat_name = i['NatGatewayName']
        nat_name = nat_name+nat_id
        list_disk.append({"{#NATID}":nat_id,"{#NATNAME}":nat_name})
        keys_list = list(i.keys())
        for key in keys_list:
            result = ZabbixSender(ZABBIX_SERVER_IP).send([ZabbixMetric(nat_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服务器端口

3、创建监控模板

3.1.创建NAT网关实例自动发现规则

键值解释:

tencent.NAT.py:脚本名称,可自定义脚本名称,需要与外部检查路径下的脚本名称一致

$ACCESS_KEY}: SecretId

{$SECRET_KEY}:SecretKey

可前往官网控制台 https://console.cloud.tencent.com/cam/capi 获取SecretId和SecretKey

{$REGION}:资源地域,表示操作的资源所属的地域

3.2、监控模板上创建监控项原型

监控项名称入口:

创建主机关联监控模板即可。

博主可能不能及时回答疑问,如技术问题欢迎加入交流。

博主具有丰富的模板资源和开发能力及项目落地管理经验分享欢迎加入交流

微信号:king_songax

相关文章:

  • 离散傅里叶变换中的能量守恒公式(帕斯瓦尔定理)及其程序举例验证
  • 根据Word模板,使用POI生成文档
  • Datawhale-AIGC实践
  • 【服务器】Java连接redis及使用Java操作redis、使用场景
  • pytorch笔记 GRUCELL
  • mediasoup-cluster横向扩容机制
  • mac flutter pb解析报错:protoc-gen-dart: program not found or is not executable
  • 蓝桥杯官网练习题(正则问题)
  • openGauss学习笔记-114 openGauss 数据库管理-设置安全策略-设置帐号有效期
  • gcc: __linux__
  • [SSD综述 1.4] SSD固态硬盘的架构和功能导论
  • Julia文件读写函数:write和read
  • 无mac电脑获取app的公钥的方法
  • IOC容器中的Bean是线程安全的吗?
  • 【jvm】虚拟机栈
  • const let
  • Django 博客开发教程 8 - 博客文章详情页
  • es6要点
  • IDEA 插件开发入门教程
  • Koa2 之文件上传下载
  • nodejs调试方法
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • quasar-framework cnodejs社区
  • ReactNative开发常用的三方模块
  • Selenium实战教程系列(二)---元素定位
  • sessionStorage和localStorage
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 模型微调
  • 前端知识点整理(待续)
  • 物联网链路协议
  • 项目管理碎碎念系列之一:干系人管理
  • 项目实战-Api的解决方案
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 7行Python代码的人脸识别
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • #pragma once
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • ()、[]、{}、(())、[[]]命令替换
  • (5)STL算法之复制
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (理论篇)httpmoudle和httphandler一览
  • (七)Java对象在Hibernate持久化层的状态
  • (三)模仿学习-Action数据的模仿
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)winform之ListView
  • (转)母版页和相对路径
  • ../depcomp: line 571: exec: g++: not found
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .net 怎么循环得到数组里的值_关于js数组
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .Net的C#语言取月份数值对应的MonthName值