📊

PrometheusとGrafanaでRaspberry Pi 5のメトリクスを監視する

2024/03/03に公開

はじめに

前モデルからCPU性能は2~3倍になり、GPU性能も向上したというRaspberry Pi 5。とはいえ、性能に大きな余裕があるわけではないので、負荷状況などをチェックしておきたくなります。

そこで今回は、PrometheusGrafanaを利用して、Raspberry Pi 5のメトリクスをグラフィカルに表示してみました。


作成したダッシュボード

OSに標準搭載の「タスクマネージャー」アプリでもCPUやメモリの利用状況などを表示できます。しかし今回の方法を使えば、より多くの情報を時系列で見ることができます。

利用するツール

今回は、「Prometheus」「Node exporter」「Grafana」の3つのツールを導入します。それぞれの役割は以下のとおりです。

ツール 役割 概要
Node exporter 監視エージェント Raspberry Pi 5からメトリクスを収集し、Prometheusへ渡す
Prometheus サーバー監視ツール エージェントから取得したメトリクスをDBに保存し、検索可能にする
Grafana データ可視化ツール Prometheusで取得したデータを可視化する

Prometheusにもデータの可視化機能がありますが、Grafanaの方が高機能かつ美しく可視化ができるため、今回はGrafanaを併用します。

Prometheusのインストール

PrometheusとNode exporterは公式のリポジトリに登録されているため、以下のコマンドを実行してインストールできます。

sudo apt install prometheus prometheus-node-exporter

インストールが完了すると、サービスが自動的に起動し、メトリクスの収集が始まります。自動起動の設定も有効化されています。

Prometheusの動作確認

サービスが起動した状態でhttp://localhost:9090にアクセスすると、PrometheusのGUI画面を開けます。

この画面からも簡単な可視化ができます。たとえば、デバイス温度はnode_thermal_zone_tempから取得できます。


Prometheusの管理画面

Prometheus自体の基本的な使い方は以下を参照してください。

https://prometheus.io/docs/prometheus/latest/getting_started/

Grafanaのインストール

公式の手順に従い、Grafana Enterpriseをインストールします。

https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/

具体的には以下のような手順で実行しました。

# 依存パッケージのインストール
sudo apt-get install -y apt-transport-https software-properties-common wget

# GPGキーのインストール
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null

# 安定リリース版のリポジトリを追加
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

# Grafanaのインストール
sudo apt-get update
sudo apt-get install grafana-enterprise

Grafanaはインストールしただけでは起動しません。以下の手順を参照してサービスを起動し、自動起動の有効化設定もしておきます。

https://grafana.com/docs/grafana/latest/setup-grafana/start-restart-grafana/

具体的には以下のコマンドを実行します。

# Grafanaの起動
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl status grafana-server

# Grafanaの自動起動の有効化
sudo systemctl enable grafana-server.service

Grafanaの初期設定

Grafanaの管理画面にログインし、Prometheusからのデータ取得設定を追加します。

まず、http://localhost:3000にアクセスし、ログイン画面を表示します。ID・PWともにadminでログインできます。


Grafanaログイン画面

Home > Connections > Add new connectionの画面で「Prometheus」を選択し、データソースを追加します。


データソースの選択

データソースの設定画面が開きます。「Prometheus server URL *」の欄にはhttp://localhost:9090を入力します。


データソースの設定が画面

この状態で「Save & Test」ボタンをクリックすると、データの取得に成功します。これでデータの可視化準備が整いました。

Grafanaダッシュボードの作成

Node exporterで取得できるメトリクスは非常に多いため、ダッシュボードを1から自分で作るのは時間がかかります。そこで今回は、Node exporterのメトリクスをすべて可視化できるダッシュボードのテンプレート「Node Exporter Full」を利用します。

https://grafana.com/grafana/dashboards/1860-node-exporter-full/

Home > Dashboards > New dashboardから、新規ダッシュボードの作成画面を開きます。「Import dashboard」を選択します。


ダッシュボードの作成画面

ダッシュボードのIDとして1860を入力すると、ダッシュボードをロードできます。


IDの入力画面

ダッシュボードの作成が完了すると、最初に示したようなダッシュボード画面が表示されるはずです。簡単ですね!

このダッシュボードは非常に多くのメトリクスが、最適な形式で可視化されています。たとえばCPU温度や冷却ファンの稼働状況は「Hardware Misc」ペインから確認できます。


デバイス関連のメトリクス

なお、各グラフから「Edit」を選択すると、グラフの設定内容を確認できます。これを参考にして、自分が見たいメトリクスのグラフを作成すると良さそうです。

まとめ

今回はGrafanaでサンプルのダッシュボードを作成するところまでを実行してみました。Grafanaではデータを眺める以外にも、以下のような機能を利用できます。

  • 特定の条件でアラートを出す
  • データをCSV形式でエクスポートし、分析に活用する
  • データソースを追加し、室温データなどを可視化する(過去事例

ラズパイでは外部センサーの情報を収集して可視化するというユースケースは多いと思います。そのような用途にも転用できるので、Grafanaの使い方を覚えておくと役立ちます。

参考資料

https://qiita.com/moritalous/items/76730e99b2842be87208

https://grafana.com/docs/grafana/latest/getting-started/get-started-grafana-prometheus/

GitHubで編集を提案

Discussion