Posted at

自宅でPrometheusを使ってみる

More than 1 year has passed since last update.

自宅にRaspberry Pi 3があるのですが、Prometheusを入れてみた所面白かったので記事にします。


スクリーンショット


インストール

Prometheus を Raspberry Pi で動かしてみた

を参考にしました、バージョン等は違いますが概ね動きました。


温度を測る

Prometheusでは手軽にマシンのメトリクスを測ることができますが、自宅のRaspberry Piではあまりおもしろくありません。

何らかのセンサーを繋いで、グラフにしてみましょう。

今回使用しているのはボッシュ社製のBME280という温湿度気圧センサーです。

これ一つで温度、湿度、気圧を計測することができます。秋月電子で購入しました。

http://akizukidenshi.com/catalog/g/gK-09421

ブレッドボード経由で接続しています。



センサー情報を取得するのは

https://github.com/SWITCHSCIENCE/BME280/blob/master/Python27/bme280_sample.py

のスクリプトを使用しています。

Prometheusにデータを渡すには、node_exporterでテキストファイルを読み込ませるのが簡単でした。

Prometheus に Raspberry Pi の温度データを突っ込んでみたを参考にしました。

cronでセンサー情報収集スクリプトを回し、指定パスに結果を書き込むことで、node_exporterがPrometheus側にデータを渡してくれます。


スピードテスト

ネット回線のスピードテストの結果をグラフにしてみると

* どの時間帯にどの程度落ち込むか

* 速度の落ち込み具合は改善しているか、悪化しているか

などを分かりやすく視覚化できます。

スピードテストに使っているのはspeedtest-cliです。

計測結果をPrometheusに渡すのは、先程と同じくnode_exporterを使用します。

speedtest-cliには計測結果の出力をcsvやjsonといった加工しやすい形式を選択することができ便利です。

ここではcsv形式を使って簡単なスクリプトを書いています。


#!/bin/bash
BINDIR=/var/spool/prometheus/bin
OUTDIR=/var/spool/prometheus/collector

$BINDIR/speedtest-cli --csv | awk -F, '{print "node_speedtest_ping " $6; print "node_speedtest_download " $7; print "node_speedtest_upload " $8}' > $OUTDIR/node_speedtest.prom.$$
mv $OUTDIR/node_speedtest.prom.$$ $OUTDIR/node_speedtest.prom

スピードテストの計測間隔は負荷も考えられるので長めに設定しておきます。

今後は計測用のセンサーを足したり、Prometheusのアラート機能で発報させてみたいと思います。