Linux实用监控脚本——使用 Shell 检测进程 CPU 利用率 安全响应中心

user 2019-9-4 119

文章摘要:CPU 过高可能由于业务量过负荷或者出现死循环等异常情况,通过脚本对业务进程 CPU 进行时时监控,可以在 CPU 利用率异常时及时通知维护人员,便于维护人员及时分析,定位,以及避免业务中断。

在对应用服务进行维护时,我们经常遇到由于 CPU 过高导致业务阻塞,造成业务中断的情况。CPU 过高可能由于业务量过负荷或者出现死循环等异常情况,通过脚本对业务进程 CPU 进行时时监控,可以在 CPU 利用率异常时及时通知维护人员,便于维护人员及时分析,定位,以及避免业务中断。

下面的函数可获得指定进程 ID 的进程 CPU 利用率。它有一个参数为进程 ID,它首先使用 ps 查找进程信息,同时通过「grep -v」过滤掉「%CPU」行,最后通过 awk 查找 CPU 利用百分比的整数部分(如果系统中有多个 CPU,CPU 利用率可以超过 100%)。

对业务进程 CPU 进行实时监控

function GetCpu   {   CpuValue=`ps -p $1 -o pcpu |grep -v CPU | awk '{print $1}' | awk - F. '{print $1}'`   echo $CpuValue   }

下面的功能是通过上面的函数 GetCpu 获得此进程的 CPU 利用率,然后通过条件语句判断 CPU 利用率是否超过限制,如果超过 80%(可以根据实际情况进行调整),则输出告警,否则输出正常信息。

判断 CPU 利用率是否超过限制

function CheckCpu   {   PID=$1   cpu=`GetCpu $PID`   if [ $cpu -gt 80 ]   then   {   echo “The usage of cpu is larger than 80%”  }   else   {   echo “The usage of cpu is normal”  }   fi   }

示例演示:

(1) 源程序(假设上面已经查询出 TestApp 的进程 ID 为 11426)

CheckCpu 11426

(2) 结果输出

The usage of cpu is 75  The usage of cpu is normal  [dyu@xilinuxbldsrv shell]$

(3) 结果分析

从上面的输出可见:TestApp 程序当前的 CPU 使用为 75%,是正常的,没有超过 80% 的告警限制。

作为 IT 运维工程师,对单个进程CPU利用率设置监控告警可以在一定程度上降低系统异常,保障业务稳定的运行。试想,如果拥有一个能够监控全局,实现业务告警风险提醒的运维协作工具呢?定能极大提升工作效率,加强团队运维保障能力!



少客联盟- 版权声明 1、本主题所有言论和图片纯属会员个人意见,与少客联盟立场无关。
2、本站所有主题由该帖子作者发表,该帖子作者user少客联盟享有帖子相关版权。
3、少客联盟管理员和版主有权不事先通知发贴者而删除本文。
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者user少客联盟的同意。
5、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任。
6、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
7、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。
8、官方反馈邮箱:chinasuc@chinasuc.cn


上一篇:电子邮件安全问题分析(二)
下一篇:82天突破1000star,项目团队梳理出软件开源必须注意的8个方面
所有人都在等你长大 但没有人陪着你长大
最新回复 (0)
    • 少客联盟
      2
        登录 注册 QQ登录(停用)
返回