监控centos系统内存是否超标,超标邮件告警提示shell脚本

前言  网站被人恶意刷新或者CC攻击都会导致网站内存飙升,而然我们缺不知道,内存溢出会导致各种服务暂停, 对于一个链接外网的网站来说,服务停止意味着网站宕机,这个肯定是不允许的,所以久伴制作了一个内存监控脚本

脚本说明

此脚本是监控centos内存走量,当内存超出多少告警,需要自己手动修改脚本中的超出数值

准备工作

安装mail邮件服务

  1. yum -y install sendmail
  2. yum -y install mailx

vi /etc/mail.rc 添加以下内容

  1. #开启ssl
  2. set ssl-verify=ignore
  3. #下方输入证书目录,下方为centos系统证书默认位置,也自行生成证书并指定
  4. set nss-config-dir=/etc/pki/nssdb
  5. # 下方填入你配置的第三方smtp服务器的地址及端口,如果使用的是云服务器,安全组需要开放465端口(入口和出口)
  6. set smtp=smtp.qq.com:465
  7. # 认证方式
  8. set smtp-auth=login
  9. # 下方输入用于发送邮件的邮箱账号
  10. set smtp-auth-user=XXX@qq.com
  11. # 下方输入上方邮箱的客户端授权码
  12. set smtp-auth-password=woeSEvrub213
  13. # 设置发信人邮箱和昵称
  14. set from=XXX@qq.com

 

内存监控shell

  1. #!bin/bash
  2. total=$(free -m |awk 'NR==2' | awk '{print $2}')
  3. used=$(free -m |awk 'NR==2' | awk '{print $3}')
  4. echo $used
  5. if [ $used -ge 1900 ];#这里数值就是你指定超过多少内存告警值
  6. then
  7. touch memory_email.txt
  8. echo "总内存:${total}MB 已用内存:${used}MB 服务器内存已超标,请注意查看原因" >memory_email.txt
  9. mail -s "博客服务器内存超标告警" 11949420@qq.com <memory_email.txt
  10. fi

在脚本所在目录输入bash memory.sh执行脚本

添加定时任务

yum -y install cronie yum-cron

crontab -e打开编辑模式输入以下内容

*/1 * * * * bash /mail/memory.sh

输入完毕按esc键在输入:wq保存退出

重启服务器及配置文件生效 systemctl restart crond.service

systemctl reload crond.service

相关推荐

网友评论(0)