当前位置: 首页 > news >正文

/多数据源非常直观、简便。下面以 Model User/Order 为例,通过查询用户的订单列表,来演示多数据库/多数据源的使用方法 ...

好瘫染欠?? WatchAlert 是什么?

?? 专注可观测性与稳定性,为运维提效降本

WatchAlert 是一款专为云原生环境设计 的轻量级监控告警引擎,聚焦于可观测性(Metrics、Logs、Traces)与系统稳定性保障,提供从采集、分析到告警的全链路解决方案 。

?? AI 智能加持,让告警更有“洞察力”

通过 AI 技术深度分析 Metrics、Logs 和 Traces 中的异常信号,精准定位根因,智能生成排查建议与修复方案,显著提升故障响应效率。

注:本教程主要为在Docker环境下安装部署WatchAlert,用于接入ElasticSearch和VictoriaLogs作为日志告警。

?? 全面兼容主流可观测技术栈

监控类型 支持的数据源

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国内加速

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": [

"https://docker-0.unsee.tech",

"https://docker-cf.registry.cyou",

"https://docker.1panel.live"

]

}

EOF

systemctl daemon-reload && sudo systemctl restart docker

systemctl enable docker

?

Git 下载部署文件编排启动容器

?

PS:如果没git,可用dnf install git或 apt install git 安装。

?

cd /opt

git clone https://github.com/opsre/WatchAlert.git

# 国内如果无法通过Github下载,可替换为在Gitee下载> git clone https://gitee.com/semaik/WatchAlert.git

cd /opt/WatchAlert/deploy/docker-compose

# 进入docker-compose.yaml 文件所在目录进行部署

sed -i 's|docker.io/||g' docker-compose.yaml

# 删除docker.io字段,确保自动使用加速器。

docker compose up -d

# 拉取镜像并在后台启动

docker compose ps

# 查看启动状态,注意第一次启动需要启动init-mysql 容器用于初始化数据库,初始化完成后会自动停止。

?

访问Web 初始化admin密码

?

浏览器打开http://你的主机IP,第一次访问如下。点击初始化 admin密码。

?

?

?

输入两次密码后点击提交,然后使用admin账号进行登录。

?

?

登录后界面如下

?

?

?

部署后删除init-mysql容器和升级操作

?

?

将docker-compose.yaml 文件重写如下

?

vim /opt/WatchAlert/deploy/docker-compose/docker-compose.yaml

?

PS:删除init-mysql容器是为了防止下次启动再次导入数据库,但注意要在成功初始化密码登录Web后操作。

services:

w8t-service:

container_name: w8t-service

image: docker.io/cairry/watchalert:latest

environment:

- TZ=Asia/Shanghai

volumes:

- ../../config/config.yaml:/app/config/config.yaml

restart: always

privileged: true

ports:

- "9001:9001"

healthcheck:

test: ["CMD", "wget", "localhost:9001/hello"]

interval: 5s

timeout: 2s

retries: 10

depends_on:

- w8t-mysql

- w8t-redis

networks:

- w8t

w8t-web:

container_name: w8t-web

image: docker.io/cairry/watchalert-web:latest

environment:

- TZ=Asia/Shanghai

restart: always

privileged: true

ports:

- "80:80"

networks:

- w8t

w8t-redis:

container_name: w8t-redis

image: redis:latest

ports:

- "6379:6379"

command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

volumes:

- ./redis:/data

- ./redis.conf:/usr/local/etc/redis/redis.conf:ro

environment:

- TZ=Asia/Shanghai

restart: always

networks:

- w8t

w8t-mysql:

container_name: w8t-mysql

image: mysql:8.0

ports:

- "3306:3306"

volumes:

- ./mysql:/var/lib/mysql

environment:

- TZ=Asia/Shanghai

- MYSQL_ROOT_PASSWORD=w8t.123

- MYSQL_DATABASE=watchalert

restart: always

networks:

- w8t

networks:

w8t:

driver: bridge

删除init-mysql容器

?

docker compose up -d --remove-orphans

# 删除多余容器

docker compose ps

NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS

w8t-mysql mysql:8.0 "docker-entrypoint.s…" w8t-mysql 29 minutes ago Up 29 minutes 0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp

w8t-redis redis:latest "docker-entrypoint.s…" w8t-redis 29 minutes ago Up 29 minutes 0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp

w8t-service docker.io/cairry/watchalert:latest "/app/w8t" w8t-service 29 minutes ago Up 29 minutes (unhealthy) 0.0.0.0:9001->9001/tcp, [::]:9001->9001/tcp

w8t-web docker.io/cairry/watchalert-web:latest "/docker-entrypoint.…" w8t-web 29 minutes ago Up 29 minutes 0.0.0.0:80->80/tcp, [::]:80->80/tcp

# 查看状态如上

升级到最新版

docker compose pull

docker compose up -d

## 拉取最新版镜像,并更新运行中的容器镜像为最新版。

?

日志数据源: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 次。

依赖服务:启动前依赖 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。

?? 网络配置

networks:

w8t:

driver: bridge

所有服务都连接到 w8t 网络。

使用 bridge 驱动,适合单机部署。

基础配置流程

创建数据源(可接入ES或Vlogs等数据源) > 创建通知对象(添加企业微信、钉钉、飞书等机器人) > 创建规则组 > 在规则组选择数据库匹配告警

http://www.jsqmd.com/news/429494/

相关文章:

  • AI提示工程云端部署权限管理最佳实践:最小权限原则落地指南
  • python+flask+vue框架的油田土地档案管理系统_
  • python+flask+vue框架的智能社区物业管理系统 智汇家园管理系统_-- 项目源码
  • 原型与原型链:深入解析 JavaScript 的基础机制
  • python+flask+vue框架的校园家教信息平台的设计开发
  • 非结构化数据在大数据预测分析中的应用
  • python+flask+vue框架的植物绿植盆景销售商城管理系统的设计与实现__
  • 提示工程架构师实战:如何用提示优化AR场景的设备适配问题?
  • AI应用架构师成长路线:性能调优能力从入门到专家的5个阶段
  • RabbitMQ与Presto在大数据查询中的协同
  • 华为OD机考双机位C卷 - AI处理器组合 (Java Python JS GO C++ C)
  • Oracle数据库被勒索加密一键open工具–OraFHR
  • 揭秘大语言模型高效部署秘籍:算法创新+系统优化,性能飙升!
  • Apache Kafka 是什么?
  • 2026年大模型学习路线图:从零基础到精通,附100套落地方案+200本PDF书籍免费领取!
  • 分岗位拆解:C++面试高频问题全景指南(2026版)
  • 《LeetCode 顺序刷题》31 - 40
  • RabbitMQ-异步和同步
  • AI应用开发工程师发展方向
  • 嵌入式通用通信帧协议设计
  • RAG 检索增强生成
  • 一篇配有AI漫画的文章告诉大家从小抓好体能素质的意义,比考试成绩重要得多,关键时刻能保命(公益文章,希望增大展现量,漫画由智谱清言AI生成)
  • 豆包广告怎么投?2026年企业获客的2个方案 - 品牌2026
  • 嵌入式软件分层架构
  • Git:临时切换分支保存当前工作
  • [AI智能体与提效-121] - LangChain 核心专业术语与阐述
  • 读懂用户心理,才是好 UI 设计的开始 - ui设计公司兰亭妙微
  • Git分支命名规范示例
  • why visual letters are good
  • DeepSeek能植入广告吗?2026年企业获客新解法 - 品牌2026