WatchAlert 轻量级云原生监控告警引擎 - Docker安装部署
💎 WatchAlert 是什么?
🎯 专注可观测性与稳定性,为运维提效降本
WatchAlert 是一款专为云原生环境设计 的轻量级监控告警引擎,聚焦于可观测性(Metrics、Logs、Traces)与系统稳定性保障,提供从采集、分析到告警的全链路解决方案 。
🔍 AI 智能加持,让告警更有“洞察力”
通过 AI 技术深度分析 Metrics、Logs 和 Traces 中的异常信号,精准定位根因,智能生成排查建议与修复方案,显著提升故障响应效率。
注:本教程主要为在Docker环境下安装部署WatchAlert,用于接入ElasticSearch和VictoriaLogs作为日志告警。
项目地址:https://github.com/opsre/WatchAlert
官方文档:https://cairry.github.io/docs/
🧩 全面兼容主流可观测技术栈
监控类型 | 支持的数据源 |
---|---|
Metrics | Prometheus、VictoriaMetrics |
Logs | Loki、ElasticSearch、VictoriaLogs、ClickHouse、SLS(阿里云日志服务)、TLS(火山云日志服务,开发中)、CLS(腾讯云日志服务,开发中) |
Traces | Jaeger |
Events | Kubernetes 事件监控 |
基础协议监测 | HTTP、ICMP、TCP、SSL |
告警机器人 | 飞书、钉钉、企业微信、邮件、自定义 Webhook、Slack |
🔍 核心亮点
🧠 AI 智能分析
基于 AI 技术对告警内容进行深度语义解析,自动识别异常模式
提供根因推测、排查建议与修复思路,让每一次告警都“言之有物”
🕰️ 完善的值班机制
支持轮班排班、节假日调整、值班交接等场景
告警通知精准匹配责任人,确保第一时间响应
⚡ 告警升级机制
- 多级告警策略配置:从首次触发到升级通知,层层保障不漏报支持超时重试、通知升级、负责人转接等功能,保障告警闭环处理
📊 Namespace 级告警分类
支持以命名空间(Namespace)为单位进行告警分组管理
清晰分类,快速定位,大幅提升故障处理效率
安装部署
环境准备
要安装最新版Docker-CE,支持compose V2
网络支持访问Dockerhub,国内可能需要配置加速源。
已安装Git,用于下载部署文件。
需要占用本机TCP端口:80、3306、6379、9001,确保空闲。
Docker 国内安装
PS:安装最新版,使用compose V2部署。
https://mirror.nju.edu.cn/mirrorz-help/docker-ce/?mirror=NJU
Docker Hub国内加速
1 | sudo mkdir -p /etc/docker |
Git 下载部署文件编排启动容器
PS:如果没git,可用 dnf install git
或 apt install git
安装。
1 | cd /opt |
访问Web 初始化admin密码
浏览器打开http://你的主机IP,第一次访问如下。点击初始化 admin密码。
输入两次密码后点击提交,然后使用admin账号进行登录。
登录后界面如下
部署后删除init-mysql容器和升级操作
将docker-compose.yaml 文件重写如下
vim /opt/WatchAlert/deploy/docker-compose/docker-compose.yaml
PS:删除init-mysql容器是为了防止下次启动再次导入数据库,但注意要在成功初始化密码登录Web后操作。
1 | services: |
删除init-mysql容器
1 | docker compose up -d --remove-orphans |
升级到最新版
1 |
|
日志数据源:ELK部署和Vlog部署教程
ELK系列:https://songxwn.com/categories/linux/ELK/
VictoriaLogs系列:https://songxwn.com/tags/VictoriaLogs/
Docker Compose配置文件讲解
用于定义和管理一个名为 WatchAlert 的多容器应用。它包含四个服务:w8t-service
、w8t-web
、w8t-redis
和 w8t-mysql
,并使用一个名为 w8t
的自定义网络。下面是详细讲解:
🧩 总体结构说明
- 使用
docker-compose
来编排多个容器服务。 - 所有服务都连接到同一个网络
w8t
,便于容器之间通信。 - 设置了时区为
Asia/Shanghai
,适用于中国大陆或港澳地区。
🚀 服务详解
1. w8t-service
:主后端服务
- 镜像:
cairry/watchalert:latest
- 端口映射:将容器的
9001
端口映射到主机的9001
端口。 - 配置挂载:将主机上的
../../config/config.yaml
挂载到容器内/app/config/config.yaml
。 - 健康检查:
- 每 5 秒检查一次
/hello
接口是否可访问。 - 超时时间为 2 秒,最多重试 10 次。
- 每 5 秒检查一次
- 依赖服务:启动前依赖
w8t-mysql
和w8t-redis
。 - 权限:
privileged: true
赋予容器更高权限(慎用)。
2. w8t-web
:前端 Web 服务
- 镜像:
cairry/watchalert-web:latest
- 端口映射:容器的
80
端口映射到主机的80
端口。 - 权限:同样设置为
privileged: true
。 - 用途:提供用户界面,供浏览器访问。
3. w8t-redis
:缓存数据库服务
- 镜像:
redis:latest
- 端口映射:
6379
是 Redis 默认端口。 - 配置挂载:
- 数据目录挂载到
./redis
。 - Redis 配置文件挂载为只读到
/usr/local/etc/redis/redis.conf
。
- 数据目录挂载到
- 启动命令:使用指定配置文件启动 Redis。
4. w8t-mysql
:关系型数据库服务
- 镜像:
mysql:8.0
- 端口映射:
3306
是 MySQL 默认端口。 - 数据挂载:将数据目录挂载到主机的
./mysql
。 - 环境变量:
- 设置时区。
- 设置 root 密码为
w8t.123
。 - 初始化数据库名为
watchalert
。
🌐 网络配置
1 | networks: |
- 所有服务都连接到
w8t
网络。 - 使用
bridge
驱动,适合单机部署。
运维技术交流群
发送邮件到 ➡️ [email protected]
或者关注WX公众号:网工格物