服务器监控邮件报警(cpu,磁盘,内存)
1、安装mailx
yum install -y mailx
vim /etc/mail.rc
添加以下内容
set ssl-verify=ignore
set from=123456@qq.com
set smtp=smtp.qq.com
set smtp-auth-user="123456@qq.com"
set smtp-auth-password="xxxx" #去qq邮箱生成授权码(16位授权码)
set smtp-auth=login
2、测试
echo “邮件内容”|mail -s 标题 123456@qq.com
如果你可以收到邮件,说明你的mailx配置成功
3、写脚本
vim watch.sh
#!/bin/bash
#for IP in `cat /data/sh/test.txt`
#ssh root@192.168.1.56
date=`date +%Y-%m-%d.%H:%M`
ip=`ifconfig em1 | grep "netmask" | awk '{printf $2}'`
#磁盘监控,这里不监控扩展盘
disk_use=`df -h | grep "/dev/mapper/centos-home" | awk '{printf $5}' | cut -d '%' -f 1`
if [ $disk_use -ge 90 ];then
echo -e "服务器IP地址: $ip \n时间: $date \n磁盘使用率为: $disk_use%" | mail -v -s "警告!!!" 1@qq.com
fi
#cpu监控
cpu_average=`top -b -n 1 | grep "load" | awk '{printf $10 $11 $12}'`
cpu_use=`top -b -n 1 | grep "Cpu" | awk '{printf $2}' | cut -d "." -f 1`
if [ $cpu_use -ge 90 ];then
echo -e "服务器IP地址 :$ip \n时间: $date \nCPU 使用率为: $cpu_use%" | mail -v -s "警告!!!" 1@qq.com
fi
#内存监控
free_use=`free | awk '/Mem/{print $4/1024000}' | cut -d "." -f 1`
men_use=`free | awk '/Mem/{printf("%.2f\n"), $3/$2*100}' | cut -d "." -f 1`
if [ $men_use -ge 80 ];then
echo -e "服务器IP地址: $ip \n时间: $date \n内存使用率为: $men_use%" | mail -v -s "警告!!!" 1@qq.com
elif [ $free_use -le 50 ];then
echo -e "服务器IP地址: $ip \n时间: $date \n剩余空闲内存为: $free_use G" | mail -v -s "警告!!!" 1@qq.com
fi
4、添加到任务计划里
crontab -e
每天八点半执行脚本
30 8 * * * source /data/sh/watch.sh
:wq
保存退出
5、展示邮件内容
嘻嘻~ 成功了~
注意哦
凡有我QQ号者
可凭我的QQ号到附近超市
领取冰淇淋三箱和旺仔三箱
领取方式比较简单
直接拿起就跑不要停留