Prometheus + Grafana で Raspberry Pi などの監視用ダッシュボードを作った
Feb 8, 2021
要約 #
- Prometheus と Grafana でいい感じの Raspberry Pi などの監視用ダッシュボードを作った
- Grafonnet を使って Grafana Dashboard as Code をやってみた
ノード監視用ダッシュボードを作ったきっかけ #
稼働中の Raspberry Pi が増えてきた #
昨今の新型コロナウィルスの状況により、在宅勤務が続き、それに伴って宅内環境監視を整備中です。 以前から 宅内の温湿度監視 はやっていたのですが、仕事をするにあたっては CO2 濃度がパフォーマンスに影響を与える らしいです。 それを見て、最近宅内の CO2 濃度監視もはじめました。
CO2 監視には Raspberry Pi Zero と MH-Z14A というセンサーを使っているのですが、それが計5セットあります。 以前から行っていた温度監視用に Raspberry Pi Zero を2台使っていたのですが、いつの間にか止まっているということが何度かありました。 そういうことがあり、数も増えたので今回こそはちゃんと Raspberry Pi の稼働を監視しようというのが今回の経緯です。
Prometheus + Grafana なんてよくある話 #
ノード監視に Prometheus + Grafana がよく使かわれていることはよく耳にしていたので以前からちゃんと使ってみようと思ってみました。 特に以前 Mike Julian 著 入門 監視 を読んでいたので、これを参考に監視項目を選んで見てみようと思っていました。
ただ、みんなと同じことをやっても面白くないなと思って Prometheus Tokyo Meetup #2 でうっすら聞いていた Grafana Dashboard as Code をやってみました。
Grafana Dashboards as Code #
Grafana Dashboards as Code は Grafonnet というものを使ってダッシュボード用の JSON ファイルを生成します。 はじめてみてわかったんですが、この Grafonnet の情報が世の中に全然ないです。
ただ、設定するパラメーター類は基本的には Grafana のパラメーターとほとんど同じなので、Grafana で PromQL のクエリーを書いて、表示したいパネルを仮組して、JSON を見つつ Grafonnet に落とし込む、みたいな作業の繰り返しで大体はできました。
そんな作業を繰り返して作ったダッシュボードはこんな感じになりました。
上記のとおりなので、Grafonnet の文法を理解するよりも、Grafana でどんなダッシュボードを作れるかを知っておくことの方が大切です。 ちなみに私は こちらの方のダッシュボード を参考にしてみました。
ちなみに armv6 用 Node Exporter の Docker イメージは自分で作る必要があります #
Raspberry Pi Zero の CPU は armv6 の CPU アーキテクチャーですが、armv6 用の Node Exporter は公式では提供されていません。 なお、公式に提供されているプラットフォームは こちら から確認できます。
とはいっても Raspberry Pi Zero の CPU は非常に非力なので、この上で Docker イメージのビルドをすることはおすすめできません。 そのため、今回は Docker Buildx というマルチプラットフォームビルドのための機能を使って armv6 用の Node Exporter をビルドしました。
この記事の関連メモ #
この記事の関連アイテム #
ではでは。