3.3 主采集服务器/root路径下面新建shancheng_cpu.sh
一、背景
在某个项目中,客户要求每周两次例行巡检,巡检内容为CPU利用率、内存利用率和磁盘空间的检查。实际工作中,每次都通过ssh工具每台服务器逐个连上去,太浪费时间,工作效率太低,考虑使用工具来减轻工作量。
二、思考过程
2.1 是否使用工具
运维工具也有免费的,比如zabix等,但是因为要装客户端,而且项目是离线环境,很多依赖包下载特别麻烦,最后决定自己编写shell脚本来实现。
2.2 不能使用免密登录
最初考虑ssh免密登录,并且执行相关脚本命令,但是后来跟客户沟通时,客户要求:不可以使用免密,风险过大。如果一台服务器被黑客攻破,其他的服务器也存在风险。
2.3 开发思路
原来计划直接ssh并且执行命令,后来发现,返回的值写入log日志后,一台服务器只返回一行,没有回车键。因此决定,在每天服务器上扔进去一个cpu.sh这样的脚本,并且赋权644(默认赋权)。客户如果对明文存储密码没有严格的要求,本文档的最后也提供了全自动的思路,可以自己研究。
三、步骤
3.1 单独执行命令
这几个命令单独执行可以分别得到想要的结果,这里单独拉出来给大家展示一遍。
#采集CPU数据
top

图中id为空闲CPU,则CPU占用率为100%-62.1%=37.9%
#采集内存数据 -m是按照MB来显示
free -m

#采集磁盘使用率数据
df -THP

3.2 每台服务器/root路径下面新建cpu.sh文件
这一步的主要作用,就是在每台服务器/root路径塞一个shell脚本进去,下一步的主采集服务器的脚本,直接通过ssh命令调取每台服务器上面的cpu.sh,获得对应的CPU、内存、磁盘信息的数据。
#新建cpu.sh文件
vi cpu.sh
输入以下内容
#!/bin/bash
#计算cpu使用率, -n number:指定在结束前应该产生的最大迭代次数或帧数,一般迭代次越大,获取到的cpu使用率越准确; 本脚本中是迭代了5次,"-n5"
cpu

文章介绍了在无法使用免密登录和运维工具的情况下,如何通过shell脚本来实现Linux服务器的CPU、内存和磁盘的半自动化巡检。作者详细阐述了从开发思路到具体步骤,包括在每台服务器上创建脚本,主采集服务器运行脚本收集信息,并将结果记录在日志文件中。尽管这种方法不是完全自动化,但在实际运维工作中能显著提高效率。
最低0.47元/天 解锁文章
929

被折叠的 条评论
为什么被折叠?



