快速开始
5 分钟完成接入,从此告别告警烦恼。
第一步:注册账号
访问管理后台 http://ops.sengyueplay.com:3000,使用邮箱注册账号。
系统会自动为你创建一个默认团队"运维团队",你也可以创建新的团队。
第二步:选择接入方式
根据你的监控环境,选择以下一种或多种方式接入:
方式 A:Prometheus Alertmanager(推荐)
适用于已部署 Prometheus 的团队。
在 Alertmanager 配置文件中添加 webhook:
# alertmanager.yml
receivers:
- name: 'lingwang'
webhook_configs:
- url: 'http://ops.sengyueplay.com:8080/api/v1/alerts/alertmanager/{team_id}'
send_resolved: true
将 {team_id} 替换为你的团队 ID(可在团队页面查看)。
验证接入:
curl -X POST http://ops.sengyueplay.com:8080/api/v1/alerts/alertmanager/{team_id} \
-H "Content-Type: application/json" \
-d '{
"status": "firing",
"alerts": [{
"status": "firing",
"labels": {"alertname": "HighCPU", "severity": "critical"},
"annotations": {"summary": "CPU使用率超过90%"},
"startsAt": "2026-04-12T10:00:00Z"
}]
}'
方式 B:Zabbix
适用于使用 Zabbix 进行监控的团队。
在 Zabbix 中创建媒体类型(Administration → Media types → Create media type):
- 名称:灵王 OPS
- 类型:Webhook
- 脚本:
var LingwangWebhook = {
params: JSON.parse(value),
req = new CurlHttpRequest(),
data = JSON.stringify({
event_id: params.event_id,
severity: params.severity,
host: params.host.host,
key: params.key,
value: params.value,
time: params.clock
});
req.setHeader(["Content-Type: application/json"]);
resp = req.post("http://ops.sengyueplay.com:8080/api/v1/alerts/zabbix/{team_id}", data);
return JSON.parse(resp).result == "ok" ? "OK" : "ERROR";
}
将 {team_id} 替换为你的团队 ID。
配置用户媒体: Administration → Users → 选择用户 → Media → Add,选择"灵王 OPS"媒体类型。
方式 C:轻量级 Agent(零运维推荐)
适用于没有监控系统的服务器。Agent 二进制文件,约 5MB,无需额外依赖。
下载 Agent:
# Linux x86_64
curl -L https://ops.sengyueplay.com/agent/lingwang-agent-linux-amd64 -o /usr/local/bin/lingwang-agent
chmod +x /usr/local/bin/lingwang-agent
# macOS
curl -L https://ops.sengyueplay.com/agent/lingwang-agent-darwin-arm64 -o /usr/local/bin/lingwang-agent
chmod +x /usr/local/bin/lingwang-agent
创建采集配置(在平台"接入目标"页面添加),获取 target_id 和 team_id。
启动 Agent:
lingwang-agent \
--server http://ops.sengyueplay.com:8080 \
--target-id {target_id} \
--team-id {team_id}
或使用 Docker 运行:
docker run -d \
--restart unless-stopped \
--name lingwang-agent \
-e LINGWANG_SERVER=http://ops.sengyueplay.com:8080 \
-e LINGWANG_TARGET_ID={target_id} \
-e LINGWANG_TEAM_ID={team_id} \
lingwang/agent:latest
Agent 会自动采集: - HTTP 服务健康探测(GET 请求,检测响应码) - TCP 端口监听检测 - 系统指标:CPU、内存、磁盘使用率 - 进程存活检测
第三步:配置通知渠道
告警产生后,需要通知到值班人员。
添加邮件通知
- 进入 通知渠道 → 添加渠道
- 类型选择 Email
- 填写 SMTP 配置(建议使用企业邮箱或 SendGrid)
| 参数 | 说明 |
|---|---|
| SMTP 主机 | 如 smtp.gmail.com:587 |
| 用户名 | 你的邮箱地址 |
| 密码 | 邮箱密码或应用专用密码 |
| 发件人 | 显示在告警邮件中的发件人名称 |
添加钉钉/飞书/企业微信
进入 通知渠道 → 添加渠道,选择对应类型,填写机器人 Webhook URL。
- 钉钉:群设置 → 智能群助手 → 添加机器人 → 选择"自定义机器人"
- 飞书:群设置 → 群机器人 → 添加机器人 → 自定义机器人
- 企业微信:群应用 → 添加机器人 → 获取 Webhook 地址
第四步:设置 On-Call 排班
告警产生后谁来处理?通过排班管理指定值班人员。
- 进入 排班管理 → 创建排班
- 添加值班成员和时间段
- 设置告警升级策略(超时未响应自动升级)
验证完整链路
全部配置完成后,模拟一次告警:
# 手动触发一条测试告警
curl -X POST "http://ops.sengyueplay.com:8080/api/v1/alerts/alertmanager/{team_id}" \
-H "Content-Type: application/json" \
-d '{
"status": "firing",
"alerts": [{
"status": "firing",
"labels": {"alertname": "TestAlert", "severity": "critical"},
"annotations": {"summary": "这是一条测试告警"},
"startsAt": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)'"
}]
}'
应该收到: 1. 平台 告警列表 中出现新告警(状态: firing) 2. 通知渠道 中配置的通知方式被触发(邮件/钉钉等)