Quantcast
Channel: mattintosh note
Viewing all articles
Browse latest Browse all 892

Raspberry Pi の CPU 温度を Zabbix Server に送る

$
0
0

Zabbix Agent で Raspberry Piの CPU 使用率やネットワーク使用率は Zabbix Server と連携できるようになったけど、CPU の温度までは連携してくれない。

そこで Zabbix Sender を使って Raspberry Piから Zabbix Server に能動的にデータを送る。

Raspberry Piの CPU 温度は vcgencmd measure_tempか、/sys/class/thermal/thermal_zone0/tempで調べることができる。

$ vcgencmd measure_temp; cat /sys/class/thermal/thermal_zone0/temp
temp=52.1'C
52615

これを例えば 52.615として Zabbix に送るには多少整形が必要になる。シェルによっては浮動小数点数を扱うことができるけど、出来ないという想定で、bcawkを使う方法なんかを書いておく。(文字列として扱うのであればなんとでもできるけど)

bcは追加インストールが必要なことがあるので awkの例。Zabbix Sender は通信がうまく出来たかどうか返してくれるけどとりあえず今日はやらない。

#!/bin/bashset-e#set -x#set -uZABBIX_SERVER=10.0.0.254
KEY=sys__class__thermal__thermal_zone0__temp

temp=$(awk 'BEGIN { getline < "/sys/class/thermal/thermal_zone0/temp"; print $0/1000 }')test-n"${temp}"

zabbix_sender -z"${ZABBIX_SERVER}"-s"${HOSTNAME}"-k"${KEY}"-o"${temp}"

こっちは bc。キーは別に被らなければ長くなくてもよい。

#!/bin/bashset-e#set -x#set -uZABBIX_SERVER=10.0.0.254
KEY=sys__class__thermal__thermal_zone0__temp

temp=$(echo"scale=3; $(cat /sys/class/thermal/thermal_zone0/temp)/1000"| bc -l)test-n"${temp}"

zabbix_sender -z"${ZABBIX_SERVER}"-s"${HOSTNAME}"-k"${KEY}"-o"${temp}"

Zabbix 側でホストのアイテムに「Zabbix トラッパー」を追加しておく。

f:id:mattintosh4:20170706233320p:plain

Zabbix Server との連携確認用に watchで実行させておく。しばらく実行させたままにするなら TMUX などで実行しておけば端末を落としても大丈夫。うまく連携できることを確認したら cron に任せる。

$ watch -pn 10 ./zabbix_sender.sh

Zabbix の「計算アイテム」を使う

Zabbix には「計算アイテム」と呼ばれるものがある。名前の通り、他の値を計算するアイテム。これを使えば 52615というような温度も Zabbix 側で計算して 52.62のようにすることができるのでわざわざシェルで整形する必要がない。

#!/bin/bashset-e#set -x#set -uZABBIX_SERVER=10.0.0.254
KEY=sys__class__thermal__thermal_zone0__temp

temp=$(< /sys/class/thermal/thermal_zone0/temp)test-n"${temp}"

zabbix_sender -z"${ZABBIX_SERVER}"-s"${HOSTNAME}"-k"${KEY}"-o"${temp}"

新しく計算アイテムを作る。

f:id:mattintosh4:20170706233330p:plain

計算式はこんな感じ。

last(sys__class__thermal__thermal_zone0__temp) / 1000

正しくアイテムが登録されれば計算した値を出してくれる。

f:id:mattintosh4:20170706233339p:plain

今回作った計算アイテムを使えば 1/1000 の値でグラフが作れる。


Viewing all articles
Browse latest Browse all 892

Trending Articles