监控cpu内存磁盘,并实现邮件报警

Posted mliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监控cpu内存磁盘,并实现邮件报警相关的知识,希望对你有一定的参考价值。

 1 #!/bin/bash
 2 #获取当前时间
 3 now=`date -u -d"+8 hour" +%Y-%m-%d %H:%M:%S`
 4 #cpu使用阈值
 5 cpu_warn=5
 6 #mem空闲阈值
 7 mem_warn=1
 8 #disk使用阈值
 9 disk_warn=5
10 #获取主机IP,下条命令也可以获取
11 hostip=$(ip addr | awk /^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)})
12 #hostip=`ifconfig|grep 192.168.xx.xx|awk {print $2}|cut -d" " -f1`
13 #email,多个邮箱用逗号隔开
14 email_sender=([email protected])
15 
16 #---cpu
17 item_cpu () {
18 cpu_idle=`top -n 1 -b |  sed -e s/ //g | grep "Cpu(s):" | awk -F ":" {print $2} | awk -F "," {print $1}|sed -e s/us//g`
19 if [ $cpu_use -gt $cpu_warn ]
20     then
21         echo "$now $hostip 当前cpu使用率为$cpu_idle%,请及时处理" |  mail -s cpu预警  ${email_sender}
22     else
23         echo "$now $hostip 当前cpu使用率为$cpu_idle%,未超过阈值" >> /opt/cpu.log
24 fi
25 }
26 
27 #---mem
28 item_mem () {
29 #MB为单位
30 mem_free=`free -m | grep "Mem" | awk {print $4+$6}`
31 if [ $mem_free -lt $mem_warn  ]
32     then
33         echo "$now $hostip 当前内存剩余空间为${mem_free}MB,请及时处理" | mail -s  内存预警 ${email_sender}
34     else
35         echo "$now $hostip 当前内存剩余空间为${mem_free}MB,未超过阈值" >> /opt/mem.log
36 fi
37 }
38 
39 #---disk
40 item_disk () {
41 disk_use=`df -P | grep /dev | grep -v -E (tmp|boot) | awk {print $5} | cut -f 1 -d "%"`
42 if [ $disk_use -gt $disk_warn ]
43     then
44         echo "$now $hostip 磁盘使用率超过阈值,当前使用率为$disk_use%,请及时处理" | mail -s  磁盘预警 ${email_sender}
45     else
46         echo "$now $hostip 磁盘使用率未过阈值,当前使用率为$disk_use%,未超过阈值" >> /opt/disk.log
47 fi
48 }
49 
50 item_cpu
51 item_mem
52 item_disk

取值命令可以根据需要自己修改

以上是关于监控cpu内存磁盘,并实现邮件报警的主要内容,如果未能解决你的问题,请参考以下文章

监控CPU磁盘内存使用情况,并报警

利用shell监控cpu磁盘内存使用率

利用python3监控服务器状态进行邮件报警

zabbix监控CPU内存磁盘流量超值则报警

编写监控脚本,监控集群内所有服务存活状态,内存磁盘剩余率检测,异常则发送报警邮件

阿里云环境迁移记录 - 服务监控及报警