-
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分ごとです。
# scrape_timeoutはグローバルデフォルト(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' です
# スキームのデフォルトは '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 を入力します。