阿里云自动巡检

背景简介随着智能化的快速发展及信息通信技术的不断创新 , 各大企业基于对信息安全 , 成本等各方面的考虑开始选择上云 。 作为国内云服务的领军者 , 阿里云也成为了大家重点关注和使用的云服务之一 。 上云节省了我们运维人员日常的工作 , 再也不用担心机房的温度、湿度等一系列问题 。 只需要关注服务器运行状况即可 。 大大减少了日常的工作量 。
做运维永远是预防比消防更重要相信是很多运维人员的共识 。 定时巡检能够及时发现设备的异常情况 , 避免事故的发生 , 保障服务的稳定运行 。 对于服务器巡检来说 , 最基础的当然就是服务器的资源使用情况 。 CPU使用率、内存是否有异常波动 , 磁盘空间是否充足 。 当我们服务器数量较少的时候我们可以通过监控大盘去查看 , 但是当服务器数量达到100台以上时 , 监控大盘的缺点就表现出来了 。 我们去观察CPU性能曲线的时候如果数量过多会导致曲线过于密集 。
如果用TOP的方式去展示又有可能因为计算TOP算法的问题导致某些存在隐患的机器被掩盖掉 , 没有展示出来 , 从而导致隐患的存在 。 但是每一台机器去观察既浪费时间又耗费精力 。 所以这里针对阿里云写了一个python的脚本来解决这个问题 。 脚本会自动获取指定时间段的阿里云监控数据 , 并且与提前设置好的阈值进行对比 。 如果监控数据达到了设定好的阈值就会写入到文本文档中 。 我们只需要定时去执行这个脚本 , 并且查看巡检结果即可 。 该脚本可以配合监控大盘去使用 , 达到一个相互辅助的效果 , 让我们在日常巡检的过程中更加游刃有余 。
脚本介绍简介
脚本巡检阈值可以自行设置调整 。 单次执行可以对多个阿里云账号及多个地域进行巡检 。
目前脚本还是不断迭代中 , 会支持越来越多的阿里云产品 。
脚本巡检内容

  1. ECS CPU使用率
  2. ECS 内存使用率
  3. ECS磁盘空间使用率
  4. OSS bucket 存储使用量
  5. OSS 资源包订购情况
脚本工作流程图
  1. 设定巡检时间
  2. 读取配置文件并生成client
  3. 获取阿里云监控数据
  4. 判断是否超过阈值并生成巡检信息
  5. 生成易读的巡检文本
脚本详解阿里云client
当我们需要获取阿里云云监控的监控数据的时候 , 第一步就是要创建client , 即进行鉴权 。 只有通过鉴权才能获取到我们想要的数据 。 首先我们要创建AK , 这里不再详细描述如何生成AK , 阿里云官方文档中有详细的步骤 。 这里建议使用子账号的AK进行 , 并且尽量缩小权限 , 这样可以最大限度的保证账号的安全 。
阿里云自动巡检文章插图
创建client其实很简单 , 只要调用AcsClient这个方法即可 。 这个方法包含在阿里云python sdk的核心包里面 。
云产品时序指标监控数据
当我们需要获取一些云产品在一段时间内的监控数据 , 就需要用到DescribeMetricList 这个接口 。
接口请求参数如下:
阿里云自动巡检文章插图
代码如下:
阿里云自动巡检文章插图
这里我们通过设置request对象的参数来切换我们所需要查询的数据 。 其中nameSpace代表了不同的云产品 , metricName代表该云产品的不同监控项 。
这里需要注意的是各云产品的Namespace、Project、Metric、Period、Dimensions等参数的取值都是不一样的 , 可以参考如下链接:
获取数据并写入数据库
有了通用的获取时序监控数据的方法后就该获取我们想要的数据了 。 这里我们把需要的数据写入到sqlite3数据库中备用 。