如何使用static_status实现网站和服务状态监控的终极指南
如何使用static_status实现网站和服务状态监控的终极指南
【免费下载链接】static_status🚦Bash script to generate a static status page.项目地址: https://gitcode.com/gh_mirrors/st/static_status
想要轻松监控您的网站和服务运行状态吗?🚀static_status是一款简单高效的Bash脚本工具,能够生成静态状态页面,帮助您实时掌握各项服务的健康状况。无论您是个人开发者还是企业运维人员,这款开源工具都能为您提供专业的状态监控解决方案。
为什么选择static_status进行状态监控?
在当今数字化时代,网站和服务的可用性至关重要。static_status提供了以下核心优势:
- 轻量级设计:仅需Bash和少量系统工具即可运行
- 完全静态:生成纯HTML页面,无需数据库或复杂后端
- 高度可定制:支持多种监控类型和自定义配置
- 实时反馈:通过SVG图标和JSON接口提供即时状态信息
- 开源免费:遵循GNU GPLv3许可证,完全免费使用
快速安装与配置指南
环境准备
首先确保您的系统已安装必要的依赖包。在Ubuntu/Debian系统上,只需执行以下命令:
sudo apt install coreutils curl grep iputils-ping netcat-openbsd sed traceroute下载与安装
创建专用目录并下载脚本:
mkdir ~/status cd ~/status curl -O "https://gitcode.com/gh_mirrors/st/static_status/raw/master/status.sh" curl -O "https://gitcode.com/gh_mirrors/st/static_status/raw/master/status_hostname_list.txt"基础配置
编辑配置文件status_hostname_list.txt,添加您要监控的服务:
vi status_hostname_list.txt配置文件采用简单易懂的格式,每行定义一个监控项:
ping;8.8.8.8|Google DNS curl;https://www.example.com|我的网站 nc;192.168.1.1|内部服务器;22支持的监控类型详解
1. Ping监控(网络连通性)
最基本的网络监控方式,检查主机是否可达:
ping;www.google.com ping;192.168.1.1|路由器 ping6;2404:6800:4003:c02::8b|Google IPv62. Curl监控(HTTP/HTTPS服务)
检查Web服务的可用性,支持各种协议:
curl;https://api.example.com/v1/health curl;ftp://ftp.example.com/data.txt|FTP服务器3. Netcat监控(TCP端口)
验证特定端口是否开放:
nc;mail.example.com|邮件服务器;25 nc;db.example.com|数据库;33064. 高级监控功能
HTTP状态码检查:
http-status;https://api.example.com/health;200页面内容检查:
grep;https://www.example.com/;Online路由路径监控:
traceroute;your.isp.router;3自定义脚本检查:
script;/path/to/check-database.sh|数据库健康检查高级配置技巧
自定义状态页面
下载示例配置文件并进行个性化设置:
curl -f "https://gitcode.com/gh_mirrors/st/static_status/raw/master/config-example" -o "config" vi config关键配置选项:
# 页面标题 MY_STATUS_TITLE="我的服务状态监控" # 自动刷新间隔(秒) MY_AUTOREFRESH="60" # 状态图标颜色 MY_STATUS_ICON_COLOR_SUCCESS="green" MY_STATUS_ICON_COLOR_WARNING="orange" MY_STATUS_ICON_COLOR_DANGER="red" # 维护模式文本文件 MY_MAINTENANCE_TEXT_FILE="$HOME/status/status_maintenance_text.txt"设置定时监控
通过cron实现自动化监控:
crontab -e添加以下行(每分钟执行一次):
*/1 * * * * bash "/home/user/status/status.sh" silent >> /dev/null状态页面功能介绍
实时状态显示
运行脚本后,将生成美观的状态页面:
bash status.sh页面包含以下信息:
- ✅ 服务正常运行状态
- ⚠️ 服务降级警告
- 🔴 服务中断警报
- 📊 历史事件记录
JSON API接口
启用JSON输出功能,方便与其他系统集成:
# 在config文件中设置 MY_STATUS_JSON="$HOME/status.json"生成的JSON格式示例:
[ { "site": "https://www.example.com", "command": "curl", "status": "OK", "time_sec": "0.23", "updated": "2026-07-18 09:47:00 UTC" } ]SVG状态图标
将实时状态图标嵌入到其他页面:
<a href="status.html"> 状态 <img src="status.svg?{{ timestamp }}"> </a>故障排除与维护
常见问题解决
1. 脚本权限问题:
chmod +x status.sh2. 依赖包缺失: 检查并安装所有必需工具:
which bash curl ping nc traceroute3. 配置错误: 验证配置文件格式是否正确,确保每行格式为:<命令>;<主机或URL>;<可选参数>
维护模式设置
创建维护通知文件:
echo "系统正在进行计划维护,预计30分钟后恢复" > ~/status/status_maintenance_text.txt维护期间,所有错误状态将被覆盖,显示自定义维护信息。
扩展功能与自定义检查
创建自定义监控脚本
您可以编写自己的检查脚本,只需返回适当的退出代码:
- 返回0:服务正常
- 返回80:服务降级
- 其他返回值:服务中断
示例脚本check-websites.sh:
#!/bin/bash # 检查多个网站 websites=("https://example1.com" "https://example2.com") for site in "${websites[@]}"; do if curl -s --head "$site" | grep "200 OK" > /dev/null; then continue else exit 1 fi done exit 0邮件通知集成
结合alert.sh脚本实现故障通知:
# 配置邮件发送 MY_EMAIL_RECIPIENT="admin@example.com" MY_EMAIL_SENDER="status@example.com"最佳实践建议
- 定期备份配置:将
status_hostname_list.txt和config文件纳入版本控制 - 监控关键服务:优先监控核心业务系统
- 设置合理的超时:根据网络环境调整
MY_TIMEOUT参数 - 使用自定义文本:为内部服务使用友好名称而非IP地址
- 定期审查日志:检查
status_hostname_history.txt了解历史事件
总结
static_status是一款功能强大且易于使用的状态监控工具,特别适合需要轻量级解决方案的用户。通过简单的Bash脚本,您就能构建专业的状态监控系统,实时掌握所有关键服务的运行状况。
无论您管理的是个人博客还是企业级应用,这款工具都能为您提供可靠的监控保障。立即开始使用,让您的服务状态一目了然!🎯
💡提示:记得定期更新脚本以获取最新功能和修复:
curl -O "https://gitcode.com/gh_mirrors/st/static_status/raw/master/status.sh"
【免费下载链接】static_status🚦Bash script to generate a static status page.项目地址: https://gitcode.com/gh_mirrors/st/static_status
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考