RaspberryPi
prometheus

Prometheus に Raspberry Pi の温度データを突っ込んでみた

More than 1 year has passed since last update.

Prometheus を Raspberry Pi で動かしてみた の続編です。

Prometheus へ任意のデータを突っ込む、あるいは Prometheus から任意のデータを拾ってもらうためには、以下いずれかの条件を満たさなければならないようです。

* ほかの Prometheus サーバに入れたデータ

* Pushgateway に登録してあるデータ

* node_exporter 起動時に、 --collector.textfile.directory オプションで定義したディレクトリの *.prom ファイルに書いたデータ

* 自作の exporter が収集するデータ

exporter を作ってもよかったのですが、たかが温度だけでポート番号をひとつ占有するのはアホらしいので、ひとまず node_exporter 経由で温度情報を収集することにしました。

かんたんに用意できることがメリット、cron のログが汚れることがデメリット。


準備


保存場所作成

温度データを保存し、保存した情報を node_exporter に渡すためのディレクトリを用意します。

pi@raspi:~ $ sudo -s -u prometheus

Password:
prometheus@raspi:/home/pi $ cd
prometheus@raspi:~ $ mkdir collector

ついでに、温度データを書き出すスクリプトを置く場所を準備します。

prometheus@raspi:~ $ mkdir bin


データ更新スクリプト作成

データ更新スクリプトを作成します。


/var/spool/prometheus/bin/node_RaspberryPi_temp.sh

#!/bin/sh

OUTDIR=/var/spool/prometheus/collector

awk '{print "node_RaspberryPi_temp " $1 / 1000;}' /sys/class/thermal/thermal_zone0/temp > $OUTDIR/node_RaspberryPi_temp.prom.$$
mv $OUTDIR/node_RaspberryPi_temp.prom.$$ $OUTDIR/node_RaspberryPi_temp.prom


awk コマンドの部分がきちんと動けばオッケーです。


cron へ登録

prometheus ユーザで、1分ごとに上記スクリプトを実行するよう設定します。


設定


node_exporter の起動スクリプト修正

node_exporter 起動スクリプトに、必要なオプションを埋め込みます。

--collector.textfile.directory=/var/spool/prometheus/collector


  • node_exporter 再起動

/sbin/service node_exporter restart


動作確認

グラフを表示できれば大丈夫です。



参考