获取所有ECS云监控指标的Python脚本

网络
概览

本脚本是一个可通过配置文件(config.ini)进行构造申明,对接云监控openapi,获取某类云资源的某些监控指标的通用代码(目前在获取ECS及20+个ECS监控指标上测试通过)。如需获取其他云资源及其监控指标,可自行测试改造。

本脚本可对接influxdb2,将获取的云监控指标入库,同时配合grafana,将influxdb2作为datasource,灵活配置相应的监控dashboard。

目录结构
├── getAllECSResources.py          # 获取某类资源(如ECS)的所有实例
├── getALLMetrics.py               # 获取config.ini中配置的所有监控指标
├── dbutil.py                      # 操作influxdb的工具类
├── loggerUtil.py                  # 日志工具类
├── volcengine                     # 该目录下是根据AK&SK生成Token的工具类
├── readConfigFile.py              # 读取config.ini的工具类
├── markapp.log                    # 生成的日志文件
├── Dockerfile                     # docker images构建文件
├── requirement.txt      
└── config.ini                     # 核心配置文件

config.ini说明

USER_CREDENTIALS:对应用户的AKSK配置
FETCH_KINDOF_RESOURCES:获取某类云资源(如ECS)的所有资源清单(resourceid及name)
INFLUXDB:influxdb2的数据库链接信息
FETCH_METRIC_DATAS:获取云资源的监控指标配置,以ECS为例,MetricName可参照https://www.volcengine.com/docs/6408/68717,
增加所要获取的监控指标。详细配置参见配置文件内的注释。
启动服务

进入主目录

cd monitorMetricClient

使用python的包管理工具pip安装所有的第三方库:

pip install -r requirement.txt

运行程序:

cd callOpenApi
python getALLMetrics.py

Tips:本脚本针对获取ECS资源及ECS资源所支持的十多个监控指标测试通过,获取的监控指标根据MetricName所配置的指标名称自动生成influxdb2的
measurement并入库。

Influx测试基线版本为:2.1.1
Grafana测试基线版本为:8.3.3

构建docker镜像:

在根目录下执行如下命令,构建程序镜像
docker build -t <tag_name>:<version> . 
构建好镜像后,如通过K8平台部署,建议将config.ini作为configmap挂载。本程序可配置为K8平台的cronJob定时调度.

程序地址

如果您有其他问题,欢迎您联系火山引擎技术支持服务

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论