在现代的互联网世界中,网站的可用性对于业务的成功至关重要。如果您是一个网站管理员或负责监控网站运行状况的工程师,那么您知道及时发现并解决问题对于确保用户满意度至关重要。如何使用 Bash 脚本来监控多个网站的可用性,并在网站出现问题时自动发送通知
背景
在项目中,我们使用了 Rails 框架,Nginx 作为代理服务器,实现了前后端分离的架构,共有 6 个网站。为了及时发现这些网站的可用性问题,曾考虑使用 UptimeRobot,这是一个免费且简单易用的监控工具。然而,由于 UptimeRobot 的报警通知功能限制,只能通知注册账号的人,无法邀请团队成员,这让我们感到不便。因此,决定自己编写一个监控脚本
基本功能
监控脚本需要实现以下基本功能:
- 当网站出现故障时,发送通知。
- 当网站首次成功启动并处于正常运行状态时,发送通知。
- 在连续检查中,如果服务一直保持正常状态,不发送重复通知。
#!/bin/bash
# 定义要监视的网站列表
websites=("https://dev.1.com" "https://dev.2.com" "https://dev.1.com")
# 定义Feishu机器人的Webhook URL
webhook_url="xxxxxxxxx"
# 函数:发送消息到 Feishu 机器人
send_message_to_feishu() {
local website="$1"