700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Zabbix使用Python监控阿里云ECS

Zabbix使用Python监控阿里云ECS

时间:2019-02-27 20:38:03

相关推荐

Zabbix使用Python监控阿里云ECS

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

一、先安装需要的模块

# pip install aliyunsdkcore# pip install aliyunsdkecs# pip install aliyunsdkcms

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

#!/bin/python#coding=utf-8# 获取ecs 所有实例的详细信息# discovery_ecs.pyfrom aliyunsdkcore import clientfrom aliyunsdkecs.request.v0526 import DescribeInstancesRequestimport jsonId = 'xxx'Secret = 'xxx'RegionId = 'cn-shenzhen'clt = client.AcsClient(Id,Secret,RegionId)request = DescribeInstancesRequest.DescribeInstancesRequest();request.set_accept_format('json')response = json.loads(clt.do_action_with_exception(request), encoding='utf-8')# print(response)InstanceIdList = []InstanceIdDict = {}ZabbixDataDict = {}for i in response['Instances']['Instance']:InstanceIdDict['{#INSTANCEID}'] = i['InstanceId']InstanceIdList.append(InstanceIdDict)ZabbixDataDict["data"] = InstanceIdListprint(ZabbixDataDict)

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

#!/bin/python#coding=utf-8# check_ecs.py# ecs监控指标信息import jsonimport sysimport timeimport datetimefrom aliyunsdkcore import clientfrom aliyunsdkcms.request.v0308 import QueryMetricListRequest # 查询一段时间的from aliyunsdkcms.request.v0308 import QueryMetricLastRequest # 查询最新的一条记录Id = 'xxx'Secret = 'xxx'RegionId = 'cn-shenzhen'clt = client.AcsClient(Id,Secret,RegionId)def getMetriceData(instanceId,metric):request = QueryMetricLastRequest.QueryMetricLastRequest()request.set_accept_format('json')request.set_Project('acs_ecs_dashboard')request.set_Metric(metric)request.set_Dimensions("{'instanceId':'%s'}" % instanceId)request.set_Period('60')response = clt.do_action_with_exception(request)return json.loads(response)instanceId = sys.argv[1] metric = sys.argv[2]if metric == "CPUUtilization":CPUUtilization = getMetriceData(instanceId,"CPUUtilization")print(CPUUtilization)elif metric == "DiskReadIOPS": # 系统磁盘读IOPSDiskReadIOPS = getMetriceData(instanceId,"DiskReadIOPS")elif metric == "DiskWriteIOPS": # 系统磁盘写IOPSDiskReadIOPS = getMetriceData(instanceId,"DiskWriteIOPS")elif metric == "cpu_idle": # 当前空闲CPU百分比DiskReadIOPS = getMetriceData(instanceId,"cpu_idle")# 剩下的大部分都可用zabbix agent取值,所以这里就不再往下取值了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。