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安装步骤
- 创建工作目录
mkdir ~/status cd ~/status- 克隆仓库
git clone https://gitcode.com/gh_mirrors/st/static_status cd static_status- 配置监控项
编辑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
- 运行脚本生成状态页面
bash status.sh- 设置定时任务
为了实现持续监控,可以设置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.deJSON数据输出
除了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),仅供参考