如何使用static_status实现网站和服务状态监控的终极指南

📅 2026/7/19 14:56:10 👁️ 阅读次数 📝 编程学习
如何使用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 IPv6

2. 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|数据库;3306

4. 高级监控功能

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.sh

2. 依赖包缺失: 检查并安装所有必需工具:

which bash curl ping nc traceroute

3. 配置错误: 验证配置文件格式是否正确,确保每行格式为:<命令>;<主机或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"

最佳实践建议

  1. 定期备份配置:将status_hostname_list.txtconfig文件纳入版本控制
  2. 监控关键服务:优先监控核心业务系统
  3. 设置合理的超时:根据网络环境调整MY_TIMEOUT参数
  4. 使用自定义文本:为内部服务使用友好名称而非IP地址
  5. 定期审查日志:检查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),仅供参考