通过linux mail实现网站存活监控告警通知

本文介绍了一个简单的网站监控告警系统实现方法。通过在云服务器上运行脚本定期检查家里的web服务状态,并利用Linux mail服务发送邮件告警,确保网站稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的网站 爱分享读书( www.ishareread.com )是放在家里的两台机器提供的web服务,然后通过通过阿里云服务器上装的nginx反向代理提供外部访问的,在家里的两台机器上做了个集群负载。因为是放在家里的机器,有时候不稳定如电源跳闸等导致无法提供服务,所以需要有个机制来监控家里的机器上面的web服务是否正常。所以想起通过linux的mail来发送通知实现网站存活的监控告警通知。

原理很简单,就是在阿里云服务器(云服务器还是比较稳定的)上起一个监控程序定时持续的访问家里的web服务,如果不能够访问了就发邮件告警。

首先在云服务器上配置mail,环境是CentOS 7的。登录到服务器上。
安装mail命令
yum -y install mailx
vi /etc/mail.rc
文件尾增加以下内容,设置邮件服务器及发件人信息
set from=master@ishareread.com smtp="smtp.ishareread.com"
set smtp-auth-user="master@ishareread.com" smtp-auth-password="123456"
set smtp-auth=login

测试邮件发送是否正常
echo "邮件正文内容" | mail -s "邮件主题" xiejava@ishareread.com

邮件能够正常收到。


编写定时检查web服务并发送Email的脚本
vi checkalive.sh
代码如下:
#!/bin/bash
echo "begin to check web alive..."

if [ $# -ne 1 ];then
  echo $"usage $0 url"
fi

issendmail=0
while true
do
  if [ `curl -o /dev/null --connect-timeout 15 -s -w "%{http_code}" $1|egrep -w "200|301|302"|wc -l` -ne 1 ]
  then
    echo `date "+%Y-%m-%d %H:%M:%S"`" $1 is error...."
    if [ ${issendmail} -eq 0 ]
    then
      echo `date "+%Y-%m-%d %H:%M:%S"`" $1 is error...."|mail -s "$1 is error ..." xiejava@ishareread.com
      issendmail=1
    fi
  else
    echo `date "+%Y-%m-%d %H:%M:%S"`" $1 is ok"
    issendmail=0
  fi
  sleep 60
done

echo "end check...."
编辑保存后,将该脚本加入执行权限
chmod +x checkalive.sh

执行脚本
nohup ./checkalive.sh http://xiejava.ishareread.com:11881 >checkweb.log 2>&1 &

效果:
当http://xiejava.ishareread.com:11881的web服务不能访问时,会自动发邮件告警。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiejava1018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值