《LINUX运维小知识自动巡检服务器基础指标》

首先为今天险恶的外来攻击势力表示强烈谴责,对外linux.do的佬们一贯倡导不惹事,不挑事,但我们也不怕事儿,2024年5月13日 始皇遇刺,绕柱近1小时,论坛在座的各位都有责任,请及时复盘。


进入正题

做运维每天巡检服务器指标是必要环节 :pinched_fingers:t5:
老大
不想自己写还能怎么办?只能ctrl+c ctrl+v

在github上找了一个佬写好的项目看起来还不错,拿过来改一改自己用最合适不过了下面介绍和部署使用这个项目
1900

项目仓库

实现方式

ansible自动化实现询价(没了解过ansible的同学自行了解学习 这里就不解释了)

思路

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

使用task方式获取报告(这里我自己多添加了几项 可根据项目实际需求自行添加)

  • Hostname
  • Main IP
  • firewall status
  • uptime
  • vsftp status
  • ntp status
  • OS
  • CPU Used
  • CPU LoadAvg
  • Mem Used
  • Swap Used
  • Disk Size Used
  • Disk Inode Used
  • Tcp Connection Used
  • Timestamp

克隆仓库

git clone https://github.com/lework/Ansible-roles.git /etc/ansible/roles/
mv /etc/ansible/roles/filter_plugins /etc/ansible/

这里我们只用到了filter_plugins , os-check role

(内网环境自行离线下载上传服务器后 解压到ansible的roles)

自定义主机

/etc/ansible/hosts

编写playbook

---
- 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: "[email protected]"
    check_mail_password: "[email protected]邮箱的密码"
    check_mail_to: [ "接收人的邮箱地址" ]
    check_email_title: "Ansible 集群巡检报告"
    check_email_env: "QA"
  roles:
    - os-check

执行playbook

ansible-playbook /etc/ansible/os-check.yaml

执行报告

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

好使吗

2 Likes

:hugs: :hugs:

3 Likes

还不错 自己可以魔改[quote=“zhc, post:3, topic:85413, full:true, username:zhhc88”]
好使吗
[/quote]

看着不错,改天闲了试试

好东西

1 Like

好的,正在反思和复盘

来学习

大可不必

看着不错哎

谁刺了秦王啊

1 Like

常规话题软件开发

不知道啊

看着不错,改天闲了试试