Ansible自动化采集数据并生成巡检报告

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 自动化系列

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

Ansible自动化实现巡检

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

测试的环境

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

oss-check Roles的依赖

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

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

oss-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进行转换下,才能更好的兼容邮件显示。
    • 其模板中使用的get_check_data过滤器是从hostvars中获取每台主机的脚本执行结果,进行分析整理传递给模板,使用传递回来的数据进行渲染。
  3. 获取生成的模板文件内容,并通过smtp发送给接收人。

oss-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

Oss-check Roles数据阈值的分组

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

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

定期执行扫描

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

如何跑起来?

  1. 克隆好项目之后,将roles放置在自己ansible项目的roles目录下
  2. 确认ansible.cfg配置文件中filter_plugin的位置,将克隆项目的filter_plugins/os-check.py放在配置文件指定的filter_plugin中
  3. 创建oss-check运行的playbooks
---
- name: 服务器巡检
  hosts: qa_unix
  gather_facts: false
  vars:
    check_report_path: /tmp
    check_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的数量越多,信息量就越大

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

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
4月前
|
数据采集 数据可视化 JavaScript
用 通义灵码和 PyQt5 爬虫智能体轻松爬取掘金,自动化采集技术文章和数据
本文介绍了如何利用智能开发工具通义灵码和Python的PyQt5框架,构建一个自动化爬取掘金网站技术文章和数据的智能爬虫系统。通过通义灵码提高代码编写效率,使用PyQt5创建可视化界面,实现对爬虫任务的动态控制与管理。同时,还讲解了应对反爬机制、动态内容加载及数据清洗等关键技术点,帮助开发者高效获取并处理网络信息。
|
3月前
|
数据采集 运维 监控
|
11月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
1900 10
|
7月前
|
数据采集 JSON 前端开发
GraphQL接口采集:自动化发现和提取隐藏数据字段
本文围绕GraphQL接口采集展开,详解如何通过`requests`+`Session`自动化提取隐藏数据字段,结合爬虫代理、Cookie与User-Agent设置实现精准抓取。内容涵盖错误示例(传统HTML解析弊端)、正确姿势(GraphQL请求构造)、原因解释(效率优势)、陷阱提示(反爬机制)及模板推荐(可复用代码)。掌握全文技巧,助你高效采集Yelp商家信息,避免常见误区,快速上手中高级爬虫开发。
134 3
GraphQL接口采集:自动化发现和提取隐藏数据字段
|
8月前
|
缓存 监控 API
微店商品详情API接口实战指南:从零实现商品数据自动化获取
本文介绍了微店商品详情API接口的应用,涵盖申请与鉴权、签名加密、数据解析等内容。通过Python实战演示了5步获取商品数据的流程,并提供了多平台同步、价格监控等典型应用场景。开发者可利用此接口实现自动化操作,提升电商运营效率,降低人工成本。文中还总结了频率限制、数据缓存等避坑指南,助力开发者高效使用API。
|
8月前
|
数据采集 消息中间件 API
微店API开发全攻略:解锁电商数据与业务自动化的核心能力
微店开放平台提供覆盖商品、订单、用户、营销、物流五大核心模块的API接口,支持企业快速构建电商中台系统。其API体系具备模块化设计、双重认证机制、高并发支持和数据隔离等特性。文档详细解析了商品管理、订单处理、营销工具等核心接口功能,并提供实战代码示例。同时,介绍了企业级整合方案设计,如订单全链路自动化和商品数据中台架构,以及性能优化与稳定性保障措施。最后,针对高频问题提供了排查指南,帮助开发者高效利用API实现电商数智化转型。适合中高级开发者阅读。
|
9月前
|
监控 jenkins 测试技术
Ansible与Jenkins:自动化工具的对比
Ansible和Jenkins是自动化领域的两大巨头。Ansible专注于配置管理和任务自动化,采用无代理架构,使用YAML定义配置,具有幂等性和可扩展性。Jenkins则擅长持续集成和持续交付(CI/CD),支持丰富的插件生态系统,适用于自动化构建、测试和部署。两者各有优势,Ansible适合配置管理与大规模部署,Jenkins则在CI/CD方面表现出色。结合使用可创建更强大的自动化工作流,提升团队生产力和软件质量。选择工具时应根据具体需求决定。
|
11月前
|
存储 人工智能 人机交互
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
PC Agent 是上海交通大学与 GAIR 实验室联合推出的智能 AI 系统,能够模拟人类认知过程,自动化执行复杂的数字任务,如组织研究材料、起草报告等,展现了卓越的数据效率和实际应用潜力。
1268 1
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
|
12月前
|
数据采集
使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
本文介绍了如何使用Puppeteer结合代理IP和用户伪装技术,轻松绕过大众点评的Captcha验证,实现商家信息的高效采集。通过配置Puppeteer、设置代理和用户伪装参数、模拟人类操作等步骤,成功提取了目标页面的数据。该方法不仅提高了爬虫的稳定性和隐蔽性,还为市场研究和商业分析提供了有力支持。注意,数据采集需遵守法律法规及网站政策。
334 1
使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
|
11月前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:使用Ansible进行服务器管理
在现代IT基础设施中,自动化运维已成为提高效率和可靠性的关键。本文将引导您通过使用Ansible这一强大的自动化工具来简化日常的服务器管理任务。我们将一起探索如何配置Ansible、编写Playbook以及执行自动化任务,旨在为读者提供一条清晰的路径,从而步入自动化运维的世界。
203 11