Appearance
Prometheus 和 Grafana搭建指南
环境信息
Prometheus Server:
10.7.220.106Prometheus:
9090Grafana:
3000Node Exporter:
9100Docker环境:
docker-composeStep1 创建工作目录
创建服务目录:
mkdir -p /data/prometheus
cd /data/prometheus目录结构:
预期:
/data/prometheus
├── docker-compose.yml
└── prometheus.ymlStep2 创建 Prometheus 配置文件
创建:
vim prometheus.yml写入:
global:
scrape_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets:
- "localhost:9090"
- job_name: "node-exporter"
static_configs:
- targets:
- "10.7.220.106:9100"说明:
global:
全局采集周期
scrape_configs:
配置监控目标
job_name:
指标分类名称
targets:
exporter地址Step3 创建 Docker Compose 文件
创建:
vim docker-compose.yml写入:
services:
prometheus:
image: prometheus:2.46.0
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
grafana:
image: grafana:10.4.3
container_name: grafana
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
volumes:
prometheus-data:
grafana-data:Step4 启动 Prometheus 和 Grafana
执行:
docker-compose up -d查看状态:
docker ps预期:
prometheus Up
grafana UpStep5 验证 Prometheus 服务
访问:
http://10.7.220.106:9090进入:
Status
↓
Targets查看:
prometheus
UP验证 PromQL:
进入:
Graph执行:
up预期:
up{instance="localhost:9090"} 1说明 Prometheus 工作正常。
Step6 验证 Node Exporter
查看节点指标:
PromQL:
node_cpu_seconds_total预期:
返回 CPU 指标。
查看磁盘:
node_filesystem_size_bytes查看内存:
node_memory_MemTotal_bytesStep7 登录 Grafana
访问:
http://10.7.220.106:3000默认账号:
admin默认密码:
admin首次登录:
修改密码。
Step8 添加 Prometheus 数据源
进入:
Connections
↓
Data sources
↓
Add data source
↓
Prometheus配置:
URL:
http://prometheus:9090点击:
Save & Test预期:
Data source is workingStep9 导入 Dashboard
进入:
Dashboards
↓
New
↓
Import输入 Dashboard ID:
例如:
1860选择:
Prometheus点击:
Import完成 Node Exporter Dashboard 导入。
Step10 新增监控节点 Exporter 部署
一. Node Exporter(10.7.220.107)
用于监控:
- CPU
- Memory
- Disk
- Network
- System
1. 删除旧容器
docker stop node-exporter
docker rm node-exporter2. 启动 Node Exporter
docker run -d \
--name node-exporter \
--net=host \
--pid=host \
--restart=always \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /:/rootfs:ro \
-v /var/lib/node-exporter:/var/lib/node-exporter:ro \
docker.m.daocloud.io/prom/node-exporter:v1.7.0 \
--path.rootfs=/rootfs \
--path.procfs=/host/proc \
--path.sysfs=/host/sys \
--collector.netdev \
--collector.textfile.directory=/var/lib/node-exporter \
--collector.netstat3. 验证 Node Exporter
查看状态:
docker ps | grep node-exporter检查 Metrics:
curl localhost:9100/metrics正常输出:
# HELP node_cpu_seconds_total
# TYPE node_cpu_seconds_total counter说明 Node Exporter 工作正常。
二. MetaX GPU Exporter(GPU节点)
用于监控:
- GPU温度
- GPU显存
- GPU状态
- ECC
- 编解码利用率
1. 启动 mx-exporter
docker run -d \
--name mx-exporter \
--device=/dev/dri \
-p 8000:8000 \
cr.metax-tech.com/cloud/mx-exporter:0.13.22. 验证 mx-exporter
查看状态:
docker ps | grep mx-exporter查看日志:
docker logs mx-exporter检查 Metrics:
curl localhost:8000/metrics预期:
# HELP mx_device_type
# TYPE mx_device_type gauge
mx_device_type{deviceId="0"} 1说明 GPU Exporter 工作正常。
Step11 添加监控节点到 Prometheus
修改:
vim prometheus.yml新增 Node Exporter:
- job_name: "node-exporter"
static_configs:
- targets:
- "10.7.220.107:9100"新增 MetaX GPU:
- job_name: "mx-exporter"
static_configs:
- targets:
- "10.7.220.254:8000"Step12 重启 Prometheus
当前 Prometheus 未开启:
--web.enable-lifecycle因此不能使用:
curl -X POST http://10.7.220.106:9090/-/reload执行:
docker restart prometheusStep13 常用 PromQL
CPU利用率
100 - avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100内存使用率
100 * (1-node_memory_MemAvailable_bytes/node_memory_MemTotal_bytes)磁盘使用率
100 * (
1 -
node_filesystem_avail_bytes{fstype!~"tmpfs|overlay"}
/
node_filesystem_size_bytes{fstype!~"tmpfs|overlay"}
)GPU温度
mx_chip_hotspot_tempGPU显存使用率
mx_memory_usage{type="vram"}
/
mx_memory_total{type="vram"}
*100Step14 故障排查
Prometheus 无法启动
查看:
docker logs prometheus检查配置:
docker exec prometheus \
promtool check config /etc/prometheus/prometheus.ymlGrafana 无法访问
查看:
docker logs grafana检查端口:
ss -lntp | grep 3000Prometheus 无法抓取 Exporter
检查:
curl http://目标IP:端口/metrics例如:
curl http://10.7.220.254:8000/metrics正常:
# HELP xxx
# TYPE xxx gauge
xxx 1修改配置后未生效
检查:
docker restart prometheus查看:
Status
↓
Targets确认:
UPStep15 服务维护命令
查看服务:
docker ps停止:
docker-compose down启动:
docker-compose up -d重启:
docker-compose restart查看日志:
docker logs -f prometheus
docker logs -f grafanaStep16 数据持久化说明
Grafana 数据:
grafana-data volume保存:
- 用户账号
- Dashboard
- 数据源配置
Prometheus 数据:
默认保存在容器内部。
生产环境建议增加:
volumes:
- ./prometheus-data:/prometheus避免容器删除导致历史数据丢失。
完成标准
验证:
Prometheus UP
Grafana UP
Node Exporter UP
mx-exporter UPGrafana 可以正常展示:
CPU
Memory
Disk
GPU
Temperature
Power
Network说明 Prometheus + Grafana 监控服务部署完成。