云原生生态圈 · 往期推荐

云原生生态圈之玩转容器系列文章

云原生生态圈之运维架构专辑文章

云原生生态圈之DevOps理论与实践系列文章

云原生生态圈之Kubernetes理论与实践系列文章

云原生生态圈之Go语言系列文章   技术源于生活系列视频

前段时间在GitHub[1]上发现了一个Ansible巡检服务的Roles, 今天给大家分享一下!

1Ansible自动化实现巡检

  • 思路:通过使用Ansible Role的方式对Linux系统进行资源巡检,生成巡检报告后通过邮件发送给接收人。

2测试的环境

ansible [core 2.12.2]
os `Centos 7 X64`
python version = 3.10.2 (main, Feb  2 2022, 06:19:27)

3oss-check Roles的依赖

  • 过滤器插件 filter_plugins/os-check.py [get_check_data]

  • 目标机bash

说明,此处的过滤器插件要放在ansible指定的filter_plugins的位置,我这里习惯将ansible的配置文件放在ansible的统一配置仓库下,便于迁移以及适应环境:

4oss-check Roles的执行流程

  1. 使用脚本roles/oss_check/files/check_linux.sh在目标节点执行获取资源数据,并以json结构体返回。

  2. 使用jinja2模板将获取的数据渲染到模板文件中roles/oss_check/templates/report-cssinline.html,生成的文件存放在指定的目录中。

  • report-cssinline.html 是将css设置以inline的方式存储的html文件,report.html才是源模板文件,修改完源模板文件后,使用Responsive Email CSS Inliner[2]进行转换下,才能更好的兼容邮件显示。

  • 其模板中使用的get_check_data过滤器是从hostvars中获取每台主机的脚本执行结果,进行分析整理传递给模板,使用传递回来的数据进行渲染。

获取生成的模板文件内容,并通过smtp发送给接收人。

5oss-check Roles采集的指标信息

  • Hostname

  • Main IP

  • OS Version

  • CPU Used

  • CPU LoadAvg

  • Mem Used

  • Swap Used

  • Disk Size Used

  • Disk Inode Used

  • Tcp Connection Used

  • Timestamp

6Oss-check Roles数据阈值的分组

采集出的数据,会通过设置好的阈值分为三个档次,

  • OK: < 80

  • Bad评判条件: 80 <= 使用率 < 90,

  • Critical评判条件: 使用率 >= 90

7定期执行扫描

集群节点扫描一般都是主动查看集群运行状态,主观判断的集群节点运行的状态,一般都会在节假日之前进行扫描一次,当然也可以通过自动化工具进行定期扫描,比如jenkins.

8如何跑起来?

  1. 克隆好项目之后,将roles放置在自己ansible项目的roles目录下

  2. 确认ansible.cfg配置文件中filter_plugin的位置,将克隆项目的filter_plugins/os-check.py放在配置文件指定的filter_plugin中

  3. 创建oss-check运行的playbooks

---
- name: 服务器巡检hosts: qa_unixgather_facts: falsevars:check_report_path: /tmpcheck_mail_host: "smtp.163.com"check_mail_port: "465"check_mail_username: "demo@163.com"check_mail_password: "demo@163.com邮箱的密码"check_mail_to: [ "接收人的邮箱地址" ]check_email_title: "Ansible 集群巡检报告"check_email_env: "QA"roles:- os-check
  1. inventory/qa.ini是待执行环境的inventory,最后执行就OK了,

/usr/bin/ansible-playbook -i inventory/qa.ini playbooks/os_check_qa.yaml
  1. 如果执行遇到问题,那就通过-v查看信息吧,v的数量越多,信息量就越大

希望能帮助到你,感谢一键三连,分享给更多需要的人

[1]

Ansible oss-check: https://github.com/lework/Ansible-roles/tree/master/os-check

[2]

Responsive Email CSS Inliner: https://htmlemail.io/inline/

历史精彩文章:

  • 别让自己太忙,一文详解 Ansible 的自动化运维

  • 没有集群照样学Ansible:托管的容器环境(实用)

  • Ansible-tower 你还没用起来吗?

Ansible自动化采集数据并生成巡检报告相关推荐

  1. Python 基于 Prometheus 数据生成巡检报告

    设计思路 1.基于Prometheus 开放接口获取数据(node_exporte/windows_exporter) 2.存放数据至mysql数据库 3.基于jinja2 编写模板生成巡检报告.ht ...

  2. dy自动化采集数据滑动验证解决方案

    一.自动化采集数据时如何避免滑动验证的阻塞问题 在使用dy刷视频时,如果手速过快就会触发滑动验证码.一般来说,要通过滑块验证需要手动滑动或使用脚本自动滑动,但是如果我们想要自动化采集一些数据,一旦触发 ...

  3. 数据采集:如何自动化采集数据

    数据采集:如何自动化采集数据 一个数据的走势,是由多个维度影响的,收集到尽可能多的数据维度,同时保证数据的质量,才能得到高质量的数据挖掘结构 数据源分四类:开放数据源(政府.企业.高校).爬虫抓取(网 ...

  4. 08 | 数据采集:如何自动化采集数据?

    上一节中我们讲了如何对用户画像建模,而建模之前我们都要进行数据采集.数据采集是数据挖掘的基础,没有数据,挖掘也没有意义.很多时候,我们拥有多少数据源,多少数据量,以及数据质量如何,将决定我们挖掘产出的 ...

  5. python将Excel数据自动生成Word报告【Pyhon-docx\openpyxl】

    我写在了知乎,图片没有搬运过来.链接:https://zhuanlan.zhihu.com/p/371767402 需求:日常工作中,需要对Excel表格的数据进行筛选计算整理,然后将数据做成Word ...

  6. 08 数据采集 - 如何自动化采集数据

    # Author:Nimo_Ding''' 数据源: 1.开放数据源政府 企业 高校 2.爬虫抓取网页 app - 例如购物评价Python爬虫三个步骤:1.requests库爬取内容2.XPath解 ...

  7. 一种基于机载AI模块的多旋翼无人机的电力巡检报告生成方法

    一种基于机载AI模块的多旋翼无人机的电力巡检报告生成方法 1 摘要 无人机在输电线路巡检通常采用无人机进行巡检的方式进行,通过无人机按照一定的航线飞行,在预设的点位拍摄获取电力器件的照片然后上传到服务 ...

  8. python自动生成分析报告_利用PYTHON全自动生成分析报告

    日常工作当中,特别是金融行业当中,有不少人的工作是提取数据,分析数据,得到可视化图表,并加入自已的研究分析结论,最终生成分析报告,并且有不少报告是定期生成,存在不少重复手工劳动.本文通过一个简单实例, ...

  9. python股票数据分析_利用PYTHON全自动生成分析报告

    日常工作当中,特别是金融行业当中,有不少人的工作是提取数据,分析数据,得到可视化图表,并加入自已的研究分析结论,最终生成分析报告,并且有不少报告是定期生成,存在不少重复手工劳动.本文通过一个简单实例, ...

  10. 生成一份mysql巡检报告

    我很遗憾地告诉您,作为一个语言模型,我无法生成报告.不过,您可以使用MySQL的监控和维护工具,例如MySQL Enterprise Monitor,来生成巡检报告.您还可以自己手动检查数据库的状态, ...

最新文章

  1. grep,egrep及元字符和posix字符集
  2. 5中打开safari_iOS13版Safari浏览器新功能上线:可调节上传照片大小
  3. java mysql 占位符_在Java中编写带占位符的SQL语句
  4. 释疑の采购订单的批量修改
  5. 压力测试工具Jemeter安装及使用
  6. python做股票分析_利用Python进行股票投资组合分析(调试)
  7. UISwitch 添加 标签
  8. matlab画满载率渐变图,数学建模论文-校园公交车调度问题
  9. 腾讯云数据库 TDSQL—— 私有云安装部署手册
  10. win7如何设置通电自动开机_WIN7自动开机怎么设置?
  11. 25.龙贝格求积公式
  12. 5款热门的远程控制软件,让你事半功倍
  13. 一个屌丝程序猿的人生(四十三)
  14. 计算机管理储存u盘无法使用,U盘无法识别的三种常见情况
  15. 基于51单片机的简易数字电压表proteus仿真原理图程序设计
  16. 新疆工程学院计算机在哪个校区,2021年新疆大学有几个校区,大一新生在哪个校区...
  17. vue系列教程之微商城项目|项目介绍
  18. kartoSLAM报错 transform_tolerance修改解决
  19. C++ 实现一个复数类
  20. 打造前端 Deepin Linux 工作环境——安装配置 atom 编辑器

热门文章

  1. 访问共享盘,无法访问,您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限。...
  2. Material-design icon生成插件
  3. candence测量尺寸
  4. 泰勒展开式求sinx近似值
  5. VS2019CPU/内存诊断功能
  6. ECCV 2020 五项大奖出炉!普林斯顿邓嘉获最佳论文奖
  7. 139显示无法imap服务器,139邮箱客户端 imap服务器
  8. mac 电脑软件安装常见的问题
  9. verilog 四舍五入_Verilog进行饱和与截位操作
  10. ArcGIS API for iOS在俄勒冈大学校园中的创新应用