static_status:10分钟快速搭建专业级静态状态页面监控系统
2026/7/24 2:29:59 网站建设 项目流程

static_status:10分钟快速搭建专业级静态状态页面监控系统

【免费下载链接】static_status🚦Bash script to generate a static status page.项目地址: https://gitcode.com/gh_mirrors/st/static_status

static_status是一款功能强大的Bash脚本工具,能够帮助用户快速生成专业的静态状态页面,实时监控网站、服务(HTTP、SAP、MySQL等)和网络连接状态。无需复杂的编程知识,只需简单配置,就能在10分钟内搭建起属于自己的状态监控系统。

为什么选择static_status?

在当今数字化时代,服务的稳定性和可用性至关重要。无论是个人开发者还是企业团队,都需要一个可靠的方式来监控自己的服务状态。static_status应运而生,它具有以下优势:

  • 简单易用:纯Bash脚本实现,无需复杂的安装和配置过程
  • 高度可定制:可以根据需求自定义监控项、页面样式和告警方式
  • 轻量级:对系统资源占用少,运行高效
  • 多输出格式:支持生成HTML状态页面、JSON数据和SVG状态图标
  • 灵活的告警机制:通过alert.sh脚本,可以实现邮件、短信或Pushover等多种告警方式

快速开始:10分钟安装配置指南

准备工作

在开始之前,请确保您的系统满足以下要求:

  • bash
  • coreutils
  • curl
  • grep
  • nc
  • ping
  • sed
  • traceroute

对于Debian-based系统(如Ubuntu),可以通过以下命令安装所需依赖:

sudo apt install coreutils curl grep iputils-ping netcat-openbsd sed traceroute

安装步骤

  1. 创建工作目录
mkdir ~/status cd ~/status
  1. 克隆仓库
git clone https://gitcode.com/gh_mirrors/st/static_status cd static_status
  1. 配置监控项

编辑status_hostname_list.txt文件,定义您想要监控的项目:

vi status_hostname_list.txt

您可以监控多种类型的服务,例如:

  • Ping检查:ping;www.heise.de
  • TCP端口检查:nc;www.heise.de;80
  • HTTP状态检查:http-status;https://www.example.com;200
  • 页面内容检查:grep;https://www.example.com;关键词
  • 自定义脚本检查:script;scripts/check-websites.sh|Multiple Websites
  1. 运行脚本生成状态页面
bash status.sh
  1. 设置定时任务

为了实现持续监控,可以设置crontab定时任务:

crontab -e

添加以下内容(每分钟执行一次):

*/1 * * * * bash "/path/to/status.sh" silent >> /dev/null

核心功能详解

多状态展示

static_status支持多种状态展示,包括正常、维护中、故障和严重故障等。

历史事件记录

系统会自动记录过去的故障事件,方便您分析服务稳定性。

自定义文本显示

您可以自定义状态页面上显示的文本,使其更符合您的需求。

要实现自定义文本,只需在status_hostname_list.txt中使用|分隔符,例如:

ping;8.8.8.8|Google DNS nc;8.8.8.8|DNS @ Google;53 curl;http://www.heise.de/ping|www.heise.de

JSON数据输出

除了HTML页面,static_status还支持生成JSON格式的状态数据,方便与其他系统集成。

配置config文件中的MY_STATUS_JSON变量,指定JSON文件的存储位置:

MY_STATUS_JSON="$HOME/status.json"

示例JSON输出:

[ { "site": "https://www.example.com", "command": "curl", "status": "OK", "time_sec": "0", "updated": "2023-04-19 14:01:23 UTC" }, { "site": "https://www.example.com/gibtesnicht", "command": "curl", "status": "Fail", "time_sec": "282", "updated": "2023-04-19 14:01:23 UTC" } ]

SVG状态图标

static_status可以生成SVG格式的状态图标,方便嵌入到其他网页中。

配置config文件中的MY_STATUS_ICON变量:

MY_STATUS_ICON="$HOME/status.svg"

您可以自定义图标的颜色:

MY_STATUS_ICON_COLOR_SUCCESS="lime" # 正常状态颜色 MY_STATUS_ICON_COLOR_WARNING="orange" # 警告状态颜色 MY_STATUS_ICON_COLOR_DANGER="red" # 危险状态颜色

在网页中使用时,建议添加缓存破坏参数:

<a href="status.html">Status <img src="status.svg?{{ timestamp }}"></a>

高级配置选项

自定义页面样式

您可以通过修改config文件来自定义状态页面的样式。例如,更改页面标题:

MY_STATUS_TITLE="我的服务状态页面"

修改自动刷新间隔(秒):

MY_AUTOREFRESH="60" # 60秒自动刷新一次

自定义CSS样式表:

MY_STATUS_STYLESHEET="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/css/bootstrap.min.css"

自定义脚本检查

static_status允许您通过自定义脚本来扩展监控功能。只需将脚本添加到status_hostname_list.txt中:

script;/path/to/your/script.sh|自定义服务检查

脚本返回码规则:

  • 0:成功(服务正常)
  • 80:降级(服务部分功能异常)
  • 其他值:失败(服务不可用)

项目中提供了一个示例脚本:scripts/check-websites.sh

告警配置

通过alert.sh脚本,您可以配置在服务出现故障时接收告警通知。支持邮件、短信或Pushover等多种方式。

常见问题解答

如何更新static_status?

更新static_status非常简单,只需重新克隆仓库或下载最新的status.sh脚本:

cd ~/status/static_status git pull

如何禁用traceroute依赖?

如果您不需要traceroute功能,可以在config文件中添加以下配置来禁用它:

MY_TRACEROUTE_HOST=''

如何自定义日期时间格式?

您可以在config文件中修改MY_DATE_TIME变量来自定义日期时间格式:

MY_DATE_TIME=$(date -u "+%Y-%m-%d %H:%M:%S %Z")

总结

static_status是一款简单而强大的静态状态页面生成工具,它可以帮助您快速搭建专业的服务监控系统。无论是个人开发者还是小型团队,都可以通过static_status轻松实现服务状态的实时监控和告警。

通过本文介绍的步骤,您已经了解了如何安装、配置和使用static_status。现在,您可以根据自己的需求,进一步定制和扩展这个工具,使其更好地服务于您的项目。

祝您使用愉快,服务稳定!

【免费下载链接】static_status🚦Bash script to generate a static status page.项目地址: https://gitcode.com/gh_mirrors/st/static_status

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询