静态状态页面生成器static_status:如何自定义监控项和告警规则
【免费下载链接】static_status🚦Bash script to generate a static status page.项目地址: https://gitcode.com/gh_mirrors/st/static_status
🚀 想要快速搭建一个专业的服务状态监控页面吗?静态状态页面生成器static_status是你的终极解决方案!这个简单而强大的Bash脚本能够帮助你轻松生成静态状态页面,监控网站、服务(HTTP、SAP、MySQL等)和ping状态。本文将为你详细介绍如何自定义监控项和设置告警规则,让你在5分钟内拥有一个功能完整的监控系统。
为什么选择static_status?
static_status是一个基于Bash的开源工具,专为需要简单、轻量级状态监控的用户设计。它不需要复杂的数据库或Web服务器,只需几个基本命令就能运行。无论你是个人开发者、小型团队还是企业用户,都可以快速部署这个静态状态页面生成器。
快速安装指南
1. 下载脚本和配置文件
首先创建一个状态监控目录并下载所需文件:
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"2. 配置监控项
核心配置文件status_hostname_list.txt决定了你要监控的内容。文件结构非常简单:
<命令类型>;<主机名、IP或URL>;[端口、搜索文本或HTTP状态码]例如,要监控Google DNS的ping状态:
ping;8.8.8.8|Google DNS自定义监控项的5种方法
1. 基础网络监控
Ping监控- 检查主机是否可达:
ping;www.heise.de ping;8.8.8.8|Google DNS服务器 ping6;www.google.com|Google IPv6网络连接检查- 验证TCP/UDP端口:
nc;www.heise.de;80 nc;192.168.1.1|内部路由器;4432. HTTP服务监控
简单HTTP检查:
curl;https://www.heise.de/ping curl;ftp://ftp.debian.org/debian/READMEHTTP状态码验证:
http-status;https://www.nkn-it.de/ci.txt;200页面内容检查:
grep;https://www.nkn-it.de/imprint.html;Nils3. 网络路径监控
使用traceroute检查特定路由器是否在路径中:
traceroute;your.isp.router;3 traceroute;192.168.211.1|DSL网关;24. 自定义脚本监控
你甚至可以运行自己的脚本进行复杂检查:
script;/path/to/your/script.sh|自定义监控脚本 script;scripts/check-websites.sh|多网站检查5. 显示自定义文本
使用管道符号|分隔监控目标和显示文本:
ping;8.8.8.8|Google公共DNS nc;8.8.8.8|Google DNS服务;53 curl;http://www.heise.de/ping|Heise技术新闻配置告警规则的完整指南
static_status配套的alert.sh脚本让你在服务异常时及时收到通知。以下是设置告警的详细步骤:
1. 下载告警脚本
curl -O "https://gitcode.com/gh_mirrors/st/static_status/raw/master/alert.sh" chmod +x alert.sh2. 基本告警配置
邮件告警(默认使用mutt):
./alert.sh -c "www.heise.de" -m "your@email.com" -d 300短信告警:
./alert.sh -c "8.8.8.8" -m "SMS" -d 60Pushover通知:
./alert.sh -c "https://example.com" -m "Pushover" -d 1203. 智能告警策略
组合条件告警- 仅在互联网可用时发送通知:
grep -q "8.8.8.8" < status_hostname_ok.txt && ./alert.sh -c "www.nkn-it.de" -m "your@email.com"多条件监控:
# 监控多个关键服务 ./alert.sh -c "nc;www.heise.de" -m "admin@company.com" ./alert.sh -c "ping;192.168.1.1" -m "SMS" -d 1804. 定时任务配置
将告警脚本添加到crontab实现自动监控:
# 每1分钟检查一次 */1 * * * * bash "/path/to/alert.sh" -c "www.heise.de" -m "admin@company.com" # 工作时间内密集监控 */1 8-22 * * * bash "/path/to/alert.sh" -c "127.0.0.1" -m "nils@localhost" -d 60 # 周末宽松监控 */5 * * * * bash "/path/to/alert.sh" -c "nc;www.google.com" -m "SMS"高级配置技巧
1. 自定义配置文件
创建config文件来自定义脚本行为:
curl -f "https://gitcode.com/gh_mirrors/st/static_status/raw/master/config-example" -o "config"编辑配置文件config来设置:
MY_STATUS_JSON- JSON输出路径MY_TRACEROUTE_HOST- traceroute目标主机MY_STATUS_PAGE- 状态页面输出路径
2. JSON状态输出
启用JSON输出以便其他系统集成:
# 在config文件中设置 MY_STATUS_JSON="/var/www/html/status.json"生成的JSON格式:
[ { "site": "https://www.heise.de/ping", "command": "curl", "status": "OK", "time_sec": "0", "updated": "2026-07-18 09:52:23 UTC" } ]3. SVG状态图标
在网站中嵌入实时状态图标:
<a href="status.html"> 状态 <img src="status.svg?{{ timestamp }}"> </a>4. 自定义检查脚本
创建自己的检查脚本scripts/check-websites.sh:
#!/bin/bash # 返回0表示正常,80表示降级,其他表示故障 curl -s https://example.com > /dev/null if [ $? -eq 0 ]; then exit 0 else exit 1 fi运行和自动化
手动运行
# 静默模式(默认) bash status.sh # 详细模式 bash status.sh loud # 调试模式 bash status.sh debug自动化监控
添加到crontab实现每分钟自动检查:
crontab -e添加:
*/1 * * * * bash "/path/to/status.sh" silent >> /dev/null故障排除和最佳实践
常见问题解决
命令未找到错误:
sudo apt install coreutils curl grep iputils-ping netcat-openbsd sed traceroute禁用traceroute依赖: 在
config文件中设置MY_TRACEROUTE_HOST=''自定义脚本返回码:
0= 正常80= 降级- 其他 = 故障
性能优化建议
- 合理设置检查间隔- 关键服务每分钟,次要服务每5分钟
- 使用缓存- 对于变化不频繁的服务,适当延长检查间隔
- 分组监控- 将相关服务分组到同一个告警规则中
- 分级告警- 根据服务重要性设置不同的告警阈值
总结
static_status静态状态页面生成器提供了一个简单而强大的解决方案,让你能够快速搭建自定义的监控系统。通过灵活的配置文件和强大的告警功能,你可以:
✅监控任何网络服务- HTTP、TCP、UDP、ICMP
✅自定义显示文本- 使用友好的名称代替技术地址
✅设置智能告警- 邮件、短信、Pushover多种通知方式
✅生成多种输出格式- HTML、JSON、SVG图标
✅扩展自定义检查- 通过脚本实现复杂监控逻辑
无论你是个人开发者需要监控自己的网站,还是企业需要监控关键业务服务,static_status都能满足你的需求。它的轻量级设计和简单配置让监控变得前所未有的容易。
现在就开始使用这个强大的静态状态页面生成器,为你的服务构建专业的监控系统吧!🚀
【免费下载链接】static_status🚦Bash script to generate a static status page.项目地址: https://gitcode.com/gh_mirrors/st/static_status
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考