PrometheusとGrafanaでRaspberry Pi 5のメトリクスを監視する
はじめに
前モデルからCPU性能は2~3倍になり、GPU性能も向上したというRaspberry Pi 5。とはいえ、性能に大きな余裕があるわけではないので、負荷状況などをチェックしておきたくなります。
そこで今回は、PrometheusとGrafanaを利用して、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自体の基本的な使い方は以下を参照してください。
Grafanaのインストール
公式の手順に従い、Grafana Enterpriseをインストールします。
具体的には以下のような手順で実行しました。
# 依存パッケージのインストール
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はインストールしただけでは起動しません。以下の手順を参照してサービスを起動し、自動起動の有効化設定もしておきます。
具体的には以下のコマンドを実行します。
# 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」を利用します。
Home > Dashboards > New dashboard
から、新規ダッシュボードの作成画面を開きます。「Import dashboard」を選択します。
ダッシュボードの作成画面
ダッシュボードのIDとして1860
を入力すると、ダッシュボードをロードできます。
IDの入力画面
ダッシュボードの作成が完了すると、最初に示したようなダッシュボード画面が表示されるはずです。簡単ですね!
このダッシュボードは非常に多くのメトリクスが、最適な形式で可視化されています。たとえばCPU温度や冷却ファンの稼働状況は「Hardware Misc」ペインから確認できます。
デバイス関連のメトリクス
なお、各グラフから「Edit」を選択すると、グラフの設定内容を確認できます。これを参考にして、自分が見たいメトリクスのグラフを作成すると良さそうです。
まとめ
今回はGrafanaでサンプルのダッシュボードを作成するところまでを実行してみました。Grafanaではデータを眺める以外にも、以下のような機能を利用できます。
- 特定の条件でアラートを出す
- データをCSV形式でエクスポートし、分析に活用する
- データソースを追加し、室温データなどを可視化する(過去事例)
ラズパイでは外部センサーの情報を収集して可視化するというユースケースは多いと思います。そのような用途にも転用できるので、Grafanaの使い方を覚えておくと役立ちます。
参考資料
Discussion