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

WatchAlert 轻量级AI日志告警 - Docker安装部署

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

监控类型 支持的数据源

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 驱动,适合单机部署。

基础配置流程

http://www.cnnetsun.cn/news/21137.html

相关文章:

  • 波浪带鱼理论:过滤无效信号,提升投资收益的法宝
  • Step1X-Edit v1.2发布:推理编辑能力跃升,重新定义AI图像创作标准
  • BlenderMCP像素艺术转换终极指南:从3D模型到复古游戏资产的快速上手
  • OpenMower机器人割草机固件测试实战指南
  • 23、深入解析Kubernetes集群扩展与高级网络
  • Many Notes:打造高效云端笔记的终极解决方案
  • 【网络安全】渗透测试零基础入门之什么是文件包含漏洞?一文带你讲清其中的原理!
  • TypeScript:现代前端开发的类型约束者
  • 专业字体文件转换完全指南:ttctools使用详解
  • Descript Audio Codec:终极音频压缩解决方案,90倍压缩率重塑音质体验
  • 利用 DeepSeek 提升工作效率
  • Webhook.site终极选择指南:自部署与云端方案深度解析
  • PHPBrew自定义任务终极指南:扩展开发与实战技巧
  • 如何优雅重构HP-Socket应用:Deno 2.0兼容性深度解析与迁移策略
  • 老旧Mac升级终极指南:完整教程解锁macOS兼容新世界
  • 联想显卡散热风扇更换教程查找全攻略:从官方指引到社区经验
  • springboot基于vue的管网隐患安全巡检系统_i2g600ga
  • next-scene LoRA实战指南:3步实现电影级分镜AI生成
  • 传统算法之Canny亚像素边缘检测及将离散边缘点链接成线条的优化和探讨。
  • Autoware卡尔曼滤波技术:让自动驾驶感知系统更精准可靠
  • 优化算法matlab实现(一)相关matlab基础
  • 降本增效利器!腾讯云云服务器成本优势全解析
  • 如何5分钟搭建跨平台窗口监控系统:终极工具完全指南
  • NotchDrop:让MacBook刘海变身智能文件中转站
  • 5亿参数改写边缘智能规则:腾讯Hunyuan-0.5B-Instruct轻量化模型深度解析
  • 如何快速解决Nacos数据库升级冲突:5个实用技巧
  • 高密度互连板层压创新:从任意层互连到微孔填充技术
  • 高频PCB层压材料进化:介电性能博弈
  • 3.6万专业观众+50+采购团 CES Asia2026破解创新产品市场对接难题
  • B站漫画下载终极指南:一键搞定海量漫画本地化管理