通过yum安装
- yum install -y mailx
- vi /etc/mail.rc
-
在mail.rc中加入如下配置
- set ssl-verify=ignore
- set from=xxxx@qq.com #发信的邮箱
- set smtp=smtp.qq.com #发信邮箱服务器
- set smtp-auth-user="xxxx@qq.com" #邮箱用户名
- set smtp-auth-password="xxxx" #邮箱密码(某些邮箱需要授权码)
- set smtp-auth=login
-
-
**
测试邮箱发送是否成功
- echo “邮件内容”|mail -s 标题 邮箱号
-
如果可以收到邮件,说明mailx配置成功
**
- ssh-keygen
-
生成到默认目录(一路按回车键): ~/.ssh/
免密登陆:
- ssh-copy-id -i .ssh/id_rsa.pub root@需要免密到的机器IP
-
创建脚本文件
- vim watch.sh
-
添加监控脚本
- #!/bin/bash
- date=$(date "+%Y-%m-%d %H:%M:%S")
-
- #磁盘监控
- disk_use=`ssh 172.xx.x.6 'df -h' | grep "/dev/sda1" | awk '{printf $5}' | cut -d '%' -f 1`
- if [ $disk_use -ge 85 ];then
- echo "172.xx.x.6 在$date 磁盘使用: $disk_use%" | mail -v -s "磁盘告警" xxxx@qq.com
- fi
-
- #cpu监控
- cpu_average=`ssh 172.xx.x.6 'top -b -n 1' | grep "load" | awk '{printf $10 $11 $12}'`
- cpu_use=`ssh 172.xx.x.6'top -b -n 1' | grep "Cpu" | awk '{printf $2}' | cut -d "." -f 1`
- if [ $cpu_use -ge 80 ];then
- echo "172.xx.x.6在$date CPU 使用:$cpu_use%" | mail -v -s "172.xx.x.6CPU告警" xxxx@qq.com
- fi
-
- #内存监控
- men_use=`ssh 172.xx.x.6 'free' | awk '/Mem/{printf("%.2f\n"), $3/$2*100}' | cut -d "." -f 1`
- if [ $men_use -ge 80 ];then
- echo "172.xx.x.6在$date 内存使用: $men_use%" | mail -v -s "172.xx.x.6内存告警" xxxx@qq.com
- fi
-
- #检测nginx服务
- nginx=`ssh 172.xx.x.6 'ps -ef' | grep nginx | grep -v "grep" | wc -l`
- if [ $nginx -eq 0 ]; then
- echo "172.xx.x.6在$date 系统检测到nginx,已挂掉,启动中...." | mail -v -s "172.xx.x.6 nginx服务告警" xxxx@qq.com
- /etc/init.d/nginx start #启动nginx命令
- echo "172.xx.x.6在$date nginx启动完成" | mail -v -s "172.xx.x.6nginx服务告警" xxxx@qq.com
- #else
- # echo "172.xx.x.6在$date 系统检测到nginx运行正常" | mail -v -s "172.xx.x.6nginx服务告警" xxxx@qq.com
- fi
-
- #检测php服务
- php=`ssh 172.xx.x.6'ps -ef' | grep php | grep -v "grep" | wc -l`
- if [ $php -eq 0 ]; then
- echo "172.xx.x.6在$date 系统检测到php已挂掉,启动中...." | mail -v -s "172.xx.x.6 php服务告警" xxxx@qq.com
- /etc/init.d/php-fpm7.1 start #启动php服务
- echo "172.xx.x.6在$date php启动完成" | mail -v -s "172.xx.x.6php服务告警" xxxx@qq.com
- fi
-
-
-
- crontab -e
-
- */20 * * * * root /usr/local/server/watch.sh
-
-