のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

ZabbixでGPUを監視する

Sponsored Links

皆さんこんにちは
お元気ですか。私はISUCONで負けました。

前回はCPUの温度監視をしました。だが、まだ情報が足りません。

そう、GPUの監視情報です。一般的にはnvidia-smiから情報を取得できますが
これをZabbixで見たいと思います。

同じようなことを考える人は古今東西にいるもので、
Zabbix Agentの設定、テンプレートまで公開されています。それに沿って可視化しましょう。

github.com

Zabbix Agentの設定

Zabbix AgentにUserParameterを設定します。
このパラメータを設定することでZabbixAgentに新しくメトリックを追加できます。

今回のテンプレートでは、次の内容を追加します。

UserParameter=gpu.temp,nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits -i 0
UserParameter=gpu.memtotal,nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits -i 0
UserParameter=gpu.used,nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits -i 0
UserParameter=gpu.free,nvidia-smi --query-gpu=memory.free --format=csv,noheader,nounits -i 0
UserParameter=gpu.fanspeed,nvidia-smi --query-gpu=fan.speed --format=csv,noheader,nounits -i 0
UserParameter=gpu.utilisation,nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits -i 0
UserParameter=gpu.power,nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits -i 0

テンプレートの設定

さて、githubにテンプレート(nvidia_smi_template.xml)があります。
このテンプレートをZabbixに読み込ませます。

f:id:tereka:20171015014349p:plain

そして、Hostsから対象のサーバにテンプレートを適用します。

f:id:tereka:20171015014451p:plain

さて、この状態でグラフを見ます。4種類のグラフが増えています。

  1. GPU Tempareture・・・GPUの温度の確認ができる
  2. GPU Power・・・GPUの消費電力の確認ができる
  3. GPU Memory・・・GPUメモリの状態の確認ができる
  4. GPU Utilisation・・・GPUの利用率を確認できる

試しにこのグラフを表示します。一応全てのキャプチャを撮影しました。

GPU Tempareture
f:id:tereka:20171015015217p:plain

GPU Power
f:id:tereka:20171015015243p:plain

GPU Memory
f:id:tereka:20171015015233p:plain

GPU Utilisation
f:id:tereka:20171015014738p:plain

それぞれ監視ができています。この状態で、異常が起こった場合の状態を確認できます。

最後に

簡単にGPUの状態を監視できました。
とりあえず、これを眺めて楽しみます。
※様々なことを行って調べたところ私のマシントラブルはマザーボードが原因だったようです。