腾讯云自动巡检python脚本
最近在帮客户弄腾讯云自动脚本巡检的问题,并且需要部署在docker上,所以把问题记录一下:
由于腾讯云的api最近在更新,但是V3版本的api还没有完全发布,所以要两个版本混用来写。
环境:
centos7
docker19.03.5
python3.7
tencentcloud-sdk-python-master:包含V2和V3两个版本的api,V3api无则用V2
([https://github.com/TencentCloud/tencentcloud-sdk-python]
1、api获取数据时粒度
- 腾讯云api目前支持10s,60s和5min粒度的监控数据查询,但是在实际使用时发现,使用个别项(如cvm)获取数据时,在不同的粒度下存在获取不到数据的问题,咨询腾讯云官方,给出的结论是不同粒度的产品使用的是不同的数据源,故需在测试时选择数据稳定的数据源。
- 由于获取时数据粒度过小,故需在数据拿到后对数据进行聚合。
- 由于数据时间跨度过长,建议在获取多类数据时使用多线程,加快数据获取和处理的速度。
2、邮件发送问题
- 生成巡检报告并写入xls文件后,需要将文件发送给对应的客户,由于客户不想每次都下载文件,故需将汇总结果添加到邮件正文中,由于一开始未考虑部署的问题,使用了python的pywin32模块对xls文件进行截图展示,无法部署在docker上,故后边采用直接在邮件正文写入html表单的格式来显示数据。
- 邮件参数直接使用docker环境变量。
- 邮件在收件人为多人时,需对格式进行处理:
receive_users = 'haoguofeng@ucloudsupport.cn, 1158206706@qq.com' # 收件人,可为list
msg['To'] = "".join(receive_users) # 收件人
smtp.sendmail(send_user, msg['To'].split(','), msg.as_string()) # 发送邮件
来源:CSDN
作者:guofeng_hao
链接:https://blog.csdn.net/guofeng_hao/article/details/103595865