使用可配置的运行健康检查、自动重启警报和智能警报路由,监控数十个网站。适用于需要正常运行时间跟踪、性能...
多地点健康监测:概览是一项面向实际任务的技能,主要用于多地点健康监测技术将持续监测10-100+网站自动化,并配备可配置的健康检查、智能警报路径和自动化。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
多站点健康监控器技能可自动持续监控 10 至 100+ 个网站,支持可配置的健康检查、智能告警路由与自动事件升级。该生产级监控解决方案集成了 Slack、PagerDuty、Datadog、Google Sheets 和 WordPress,为您的数字基础设施提供实时可见性。
立即尝试以下示例提示:
每 5 分钟监控以下站点,任一失败即向 Slack 发送告警: - https://api.example.com/health - https://app.example.com/status - https://cdn.example.com/ping - https://wordpress.example.com/wp-json/health - https://db.example.com/check 告警规则: - 关键(页面不可用):发送至 Slack #incidents + PagerDuty - 警告(响应耗时 >3 秒):发送至 Slack #alerts - 信息(SSL 证书剩余有效期 <30 天):记录至 Google Sheets 日志
每 2 分钟监控 https://payment-service.example.com/health。
若连续失败 3 次,则执行:
1. 向 https://restart-api.example.com/restart-payment-service 发送 POST 请求
2. 向 PagerDuty 发送告警,事件标题为 “Payment Service Down”
3. 向 Slack #critical-incidents 发送通知
4. 将时间戳、错误详情及重启状态记录至 Google Sheets
响应超时:10 秒
预期响应:HTTP 200,且响应体为 {"status":"healthy"}
监控以下 WordPress 站点的健康与安全状态: - https://site1.example.com/wp-json/wp/v2/health-check - https://site2.example.com/wp-json/wp/v2/health-check - https://site3.example.com/wp-json/wp/v2/health-check 检查项包括: - 核心版本更新可用(若距上次更新 >1 周则发出警告) - 插件存在已知漏洞(任意一个即视为关键) - 数据库连接状态(断连即视为关键) - SSL 证书到期时间(剩余有效期 <30 天则发出警告) 告警目标: - 关键:发送至 PagerDuty + Slack #wordpress-critical - 警告:发送至 Slack #wordpress-alerts - 信息:记录至 Google Sheets #monitoring-log
每 10 分钟监控 https://api.example.com/metrics。 当满足以下任一条件时触发告警: - 响应时间 > 2000ms(警告)或 > 5000ms(关键) - 错误率 > 1%(警告)或 > 5%(关键) - CPU 使用率 > 70%(警告)或 > 90%(关键) - 内存使用率 > 80%(警告)或 > 95%(关键) 将指标推送至 Datadog,附带标签:env:prod, service:api, team:backend
支持通过以下协议监控端点:
示例:使用自定义认证监控 API 健康状态
端点:https://api.example.com/health
方法:POST
请求头:
Authorization: Bearer YOUR_API_KEY
User-Agent: MultiSiteMonitor/1.0.0
期望状态码:200
期望响应体:{"status":"healthy","version":"2.1.0"}
超时时间:10 秒
# Slack 通知 export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL" export SLACK_CHANNEL="#incidents" # 或 #alerts、#monitoring 等 # PagerDuty 事件创建 export PAGERDUTY_API_KEY="YOUR_PAGERDUTY_API_KEY" export PAGERDUTY_SERVICE_ID="YOUR_SERVICE_ID" # Datadog 指标采集 export DATADOG_API_KEY="YOUR_DATADOG_API_KEY" export DATADOG_APP_KEY="YOUR_DATADOG_APP_KEY" export DATADOG_SITE="datadoghq.com" # 或 datadoghq.eu # Google Sheets 日志记录 export GOOGLE_SHEETS_ID="YOUR_SPREADSHEET_ID" export GOOGLE_SERVICE_ACCOUNT_JSON="/path/to/service-account.json" # AWS 自动重启(可选) export AWS_ACCESS_KEY_ID="YOUR_AWS_KEY" export AWS_SECRET_ACCESS_KEY="YOUR_AWS_SECRET" export AWS_REGION="us-east-1" # SSH 远程服务重启(可选) export SSH_PRIVATE_KEY="/path/to/private/key" export SSH_USER="deploy"
# monitors.yaml
monitors:
- name: "Production API"
url: "https://api.example.com/health"
interval: 300 # 秒
timeout: 10
method: "GET"
expected_status: 200
expected_body_contains: "healthy"
alert_rules:
critical:
- slack_channel: "#critical-incidents"
- pagerduty_severity: "critical"
warning:
- slack_channel: "#alerts"
auto_restart:
enabled: true
command: "systemctl restart api-service"
max_retries: 3
retry_delay: 60
- name: "WordPress Site"
url: "https://wordpress.example.com/wp-json/wp/v2/health-check"
interval: 600
timeout: 15
method: "GET"
headers:
Authorization: "Bearer YOUR_WP_TOKEN"
checks:
- type: "wordpress_core_updates"
alert_if: "available"
severity: "warning"
- type: "plugin_vulnerabilities"
alert_if: "found"
severity: "critical"
- type: "ssl_certificate"
expires_in_days: 30
severity: "warning"
alert_rules:
critical:
- pagerduty_severity: "critical"
- slack_channel: "#wordpress-critical"
warning:
- slack_channel: "#wordpress-alerts"
- google_sheets: true
- name: "Database Health"
url: "https://db-monitor.example.com/health"
interval: 120
timeout: 20
method: "POST"
headers:
Content-Type: "application/json"
Authorization: "Bearer YOUR_DB_TOKEN"
body: '{"check":"full"}'
expected_status: 200
performance_thresholds:
response_time_ms: 2000
error_rate_percent: 1.0
alert_rules:
critical:
- pagerduty_severity: "critical"
- datadog_metric: "db.health.critical"
warning:
- datadog_metric: "db.health.warning"
- slack_channel: "#database-alerts"
monitors.yaml.env 文件加载所有必需的 API 密钥multi-site-health-monitor --validate 验证所有 URL 是否可正常响应🚨 CRITICAL: Production API Down 服务:Production API (api.example.com/health) 状态:HTTP 500 Internal Server Error 响应时间:12.3 秒(超时阈值:10 秒) 最近一次正常状态:2024-01-15 14:32:15 UTC 事件持续时间:5 分钟 23 秒 告警次数:连续失败 3 次 自动重启状态:✅ 已触发(第 1/3 次尝试) PagerDuty 事件编号:INC-12345(已分配给 @oncall-backend) 下次检查时间:2024-01-15 14:42:15 UTC 升级策略:若 25 分钟内仍未解决,将升级至 #management 频道
时间戳 | 服务 | 状态 | 响应时间 | 错误 | 执行动作 2024-01-15 14:37 | Production API | FAIL | 12300ms | HTTP 500 | 已触发自动重启 2024-01-15 14:32 | Production API | FAIL | 10100ms | 超时 | 已发送告警 2024-01-15 14:27 | Production API | OK | 245ms | - | - 2024-01-15 14:22 | WordPress Site | WARN | 3200ms | 响应缓慢 | 已发送告警 2024-01-15 14:17 | Database Health| OK | 145ms | - | -
事件编号:INC-12345 服务:Production API 严重程度:Critical 状态:Triggered 标题:Production API Down - HTTP 500 (5min+ duration) 描述: 端点:https://api.example.com/health 状态:HTTP 500 Internal Server Error 响应时间:12.3 秒 连续失败次数:3 最近一次正常状态:2024-01-15 14:32:15 UTC 自动重启:已触发(第 1/3 次尝试) 指派对象:@oncall-backend 创建时间:2024-01-15 14:37:00 UTC 升级策略:Backend On-Call → Manager → VP Engineering
multi_site_monitor.health_check.response_time:245ms (tags: service:api, env:prod) multi_site_monitor.health_check.status:200 (tags: service:api, env:prod) multi_site_monitor.health_check.availability:99.87 (tags: service:api, env:prod) multi_site_monitor.auto_restart.attempts:1 (tags: service:api, env:prod)
/wp-json/custom/health,返回包含完整系统状态的 JSON相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章