作为运维,可能会遇到甲方公司服务器为了安全,对于安装程序有严格的要求,通过代码监控性能很有必要,这篇文章主要阐述如何通过脚本来实现服务器预警。
首先实现这个功能需要服务器配置邮箱,这个是教程:https://saas.88-8.vip/yijizhichang/20231105070400554.aspx
首先需要建一个cpu.sh文件,这里以目录www/web_sh/为例创建脚本文件:
#!/bin/bash # 硬件巡检,对cpu、内存、磁盘超过阈值报警 disk=$(df -Th | grep "/$" | awk '{print $6}' | awk -F% '{print $1}') mem=$(expr $(free | grep "Mem:" | awk '{print $3}') \* 100 / $(free | grep "Mem:" | awk '{print $2}')) cpu=`top -b -n1 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' '{split($1, vs, ","); v=vs[length(vs)]; sub(/\s+/, "", v);sub(/\s+/, "", v); printf "%d", 100-v;}'` alert_file=/www/web_sh/cpu.txt mailbox=你的收预警邮箱@qq.com if [ $disk -ge 75 ] then echo "磁盘占有率超过$disk%" >> $alert_file fi if [ $mem -ge 80 ] then echo "内存占有率超过$mem%" >> $alert_file fi if [ $cpu -ge 80 ] then nps restart echo "cpu占有率超过$cpu%" >> $alert_file fi if [ -f $alert_file ] then cat $alert_file | mail -s "121.62.19.124预警" "$mailbox" rm -rf $alert_file fi
其中nps restart是当cpu超过80%后进行重启nps命令,可以删除;加入这条命令的作用是在cpu超过80%时重启nps来释放CPU使用率(通过top发现近期cpu爆满主要时nps造成的)。
设置后加入定时任务。
这里以宝塔为例:
打开宝塔后进入计划任务,
添加计划任务
cd /www/web_sh ./cpu.sh
至此监控项制作完成了。