-
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"
# スクレイプ構成には、スクレイプするためのエンドポイントが1つだけ含まれています。
# ここでは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 を入力します。