Help us understand the problem. What is going on with this article?

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

More than 3 years have 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

動作確認

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


参考

ozakit
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away