AIOps平台建设:零基础搭建 AIOps 平台
零基础搭建 AIOps 平台:用 Docker 快速部署监控与日志系统
很多刚接触运维的朋友听到 AIOps(智能运维)会觉得门槛很高,
其实一个基础的 AIOps 平台包括指标采集、
日志聚合和告警通知三个核心模块,
今天我们就用 Docker 把它们串起来,
跑通一个可用的监控系统。
前置准备:一台 Linux 服务器 + Docker
你需要一台能联网的 Linux 服务器(CentOS 7 或 Ubuntu 20.04 以上),内存建议 4GB 以上。
Docker 和 Docker Compose 必须提前装好。
如果没有,先执行以下命令安装:
# 安装 Docker(以 Ubuntu 为例)
curl -fsSL https://get.docker.com | bash
sudo systemctl enable --now docker
# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/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)与日志(Loki)
我们用一个 docker-compose.yml 文件统一管理。
在服务器上新建目录并进入:
mkdir ~/aiops && cd ~/aiops
vim docker-compose.yml
粘贴以下内容(配置已做简化,适合零基础直接使用):
version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
command:
- '--config.file=/etc/prometheus/prometheus.yml'
loki:
image: grafana/loki:latest
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
再在同目录创建 Prometheus 配置文件 prometheus.yml:
vim prometheus.yml
填入:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
这里只监控 Prometheus 自身作为演示,生产环境需要添加 node_exporter 等目标。
启动所有服务
返回 ~/aiops 目录,执行:
docker-compose up -d
看到三个服务状态都是 Up 即可。
用 docker ps 检查端口映射:9090(Prometheus)、3100(Loki)、3000(Grafana)。
配置 Grafana 数据源与看板
打开浏览器访问 http://服务器IP:3000,默认账号密码 admin/admin。
登录后会要求修改密码,先跳过。
- 添加 Prometheus 数据源:左侧齿轮图标 → Data Sources → Add data source → Prometheus,URL 填写
http://prometheus:9090,点击 Save & Test。 - 添加 Loki 数据源:同样步骤,类型选 Loki,URL 填写
http://loki:3100,保存测试。 - 导入看板:左侧加号图标 → Import,输入官方 ID(比如 Prometheus 2.0 Stats 的 ID 为
1860),点击 Load,选择数据源后导入。
此时你就能在 Grafana 中看到 Prometheus 的指标面板。
如果要看日志数据,需要先采集日志文件,方法稍复杂,这里不做展开。
避坑指南
- 端口冲突:如果本地 3000/9090 已被占用,修改 docker-compose.yml 中映射端口如
3001:3000。 - 无法访问 Grafana:检查服务器防火墙是否放行端口(云服务器还需在安全组开放对应端口)。
- 容器名字解析:Grafana 内部通过容器名
prometheus访问 Prometheus,不要写成 localhost。 - 数据持久化:上面配置未做持久化,容器重启后数据会丢失。生产环境请加入 volumes 映射。
效果验证
- 访问
http://IP:9090/targets,看到 Prometheus 自己为 UP 状态。 - 在 Grafana 中打开你导入的看板,能看到图表数据;或者执行表达式
prometheus_http_requests_total看是否有数据返回。 - 如果导入了 Loki 日志数据源且已有日志流,可以在 Explore 中切换到 Loki 查看。
至此,一个极简的 AIOps 平台雏形就搭起来了。
你可以在此基础上添加 node_exporter 采集服务器指标、Promtail 采集日志文件、Alertmanager 发送告警,逐步完善。