【CPU温度やI/Oの監視】Rapberry Pi4サーバにMonitorixをインストールする方法
前書き:ラズパイサーバが停止するので監視したい
Raspberry Pi4にPLEXマルチメディアサーバを導入して、約一ヶ月ほど運用した結果、2〜3日の稼働でシステム停止してしまう問題に遭遇しています。
この問題の対症療法として、Watch Dog Timerとheartbeatを用いてシステム停止時に自動再起動を行う対応を実施しました。
今回はシステムが停止する原因を探るため、Raspberry Pi4にMonitorixをインストールして、システムリソースの変化をモニタリングできるようにします。そこで、本記事では「Monitorixのインストール方法」と「Raspberry Pi向けの設定」に関して説明します。
Monitorixとは
Monitorixは、軽量なシステムリソースモニタリングツールであり、Webブラウザ経由でリソースの使用状況を表したグラフを確認できます。Perlスクリプトで実装されており、Monitorixが生成するリソース監視ログ(rrdバイナリ)をrrdtoolでグラフ化(画像化)するという仕組みのようです。
公式サイトに、
Take control over your small server
と書かれている通り、小規模なシステム用かつ使いやすい(分かりやすい)ツールです。
Monitorixのメリットは導入の楽さであり、デメリットはグラフの地味さ。
Monitorixはaptパッケージマネージャーでインストールできますが、他のツール(例:netdataやgrafana)はインストール方法がやや煩雑です。例えば、Dockerをインストールした後に、モニタリングする内容を選別するためにDashboardをカスタマイズする必要があります。
インストール方法の簡便さと引き換えに、Monitorixはモニタリング結果の表示画面が古臭いです。他のツールはモダンな見た目をしていますが、Monitorixは一昔前のWebサイトのような色使いをしています。THE・原色といった感じ。
以下に、サンプル画像を示します。
Monitorixの画面
netdataの画面
grafanaの画面
私のように「何をモニタリングすれば良いか決めていない」「監視に手間を掛けたくない」という方はMonitorixを選択し、「いやいや、見た目大事っしょ」という方は他のツールを選択すれば良いと思います。
検証環境
Raspberry Pi4(RAM8GB)、Raspberry Pi OS環境で検証します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
_,met$$$$$gg. lemmy@motorhead ,g$$$$$$$$$$$$$$$P. --------------- ,g$$P" """Y$$.". OS: Debian GNU/Linux 10 (buster) aarch64 ,$$P' `$$$. Host: Raspberry Pi 4 Model B Rev 1.4 ',$$P ,ggs. `$$b: Kernel: 5.4.72-v8+ `d$$' ,$P"' . $$$ Uptime: 4 hours, 8 mins $$P d$' , $$P Packages: 1472 (dpkg) $$: $$. - ,d$$' Shell: bash 5.0.3 $$; Y$b._ _,d$P' Terminal: /dev/pts/1 Y$$. `.`"Y$$$$P"' CPU: (4) @ 1.500GHz `$$b "-.__ Memory: 494MiB / 7814MiB `Y$$ `Y$$. `$$b. `Y$$b. `"Y$b._ |
Monitorixのインストール
2020年11月現在、aptパッケージマネージャーでmonitorix-3.10.1がインストールできます。
1 |
$ sudo apt install monitorix |
Raspberry Piの固定IP化
Monitorixのモニタリング結果は、IPアドレス指定で確認する事になるため、DHCPで動的にIPアドレスが変わると運用しづらいです。そのため、以下の記事を参考にしてRaspberry Pi4を固定IP化します。
Raspberry Piに固定IPを割り当てる方法
Raspberry Pi4 CPU/温度/電圧モニタリング有効化
Monitorixの設定ファイル/etc/monitorix/monitorix.confを編集して、Raspberry Pi4のCPU使用率、温度、電圧のモニタリング(センサ情報のモニタリング)を無効から有効に変更します。
まずは、Raspberry Piセンサログ情報のグラフ化フラグをYes(有効)に変更します。
1 2 3 4 5 6 7 8 9 10 11 |
(注釈) vim以外のエディタを使用しても問題ありません。 $ sudo vim /etc/monitorix/monitorix.conf (注釈)以下、/etc/monitorix/monitorix.confに設定する内容 <graph_enable> : ※ 省略 icecast = n raspberrypi = y ※ nからyに変更 phpapc = n : ※ 省略 </graph_enable> |
次に、バグ対応を実施します。MonitorixはvcgencmdコマンドでRaspberry Pi4のセンサ情報を取得していますが、vcgencmdコマンドのインストールPATHを間違えています。間違えた状態では、グラフが作成できません。
以下、修正手順です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
(注釈)vcgencmdコマンドの正しいインストールPATHを確認 $ which vcgencmd /usr/bin/vcgencmd $ sudo vim /etc/monitorix/monitorix.conf (注釈) 以下、/etc/monitorix/monitorix.confの内容 --------------------(修正前 ↓)----------------------------- <raspberrypi> cmd = /opt/vc/bin/vcgencmd clocks = arm, core, h264, isp, v3d, uart, emmc, pixel, hdmi volts = core, sdram_c, sdram_i, sdram_p rigid = 0, 0, 0 limit = 100, 100, 100 </raspberrypi> --------------------(修正前 ↑)----------------------------- --------------------(修正後 ↓)----------------------------- <raspberrypi> cmd =/usr/bin/vcgencmd ※ ここのPATHを変更 clocks = arm, core, h264, isp, v3d, uart, emmc, pixel, hdmi volts = core, sdram_c, sdram_i, sdram_p rigid = 0, 0, 0 limit = 100, 100, 100 </raspberrypi> --------------------(修正後 ↑)----------------------------- |
monitorix.confの修正頻度が高そうなパラメータ
下表に、Monitorix設定ファイル/etc/monitorix/monitorix.confのパラメータの中から、修正する可能性が高そうなものをピックアップして紹介します。下表に登場しないパラメータは、公式ドキュメントで確認してください。
パラメータ名 | 役割 |
title | Webブラウザでモニタリング結果確認時、Webブラウザのタブに表示されるタイトル |
hostname | サーバのhostname |
theme_color | モニタリング結果を白背景(white)で表示するか、黒背景(black)で表示するか |
refresh_rate | Webブラウザに表示するモニタリング結果のリフレッシュレート([s]単位) リフレッシュ間隔を早めると、画面がカクついた印象を受ける |
max_historic_years | モニタリング結果の保存期間(年単位、上限値なし) 調子に乗って50年と設定したらメモリの半分を食い尽くしたので注意 |
port(httpd_builtin) | モニタリング結果を表示する際に使用するポート番号(デフォルト8080番) |
ポート番号に関しては、既に8080番を他のサービスが使用している場合、別の値に変更が必要です。
モニタリング結果の確認
Monitorixの設定変更を行ったため、まずはsystemdを用いてMonitorixを再起動します。デフォルトでMonitorixは有効化されていると思いますが、有効化(enable)してから再起動(restart)します。
1 2 |
$ sudo systemctl enable monitorix $ sudo systemctl restart monitorix |
次に、Webブラウザに”http://(ラズベリーパイのIPアドレス):8080/index.html”を入力して、モニタリング結果画面を確認します。ポート番号の設定を変更している場合は、8080の部分を適宜変更してください。
Monitorixが正しく動作している場合は、以下の画面がWebブラウザに表示されます。
Dailyのモニタリング結果(一部)は、以下のように表示されます。下図は抜粋であり、実際にはファイルシステム使用率やネットワーク統計情報なども出力されています。
Raspberry Pi4のCPU使用率、温度、電圧のモニタリング結果は、以下の通りです。大きいファンを使用、かつ全く負荷がかかっていない環境のため、温度が40℃ぐらいしかありません(下図の右上)。
ロシア人と国際結婚した地方エンジニア。
小学〜大学院、就職の全てが新潟。
大学の専攻は福祉工学だったのに、エンジニアとして就職。新卒入社した会社ではOS開発や半導体露光装置ソフトを開発。現在はサーバーサイドエンジニアとして修行中。HR/HM(メタル)とロシア妻が好き。サイトに関するお問い合わせやTwitterフォローは、お気軽にどうぞ。
“We absolutely like Monitorix for its user friendliness and lightweight. They are a must-try for those who are looking for a free and easy-to-use system monitoring tool.” – Jerry HostScore.net