Loading... ## 安装模块 ### 安装依赖包 yum -y install install python3 python-dev python3-pip.noarch ### 安装PY模块 pip3 install requests pip3 install --trusted-host=https://mirrors.aliyun.com/pypi/simple aliyunsdkecs # 获取ECS的SDK pip3 install aliyun-python-sdk-core pip3 install aliyun-python-sdk-ecs # 获取ECS的SDK pip3 install aliyun-python-sdk-cms==6.0.12 ## 获取实例ID脚本配置 [root@localhost alicloud_monitor]# vim collect_ecs.py #!/bin/python3 #coding=utf-8 from aliyunsdkcore import client from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest import json # AK Id = ' ' # SK Secret = ' ' # 区域ID RegionId = ' ' 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"] = InstanceIdList print(ZabbixDataDict) ## 获取实例监控数据 [root@localhost alicloud_monitor]# vim collect_ecs_value.py #!/bin/python3 #coding=utf-8 import json import sys import time import datetime import pprint from aliyunsdkcore import client from aliyunsdkcms.request.v20180308 import QueryMetricLastRequest from jsonpath import jsonpath # AK Id = ' ' # SK Secret = ' ' # 区域ID RegionId = ' ' 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": print(getMetriceData(instanceId,metric)["Datapoints"]) elif metric == "DiskReadIOPS": # 系统磁盘读IOPS print(getMetriceData(instanceId,metric)["Datapoints"]) elif metric == "DiskWriteIOPS": # 系统磁盘写IOPS print(getMetriceData(instanceId,metric)["Datapoints"]) elif metric == "cpu_idle": # 当前空闲CPU百分比 print(getMetriceData(instanceId,metric)["Datapoints"]) ## 执行脚本 ### 获取实例ID [root@localhost alicloud_monitor]# python3 collect_ecs.py # 示例返回值 {'data': [{'{#INSTANCEID}': 'i-uf6czzkx9v1z6aqxp7sy'}, {'{#INSTANCEID}': 'i-uf6czzkx9v1z6aqxp7sy'}, {'{#INSTANCEID}': 'i-uf6czzkx9v1z6aqxp7sy'}, {'{#INSTANCEID}': 'i-uf6czzkx9v1z6aqxp7sy'}, {'{#INSTANCEID}': 'i-uf6czzkx9v1z6aqxp7sy'}]} ### 获取实例监控数据 python3 collect_ecs_value.py 实例ID DiskReadIOPS # 系统磁盘读IOPS python3 collect_ecs_value.py 实例ID DiskWriteIOPS # 系统磁盘写IOPS python3 collect_ecs_value.py 实例ID cpu_idle # 当前空闲CPU百分比 python3 collect_ecs_value.py 实例ID CPUUtilization # 当前使用CPU百分比 # 示例返回值 [root@localhost alicloud_monitor]# python3 collect_ecs_value.py i-uf6czzkx9v1z6aqxp7sy CPUUtilization [{"timestamp":1626922920000,"userId":"1946366562354944","instanceId":"i-uf6czzkx9v1z6aqxp7sy","Minimum":3.04,"Maximum":3.04,"Average":3.04}] 最后修改:2021 年 07 月 22 日 11 : 03 AM © 允许规范转载