赞
踩
一、脚本详解
直接上脚本,取名zhuji.sh,这里案例监控的cpu使用率,其他的参数像内存、磁盘使用率、流量可照葫芦画瓢进行修改。脚本可直接复制,个别参数有需要的话请自行修改,内容如下:
- #!/bin/bash
- #预先创建好一个空文件夹,最好把涉及到的两个脚本都放到这个文件夹,以/root/zhuji为例
-
- #先进入这个文件路径
- cd /root/zhuji
-
- #将top得出的cpu使用信息临时写入文件,命名为cpu,我们平时查看cpu使用率用top,但是会话不会退出,加上-n 1是为了中断会话。
- top -n 1 > cpu
-
- #获取cpu文件中关键参数(cpu使用率,如2.5),如何在这个文件中定位到使用率参数(纵向关键字Cpu,横向关键字取第二个值,这个你在直接执行top命令时,根据输出就能很直观地看出来了)
- USED_CPU=$(awk '$0~"'%Cpu'"{print $2}' cpu)
- #上面得出的值很可能有小数点,为避免小数点,我们先乘10
- USED_CPU=$(echo "10*$USED_CPU"|bc)
- #乘出来的值还是有小数点,例如(25.0)把“.0”字段替换为空,目的是保留整数,方便后面条件比较
- USED_CPU=${USED_CPU//.0/}
-
- #这里打印出来看看,是为了方便测试,看看到这一步正不正常,输出为25
- echo $USED_CPU
-
- #判断大于95%,则告警,这里被比较的数值同样乘10(如果该值大于950,那么先打印输出信息以供测试判断,再执行另一个脚本dingding.sh,将告警信息推送到钉钉群,别急另一个dingding.sh脚本下面会说,为了验证我们可以临时手动将950调整为10,即大于1%就告警,这里手动执行只要能打印出信息“当前cpu使用率超过95%”就说明没问题,推送消息到钉钉脚本下面说)
- if [ $USED_CPU -gt 950 ]
- then
- echo "当前cpu使用率超过95%"
- ./dingding.sh "cpu使用率超过95%!"
- fi
二、自动执行
编辑定时任务,自动执行脚本(由于zhuji.sh调用了dingding.sh,这里添加zhuji.sh就行了)当前主机里,执行crontab -e
尾部追加一行即可,图中我还没加,下面是每天早上8点,执行自己的脚本,脚本需指定绝对路径,追加一行格式如下:
00 08 * * * /root/zhuji/zhuji.sh
#第一个值为分钟,第二个值为时,三个值为日,四为月,五为周(设置为*/1 * * * * 即每分钟执行一次,以便前期测试)
三、推送钉钉
dingding.sh脚本在另一篇文章,直接复制过来(需修改webhook)使用的时候将本文章的脚本和另一篇文章的脚本放到同一个文件夹下即可!钉钉群的准备工作也有详细介绍,详情见:shell脚本实现告警消息推送钉钉机器人_Doctor xu的博客-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。