本文隶属于 实用工具 /网站优化 分类,点击分类名称可以查看更多相关文章;
Monit 总体介绍
Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,适用于Linux/Unix平台。 它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误,同时Monit 包含一个内嵌的 HTTP(S) Web 界面,你可以使用浏览器方便地查看 Monit 所监视的服务器。
我的需求
网站被攻击
,访问不了;需要因此服务器发送邮件警报
至个人邮箱
提醒注意;正好,Monit 能实现发送邮件的功能,而且才500k大小;简直良心;遂花了些时间配置好了,以下就是相关的教程,如若有疑问可以在文末处评论留言或上我们的 TG群组;
Monit 安装
Ubuntu
apt-get install monit #命令行
/etc/monit/monitrc #主配置文件位置
Centos
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm #命令行
yum -y install monit #安装命令
/etc/monit.conf #主配置文件位置
Monit 发送邮件提醒(使用mailgun)
Monit 的邮件配置修改
着重说明,在Ubuntu server下的配置方式;
vim /etc/monit/monitrc #ubuntu下编辑配置文件
set mailserver smtp.mailgun.org port 587 #mailgun的smtp服务器以及端口
username [email protected] password "mailgun给的密钥" #看下文有mailgun的相关说明
using TLSV1 with timeout 30 seconds set
alert [email protected] #邮件地址更换为自己的
当然,以上是mailgun的配置方式;同理,Gmail 也是可以代发邮件的;(Mailgun有10w条邮件额度/月度);
Mailgun 注册与使用
官网地址:https://signup.mailgun.com/new/signup
mailgun 完全教程:整合Gmail与Mailgun实现免费域名邮箱
使用Gmail注册即可;记得套餐选 Pay as you go
;
添加域名及添加DNS记录
1.进入 https://app.mailgun.com/app/sending/domains 添加域名
2.推荐使用子域名 例如 limbopro.com
3.Create DKIM Authority 可不选;
4.去你的域名注册商那儿添加 DNS 记录;(如果你用的是Cloudflare,找到DNS那里添加即可;其他注册商?参考文末附注;)
5.填写好后点击 页面末尾 Verify DNS setting
按钮;
mailgun发件设置(邮件地址以及密钥)
1.进入 https://app.mailgun.com/app/sending/domains/
2.选择刚刚添加好的域名;
3.点击SMTP credentials
配置你的邮件地址及密钥(即:password);
4.记住你的邮件地址及密钥;
5.好了,去 monit 配置下主配置文件即可;
基本上,已经完事了;
重启monit生效
systemctl restart monit
去你的垃圾箱去瞅瞅;如果没收到,检查下日志;
tail -f /var/log/monit.log
#注意这个日志名叫 monit.log 如果不在这个目录,你可能需要使用 find / -name "monit.log"
查看它在哪;
相关实用命令
systemctl start monit #启动monit
systemctl status monit #查看monit运行状态
systemctl stop monit #停止monit
/bin/ps -ef | grep monit |grep -v grep #查看monit运行 pid 及所使用的配置文件
/usr/bin/monit -c /etc/monit/webmonitrc #指定配置文件运行monit
killall monit #杀死所有monit进程
网站运行与否判定
我这里使用的是如下脚本; 脚本 命名为,webcheck.sh
,放置在 /home/
目录下;记得 chmod +x /home/webcheck.sh
赋予执行权限;
> /home/temp/test.html #清空临时 test.html
> /home/temp/countwebcheck.log; # 清空记录值
curl -o /home/temp/test.html--connect-timeout 10 -m 10 https://limbopro.com/archives/1189.html
#使用curl命令请求指定html文件到/home/temp/下并命名为`test.html`;
catchnum=$(nohup du /home/temp/test.html > /home/temp/countwebcheck.log)
#使用`du`命令计算test.html文件大小并把值记录到 countwebcheck.log(注意,网站不能联通时返回文件为0)
results=$(awk '{print $1}' /home/temp/countwebcheck.log)
##提取纪录值记做 results
max=64
#设定正常值,我这个html文件正常的大小是(64k)
if [ $results -lt $max ];
#比较记录值与正常值大小并判定
#如果返回结果要小于这个正常值,则网站不通;
then
killall monit;
#杀掉所有 monit 进程
sleep 15s;
#杀掉会需要时间,这里休息 15秒
/usr/bin/monit -c /etc/monit/webmonitrc;
#默认配置为 monitrc,这个是我自定义的配置文件,参见后文 个性化警告配置文件发件内容
#指定配置文件运行 monit ,即按配置文件发送指定内容都指定邮箱;以起到提醒作用;
else
date=$(env LANG=en_US.UTF-8 date "+%e/%b/%Y/%R")
echo "${date}" "网站端口 80 连通检测,现已连通!运行正常..." # >> /home/5minutes.log
fi
monit 个性化警告配置文件发件内容
cp /etc/monit/monitrc /etc/monit/webmonitrc #使用cp命令复制一个配置文件副本为 webmonitrc
vi /etc/monit/webmonitrc #编辑 webmonitrc
## 以下是我的个性化警告内容,可以添加到 monit 的邮件配置段落 后面
set mail-format {
from: Master 0xf limboPro.com <Julia@$HOST>
subject: Web shutdown -- $EVENT $SERVICE
message: 网站暂时无法访问
日期: $DATE
主机: $HOST
描述: 尽快解决!
Your lovely limboPro.com,
Julia sama.
}
## 以上是我的个性化警告内容
你可以试着关闭一下 lnmp,或者 lamp使网站关闭;运行这个脚本试试;如果有效,将脚本加入 cron
crontab -e #运行命令行,即编辑cron文件
* * * * * /home/webcheck.sh #添加该段,即每分钟执行一次检查
附注
1.Mailgun 完全教程:奇技淫巧——整合Gmail与Mailgun实现免费域名邮箱
2.其他域名注册商DNS添加记录方法:
GoDaddy
NameCheap
Network Solutions
Rackspace Email & Apps
Rackspace Cloud DNS
Amazon Route 53
Digital Ocean
版权属于:毒奶
联系我们:https://limbopro.com/6.html
毒奶搜索:https://limbopro.com/search.html
机场推荐:https://limbopro.com/865.html IEPL专线/100Gb/¥15/月起
毒奶导航:https://limbopro.com/daohang/index.html本文链接:https://limbopro.com/archives/1888.html
本文采用 CC BY-NC-SA 4.0 许可协议,转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!