您的位置:首页 > 运维架构 > Linux

centos 7系统资源(CPU、内存、磁盘)自动监控并邮件告警脚本(改良版)

2019-07-28 23:33 1446 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/u014692704/article/details/97621362

(前提必须可以通过ssh免密钥连接)
该方法为制定一台mail主机为系统信息收集点,用ssh从其他主机收集系统性能数据,在此主机上结合mail一并发送。

te.txt 为ip地址列表
user.txt 为邮件接收人列表

#!/bin/bash

date=`date +%Y-%m-%d_%H:%M:%S`

for ip in `cat te.txt`

do

#磁盘监控

name=`ssh root@$ip 'hostname'`

disk_use=`ssh root@$ip 'df -h' | grep "/dev/" | awk '{printf $5}' | sed 's/%/\n/g'`

for disk_use in $disk_use

if [ $disk_use -ge 5 ];then

for user in `cat user.txt`

do

echo -e "IP:$ip \n 主机名:$name \n 在$date 磁盘使用: $disk_use%" | mail -s "磁盘告警" $user

done

fi

done

#cpu监控

cpu_average=`ssh root@$ip 'top -b -n 1' | grep "load" | awk '{printf $10 $11 $12 $13}'`

cpu_use=`ssh root@$ip 'top -b -n 1' | grep "Cpu" | awk '{printf $2}' | cut -d "." -f 1`

if [[ $cpu_use -ge 2 ]];then

for user in `cat user.txt`

do

echo -e "IP:$ip \n 主机名:$name \n 在$date CPU 使用:$cpu_use% \n 过去1分钟、5分钟、15分钟CPU平均值为:$cpu_ave
rage" | mail -s "CPU告警" $user

done

fi

#内存监控

men_use=`ssh root@$ip 'free' | awk '/Mem/{printf("%.2f\n"), $3/$2*100}' | cut -d "." -f 1`

if [ $men_use -ge 1 ];then

for user in `cat user.txt`

do

echo -e "IP:$ip \n 主机名:$name\n 在$date 内存使用: $men_use%" | mail -s "内存告警" $user

done

fi

done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: