AI监控告警教程指南实用实用实用
服务器AI监控告警从零搭建:用Prometheus实现智能异常预警
很多运维新手在配置监控时,最头疼的就是手动设置阈值——流量突然波动就误报,真正的异常又漏报。
这次我带你用 AI监控告警 的思路解决这个问题:部署一套可自学习的异常检测系统,自动识别指标偏离模式并触发告警。
全步骤基于 Docker,一台 Linux 服务器 + 简单命令就能跑起来。
前置准备:一台服务器和 Docker 环境
你需要一台能联网的 Linux 服务器(CentOS 7+ 或 Ubuntu 20.04+),建议最低 2 核 4G。
然后安装 Docker 和 Docker Compose:
# 安装 Docker(Ubuntu 示例)
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker
# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
确认环境正常:运行 docker --version 和 docker-compose --version 应看到版本号。
搭建 Prometheus + Alertmanager 监控底座
用 Docker Compose 一键拉起核心组件。
创建一个工作目录并写入配置文件:
# docker-compose.yml
version: '3.8'
services:
prometheus:
image: prom/prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
alertmanager:
image: prom/alertmanager
ports:
- "9093:9093"
volumes:
- ./alertmanager.yml:/etc/alertmanager/alertmanager.yml
在同目录下创建 prometheus.yml 和 alertmanager.yml。prometheus.yml 最简单的配置如下:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100'] # 请确保安装了 node_exporter
启动:docker-compose up -d。
浏览器访问 http://服务器IP:9090 确认 Prometheus 页面正常。
集成 AI 异常检测组件
这里我们使用开源项目 prometheus-anomaly-detector 来实现 AI监控告警。
下载它的 Docker 镜像并修改 docker-compose.yml:
anomaly-detector:
image: whyyq/prometheus-anomaly-detector
ports:
- "8000:8000"
environment:
- PROMETHEUS_URL=http://prometheus:9090
- ALERTMANAGER_URL=http://alertmanager:9093
restart: always
重新 docker-compose up -d。
这个组件会自动从 Prometheus 拉取历史指标,使用孤立森林算法训练模型,然后实时评估当前值是否异常。
当检测到异常时,它会直接向 Alertmanager 推送告警。
配置告警接收与通知
Alertmanager 需要配置如何发送通知。
编辑 alertmanager.yml,下面是一个钉钉机器人示例:
route:
receiver: 'dingtalk'
receivers:
- name: 'dingtalk'
webhook_configs:
- url: 'https://oapi.dingtalk.com/robot/send?access_token=你的TOKEN'
重启 Alertmanager 使配置生效:docker-compose restart alertmanager。
验证 AI 告警效果与避坑要点
制造一次模拟异常:在服务器上用 stress 工具短时拉高 CPU:
sudo apt install stress
stress --cpu 4 --timeout 120
等待几分钟,观察钉钉或 Alertmanager 管理页面(http://服务器IP:9093)是否收到告警。
正常时应该看到类似“CPU异常飙升”的告警内容。
避坑指南:
- 异常检测需要足够的历史数据(至少 24 小时),刚部署完没有数据时不会触发。
- 确保所有容器时间同步,否则告警时间戳会混乱。
- 如果告警过于频繁,可以调整异常检测器中的
threshold参数(环境变量THRESHOLD=0.95提高灵敏度)。
如果你正在实践 AI监控告警,建议先运行一两天积累基线数据,再根据实际业务调整模型参数。
遇到异常告警时,优先检查服务器资源和日志,然后再优化检测规则。
这套方案可以大大降低人工设阈值的维护成本,特别适合变化频繁的业务场景。