功能

  • 检测服务器状态并实时推送邮箱、钉钉
  • 支持到达告警次数推送信息

本文章只是一个简单的思路,并不完善,有什么好的想法可以留言

效果

推送效果

原理

建议在服务器上用单独端口设置监测服务

需要两个服务器:服务器A服务器B

服务器B检测服务器A中的index.php能否正常输出,若不能说明服务器A宕机

index.php重新正常输出内容后,说明服务器A上线

使用

index.php放入服务器A

action.phplibs放入服务器B

status用于记录被检测服务器(服务器A)状态

修改action.php中以下字段

可单独控制邮件和钉钉推送开关

action.php文件需要在服务器B上设置定时任务,以保证定时监测实时推送,可使用Crontab、宝塔面板等方式实现

若有多台服务器需要满足监控需求,可采取:A监控B、B监控C,C监控D,D监控A。类似的方法,缺点是若两台连续监控的服务器宕机(如B和C宕机),只会通知其中一台宕机(这是个概率极低的事件)

//监控配置
$config = array(
    //0 关闭、1 开启
    'smtp' => 1, //邮件通知
    'ding' => 1, //钉钉通知
    'url' => 'http://127.0.0.1:8888/', //被监控的服务器Url
    'name' => '被监控服务器', //被监控的服务器名称
    'times' => 3 //检测状态改变,到达设定次数推送通知。例如:填写3,则连续三次检测到宕机推送通知。
);
//SMTP配置(默认使用 SSL加密 465端口)
$SMTP = array(
    'Host' => '', //SMTP服务器地址
    'User' => '', //SMTP登录用户名,一般为邮箱地址
    'Password' => '', //一般为邮箱密码,但某些服务商需要生成特定密码
    'Address' => '', //邮箱地址
    'Name' => '', //邮件中显示的发信人名称
    'ToEmail' => '' //接收通知的邮件地址
);
//钉钉配置
$Ding = array(
    'webhook_url' => '', //Webhook地址
    'secret' => '' //加签密钥
);

SMTP发信

使用 PHPMailer 实现

SMTP默认使用SSL加密465端口,如有需要自行修改

根据注释填写相关信息即可

钉钉推送

官方文档

新建一个钉钉群,群设置 > 智能群助手添加自定义机器人Webhook

安全设置选择加签

将获取到的Webhook地址加签密钥粘贴到action.php对应字段即可

钉钉

钉钉

下载

最后修改:2021 年 08 月 24 日 01 : 11 AM
如果觉得我的文章对你有用,请随意赞赏