【72小时限时】WatchAlert 极速部署指南:从0到1搭建云原生监控告警系统
为什么选择WatchAlert?
你是否正面临这些监控告警痛点?
- 开源工具配置复杂,动辄需要编写数十行PromQL
- 多数据源整合困难,日志/指标/链路数据分散在不同平台
- 告警风暴频发,关键告警被淹没在噪音中
- 部署流程繁琐,团队需要专职运维支持
本文将展示如何用Docker Compose在5分钟内完成WatchAlert部署,让你获得:
✅ 开箱即用的多数据源监控(Prometheus/Loki/Elasticsearch)
✅ 智能告警降噪与聚合
✅ 可视化规则配置界面
✅ 企业级通知渠道(钉钉/微信/邮件)
部署环境准备
系统要求
| 环境 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 2核 | 4核 |
| 内存 | 4GB | 8GB |
| 磁盘 | 20GB SSD | 50GB SSD |
| Docker | 20.10+ | 24.0+ |
| Docker Compose | v2.0+ | v2.20+ |
| 网络 | 可访问镜像仓库 | 配置镜像加速服务 |
环境检查命令
# 检查Docker版本
docker --version
# 检查Docker Compose版本
docker compose version
# 检查系统资源
free -h && df -h && nproc
部署步骤(5分钟极速版)
1. 获取项目代码
# 克隆仓库
git clone https://gitcode.com/qq_45192746/WatchAlert.git
cd WatchAlert/deploy/docker-compose
2. 目录结构说明
docker-compose/
├── docker-compose.yaml # 主编排文件
├── redis.conf # Redis配置
├── mysql/ # MySQL数据持久化目录
└── redis/ # Redis数据持久化目录
3. 核心配置解析
docker-compose.yaml关键参数
version: "3"
services:
w8t-service: # 后端服务
image: docker.io/cairry/watchalert:latest
ports: ["9001:9001"]
volumes: ["../../config:/app/config"] # 配置文件挂载
depends_on: ["w8t-mysql", "w8t-redis"]
w8t-web: # 前端界面
image: docker.io/cairry/watchalert-web:latest
ports: ["80:80"] # Web访问端口
w8t-mysql: # 数据库
environment:
- MYSQL_ROOT_PASSWORD=w8t.123 # 默认密码
- MYSQL_DATABASE=watchalert # 数据库名
w8t-redis: # 缓存服务
volumes: ["./redis:/data"] # 数据持久化
init-mysql: # 数据库初始化
volumes: ["../sql:/sql"] # SQL脚本挂载
配置自定义(可选)
# 修改默认密码
sed -i 's/MYSQL_ROOT_PASSWORD=w8t.123/MYSQL_ROOT_PASSWORD=YourPassword/' docker-compose.yaml
# 修改Web端口(如80端口已占用)
sed -i 's/80:80/8080:80/' docker-compose.yaml
4. 启动服务
# 后台启动所有服务
docker compose up -d
# 查看启动状态
docker compose ps
# 查看服务日志
docker compose logs -f w8t-service
5. 验证部署
# 检查服务健康状态
docker inspect --format='{{json .State.Health.Status}}' w8t-service
# 预期输出:"healthy"
初始化与访问
数据库自动初始化流程
访问系统
- 打开浏览器访问:
http://服务器IP - 默认账号密码:
admin/admin123 - 首次登录强制修改密码
常见问题排查
服务启动失败
# 检查服务状态
docker compose ps | grep -v "Up"
# 查看错误日志
docker compose logs -f --tail=100 [服务名]
数据库连接问题
# 手动测试数据库连接
docker exec -it w8t-mysql mysql -uroot -pw8t.123 -D watchalert
# 检查数据库初始化情况
docker exec -it w8t-mysql mysql -uroot -pw8t.123 -e "show tables from watchalert;"
端口占用解决
# 查找占用端口的进程
netstat -tulpn | grep 80 # 替换80为实际占用端口
# 修改docker-compose.yaml中的端口映射
# 例如将80:80改为8080:80
部署架构详解
服务组件关系
数据流向说明
- 数据采集层:通过Provider组件从多数据源拉取监控数据
- 处理层:Service组件进行指标计算、日志分析、告警规则匹配
- 存储层:MySQL存储配置和历史数据,Redis存储缓存和实时数据
- 展示层:Web组件提供可视化界面
- 通知层:Sender组件负责将告警信息分发到指定渠道
生产环境优化建议
1. 数据持久化增强
# 创建专用数据卷(生产环境推荐)
docker volume create w8t-mysql-data
docker volume create w8t-redis-data
# 修改docker-compose.yaml
sed -i 's|./mysql:/var/lib/mysql|w8t-mysql-data:/var/lib/mysql|' docker-compose.yaml
sed -i 's|./redis:/data|w8t-redis-data:/data|' docker-compose.yaml
2. 安全加固
# 1. 移除特权模式
sed -i '/privileged: true/d' docker-compose.yaml
# 2. 添加健康检查
sed -i '/restart: always/a\ healthcheck:\n test: ["CMD", "curl", "-f", "http://localhost:9001/health"]\n interval: 30s\n timeout: 10s\n retries: 3' docker-compose.yaml
# 3. 配置网络隔离
sed -i 's/driver: bridge/driver: bridge\n internal: true/' docker-compose.yaml
3. 性能调优
# 添加资源限制示例(docker-compose.yaml)
services:
w8t-service:
deploy:
resources:
limits:
cpus: '2'
memory: 4G
reservations:
cpus: '1'
memory: 2G
功能验证与快速入门
验证核心功能
-
添加数据源
- 导航至:
配置 > 数据源 > 添加 - 选择Prometheus类型,输入地址:
http://prometheus:9090
- 导航至:
-
创建监控规则
- 导航至:
告警 > 规则管理 > 新建规则组 - 导入模板:
Node Exporter 服务器监控
- 导航至:
-
配置通知渠道
- 导航至:
通知 > 渠道配置 > 添加钉钉 - 输入Webhook地址,测试发送
- 导航至:
界面功能导览
| 模块 | 功能说明 | 关键操作 |
|---|---|---|
| 仪表盘 | 系统概览与关键指标展示 | 自定义仪表盘、添加面板 |
| 告警事件 | 实时告警与历史事件查询 | 告警抑制、手动关闭、事件分析 |
| 规则管理 | 配置监控指标与告警阈值 | 导入模板、测试规则、批量启用 |
| 数据源 | 管理各类监控数据源 | 测试连接、数据预览、状态监控 |
| 通知管理 | 配置告警接收渠道与模板 | 测试发送、查看日志、模板自定义 |
升级与维护
版本升级流程
# 拉取最新代码
cd WatchAlert
git pull origin main
# 重新构建并启动
cd deploy/docker-compose
docker compose pull
docker compose up -d
数据备份策略
# MySQL备份脚本
#!/bin/bash
BACKUP_DIR="/backup/watchalert"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
docker exec w8t-mysql mysqldump -uroot -pw8t.123 watchalert > $BACKUP_DIR/watchalert_$TIMESTAMP.sql
# 保留最近30天备份
find $BACKUP_DIR -name "watchalert_*.sql" -mtime +30 -delete
总结与展望
通过本文档,你已掌握:
✅ WatchAlert的Docker Compose一键部署
✅ 核心配置参数与自定义方法
✅ 常见问题排查与性能优化
✅ 基础功能验证与日常维护
进阶学习路线
- 多租户配置:
配置 > 租户管理 - 高级告警策略:告警抑制/聚合/升级
- API集成:通过OpenAPI对接外部系统
- 自定义数据源:开发私有监控适配器
社区资源
- 官方文档:待补充
- GitHub Issues:待补充
- 交流群:待补充
限时福利:前100名部署用户可加入VIP技术支持群,获取专属配置模板!
👉 完成部署后,发送部署成功截图至[官方邮箱]领取
附录:默认账号与端口
| 组件 | 默认端口 | 访问地址 | 默认账号 | 默认密码 |
|---|---|---|---|---|
| Web界面 | 80 | http://服务器IP | admin | admin123 |
| 后端API | 9001 | http://服务器IP:9001 | - | - |
| MySQL | 3306 | 本地访问 | root | w8t.123 |
| Redis | 6379 | 本地访问 | - | - |
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



