360 Secure SkillHub
360 安全技能中心

Uptime Monitor Agent

核心功能:定期对指定URL做HTTP健康检查,测量响应时间,支持通过Webhook(Discord/Slack等)或邮件发故障告警,生成每日Markdown格式的uptime汇总报告。典型场景:网站可用性监控、后端服务健康巡检、故障实时告警。依赖curl,通过环境变量配置监控列表、检查间隔等,执行脚本触发操作,输出明确状态标识与结构化报告。

kryzl19
kryzl19
热度 37.34
最近更新 2026-05-11 17:36:26
分类:自动化依赖:代码执行 / 读写文件 / 第三方 API应用场景:自动化脚本 / 报告撰写 / 日程安排

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add uptime-monitor-agent
Metadata
name
uptime-monitor
description
Monitor uptime of websites/services and alert when down. Use when checking if a website is reachable, monitoring service health, or getting alerted on downtime.
metadata
{"openclaw":{"requires":{"bins":["curl"]},"install":[]}}

Uptime Monitor

Monitor HTTP endpoints and alert when services go down.

Environment Variables

Variable Required Default Description
MONITOR_URLS Yes — Comma-separated list of URLs to monitor
ALERT_WEBHOOK_URL No — Webhook URL to send alerts (Discord, Slack, etc.)
CHECK_INTERVAL No 60 Interval in seconds between checks
ALERT_EMAIL No — Email address for alert notifications

Scripts

check.sh — HTTP Health Check

Performs HTTP check with response time measurement.

./scripts/check.sh <url>

Output:

OK|https://example.com|200|245ms
FAIL|https://example.com|000|timeout

Exit code: 0 = up, 1 = down

alert.sh — Send Alert

Sends alert via webhook or email when a service is down.

./scripts/alert.sh <url> <status_code> <response_time> <error_message>

report.sh — Uptime Report

Generates a daily uptime summary from the log file.

./scripts/report.sh

Output: Markdown-formatted report with uptime % per URL.

Usage Example

export MONITOR_URLS="https://example.com,https://api.example.com"
export ALERT_WEBHOOK_URL="https://discord.com/api/webhooks/..."
export CHECK_INTERVAL=60

# Run a single check
./scripts/check.sh https://example.com

# Generate report
./scripts/report.sh

Notes

  • Uses curl with a 10-second timeout for checks
  • Logs results to ~/.openclaw/workspace/skills/uptime-monitor/logs/status.log
  • Alert webhook expects a JSON payload (compatible with Discord/Slack/PagerDuty)