使用Python走阿里云API获取SLB相关监控信息,然后用在Zabbix监控上。

一、先安装需要的模块

# pip install aliyunsdkcore
# pip install aliyunsdkslb
# pip install aliyunsdkcms

二、获取SLB实例,用于Zabbix上自动发现

# /usr/bin/python
# coding:utf-8
# discovery_slb.pyimport json
import sys
import time
import datetime
from aliyunsdkcore import client
from aliyunsdkslb.request.v20140515 import DescribeLoadBalancersRequest
from aliyunsdkslb.request.v20140515 import  DescribeLoadBalancerAttributeRequestId = 'xxx'
Secret = 'xxx'
RegionId = 'cn-shenzhen'LoadBalancersList = []
LoadBalancersDict = {}
ZabbixDataDict = {}clt = client.AcsClient(Id, Secret, RegionId)
request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest();
request.set_accept_format('json')
response = json.loads(clt.do_action_with_exception(request), encoding='utf-8')for i in response['LoadBalancers']['LoadBalancer']:LoadBalancersDict["{#LOADBALANCERID}"] = i['LoadBalancerId']LoadBalancersDict["{#LOADBALANCERVIP}"] = i['Address']LoadBalancersList.append(LoadBalancersDict)ZabbixDataDict['data'] = LoadBalancersList
print(ZabbixDataDict)'''
result:
{'data': [{'{#LOADBALANCERID}': 'lb-wz9qncudq2wwlely1g3ar', '{#LOADBALANCERVIP}': '120.78.29.236'}, \{'{#LOADBALANCERID}': 'lb-wz9qncudq2wwlely1g3ar', '{#LOADBALANCERVIP}': '120.78.29.236'}]}
'''

三、采集SLB实例上的各种监控指标数据

#!/bin/python
#coding=utf-8
# slb监控指标信息
# check_slb.pyimport json
import sys
import time
import datetime
from aliyunsdkcore import client
from aliyunsdkcms.request.v20180308 import QueryMetricListRequest # 查询一段时间的
from aliyunsdkcms.request.v20180308 import QueryMetricLastRequest # 查询最新的一条记录Id = 'xxx'
Secret = 'xxx'
RegionId = 'cn-shenzhen'clt = client.AcsClient(Id,Secret,RegionId)#只获取三分钟内的数据(有时值是三个有时是两个,但是我只取最后一个)
start_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()-180))
timestamp_start = int(time.mktime(time.strptime(start_time, "%Y-%m-%d %H:%M:%S")))*1000def getMetriceData(metrice,slbid,slbip,slbport):request = QueryMetricLastRequest.QueryMetricLastRequest()request.set_accept_format('json')#两个参数按照预设值设定,参见参考资料描述request.set_Project('acs_slb_dashboard')request.set_Metric(metrice) request.set_StartTime(timestamp_start)#从系统输入参数获取IP地址和SLB-IDrequest.set_Dimensions({'instanceId':slbid}) #'port':slbport,'vip':slbip})request.set_Period('60')result = clt.do_action_with_exception(request)datadict = json.loads(result)res = datadict['Datapoints'] # [-2]['Average']return json.loads(res)[0]['Average']Type = sys.argv[1]
Slb_Id = sys.argv[2]
Slb_IP = sys.argv[3]
Slb_Port = sys.argv[4]if (Type == 'UnhealthyServerCount'): # 后端异常实例个数res = getMetriceData(Type,Slb_Id,Slb_IP,Slb_Port)print(res)
elif (Type == 'TrafficRXNew'): # 端口每秒流入数据量 bit/sres = getMetriceData(Type,Slb_Id,Slb_IP,Slb_Port)print(res)
elif (Type == 'TrafficTXNew'): # 端口每秒流出数据量 bit/sres = getMetriceData(Type,Slb_Id,Slb_IP,Slb_Port)print(res)
elif (Type == 'ActiveConnection'):  # 端口当前活跃连接数res = getMetriceData(Type,Slb_Id,Slb_IP,Slb_Port)print(res)
elif (Type == 'InactiveConnection'): # 端口当前非活跃连接数,既访问SLB后未断开的空闲的连接res = getMetriceData(Type,Slb_Id,Slb_IP,Slb_Port)print(res)
elif (Type == 'MaxConnection'):  # 端口当前并发连接数res = getMetriceData(Type,Slb_Id,Slb_IP,Slb_Port)print(res)
elif (Type == 'InstanceActiveConnection'): # 实例每秒活跃连接数res = getMetriceData(Type,Slb_Id,Slb_IP,Slb_Port)print(res)
elif (Type == 'InstanceDropConnection'): # 实例每秒丢失连接数res = getMetriceData(Type,Slb_Id,Slb_IP,Slb_Port)print(res)
elif (Type == 'InstanceMaxConnection'): # 实例每秒最大并发连接数res = getMetriceData(Type,Slb_Id,Slb_IP,Slb_Port)print(res)
elif (Type == 'InstanceNewConnection'): # 实例每秒新建连接数res = getMetriceData(Type,Slb_Id,Slb_IP,Slb_Port)print(res)

Zabbix使用Python监控阿里云SLB相关推荐

  1. Zabbix使用Python监控阿里云ECS

    使用Python走阿里云API获取ECS相关监控信息,然后用在Zabbix监控上. 一.先安装需要的模块 # pip install aliyunsdkcore # pip install aliyu ...

  2. Zabbix 监控阿里云RDS

    简介 Zabbix 监控阿里云RDS数据库.主要通过阿里云提供的API来进行监控. 需要在阿里云获取"用户AccessKey"指定ID,进行RDS监控. 环境 服务:Zabbix ...

  3. python设计查询余额程序_python实现监控阿里云账户余额功能

    背景 由于阿里云oss,cdn消耗钱的速度比较快,在不知道的情况下,服务就被停了,影响比较大.所以想做个监控.百度一下阿里云账户余额 api 还真有:于是开启了踩坑之路. 查阅资料创建accessKe ...

  4. python实现监控阿里云账户余额

    目录 背景 查阅资料创建accessKeyId和accessKeySecret 撸码阶段 背景 由于阿里云oss,cdn消耗钱的速度比较快,在不知道的情况下,服务就被停了,影响比较大.所以想做个监控. ...

  5. Rancher通过Aliyun-slb服务对接阿里云SLB教程

    阿里云负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS)的流量分发控制服务. 本文将详尽演示Rancher如何通过Aliyun-slb服务对接 ...

  6. 阿里云SLB上http强制跳转到https问题处理

    背景: 最近一客户有一个需求,需要将外网所有http访问请求强制跳转到https,公网出口使用阿里云SLB,证书放在SLB上,SLB后端实例为ECS(webserver)web服务使用nginx, 网 ...

  7. 调用阿里云SLB API设置SLB权重

    背景:服务部署在阿里云ECS上,使用了阿里云SLB做负载均衡.使用jenkins做金丝雀发时,希望可以自动修改SLB的权重,实现服务器的上下线. 安装阿里云Python SDK 完成以下操作安装Pyt ...

  8. Rancher通过Aliyun-slb服务对接阿里云SLB教程 1

    概要 阿里云负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(Elastic Compute Service,简称 ECS)的流量分发控制服务. 负载 ...

  9. 阿里云SLB负载均衡理论与操作

    目录 一.负载均衡概念 二.SLB 1.CLB与ALB 2.负载均衡包含的模块 3.使用ECS的优势 3. 负载均衡的使用场景 4.SLB的优势 5.SLB提供的功能 6.SLB的应用场景 7.SLB ...

最新文章

  1. mysql 存储过程out,in,inout分别表示什么
  2. 苹果签名分发系统需要什么配置的服务器呢,苹果/IOS超级签名分发系统
  3. 一个指针的引用引发的血案
  4. VCS user guide读书笔记启发篇
  5. python操作mongodb之六自定义类型存储
  6. 使用gradle多渠道打包
  7. 回顾4180天在腾讯使用C#的历程,开启新的征途
  8. Linux内核的Makefile和kconfig解读
  9. 400位京东技术专家心血之作 《决战618:探秘京东技术取胜之道》重磅发售!
  10. 拓端tecdat|R语言泊松Poisson回归模型分析案例
  11. C# 不借助第三个变量实现两整数交换
  12. 计算机网络中的数据通信——(1)基本结构
  13. 校园一角 四年级计算机课,校园一角的四年级作文5篇
  14. Baas是什么?区块链Baas平台开发解决方案带你知晓
  15. Springboot 整合 Current-Limiting 实现接口限流
  16. 好评率超高的9个公众号,值得收藏
  17. 【摄影】如何利用手机拍摄好的摄影作品
  18. AES加密解密算法的C代码实现
  19. 沉痛悼念“中国航天之父”、我校创始人之一、近代力学系首任系主任钱学森先生
  20. JAVASE总结回顾(秦疆老师)

热门文章

  1. GitLab 与 Jenkins 结合构建持续集成环境
  2. 劳务派遣单位与员工发生争议算不算劳动争议
  3. RMS:均方根值,RMSE:均方根误差,MSE:标准差,定义及C++实现
  4. 软件开发代码防泄密管理
  5. android 3D 游戏实现之First Step
  6. NAudio读取音频数据格式不一致的问题
  7. 温度信号波形c 语言,基于CC2530的温度报警器的应用实现
  8. 全国各省市区域mysql_中国省市区数据mysql脚本_MySQL
  9. 电脑游戏一直显示连接服务器,那是怎么回事?电脑上所有的游戏一到连接服务 – 手机爱问...
  10. 瑞士采取措施使传统监管法规适用于加密货币