-
安装 Docker
-
安装 nvidia_gpu_exporter
来自 https://github.com/utkuozdemir/nvidia_gpu_exporter。
docker run -d \
--name nvidia_smi_exporter \
--restart unless-stopped \
--device /dev/nvidiactl:/dev/nvidiactl \
--device /dev/nvidia0:/dev/nvidia0 \
-v /usr/lib/x86_64-linux-gnu/libnvidia-ml.so:/usr/lib/x86_64-linux-gnu/libnvidia-ml.so \
-v /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1:/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1 \
-v /usr/bin/nvidia-smi:/usr/bin/nvidia-smi \
-p 9835:9835 \
utkuozdemir/nvidia_gpu_exporter:1.2.0
- 安装 prometheus
来自 https://prometheus.io/docs/prometheus/latest/installation/
# 为您的数据创建持久卷
docker volume create prometheus-data
# 我的全局配置
global:
scrape_interval: 15s # 将抓取间隔设置为每15秒一次。默认为每1分钟一次。
evaluation_interval: 15s # 每15秒评估一次规则。默认为每1分钟一次。
# 抓取超时设置为全局默认值(10秒)。
# Alertmanager 配置
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# 一次加载规则,并根据全局的 'evaluation_interval' 定期评估它们。
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# 包含仅一个端点的抓取配置:
# 这里是 Prometheus 本身。
scrape_configs:
# 作业名称将作为标签 `job=<job_name>` 添加到从此配置中抓取的任何时间序列。
- job_name: "prometheus"
# metrics_path 默认为 '/metrics'
# scheme 默认为 'http'。
static_configs:
- targets: ["localhost:9090"]
- job_name: "GPU"
static_configs:
- targets: ["172.17.0.1:9835"]
# 启动 Prometheus 容器
docker run -d \
-p 9090:9090 \
-v /root/monitor/prometheus.yml:/etc/prometheus/prometheus.yml \
-v prometheus-data:/prometheus \
prom/prometheus
- 安装 Grafana
来自 https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/
# 为您的数据创建持久卷
docker volume create grafana-storage
# 启动 Grafana
docker run -d -p 3000:3000 --name=grafana \
--volume grafana-storage:/var/lib/grafana \
grafana/grafana-enterprise
- Grafana 设置
首先,使用 admin/admin 登录。
其次,将 prometheus 设置为数据源,Prometheus server URL *
是 http://172.17.0.1:9090
(docker 网关 IP)。
第三,导入仪表板,将 ID 字段输入为 14574。