NanoPi NEO2のシステム監視 RPi-Monitorとnetdata

Raspberry PiにしろNanoPi NEOにしろおもちゃなので常時稼働させるのはちょっと心配。ときどき稼働状況を見たいということがある筈。
あまり大がかりなのではなく簡単にシステムの稼働状況を見るツールとしてRPi-MonitorとnetdataをNanoPi NEO2に入れてみた。

RPi-Monitor

NanoPi NEO2とarmbianの組み合わせでは以前にも書いたがRPi-Monitor (rpimonitor)が簡単に使えるようになっている。RPi-Monitorインストール用コマンドがarmbianmonitorに用意されているので実行するだけ。

RPi-Monitorインストール

# armbianmonitor -r
中略
[ ok ] Restarting rpimonitor (via systemctl): rpimonitor.service.
Processing triggers for libc-bin (2.24-11+deb9u1) ...

Now you're able to enjoy RPi-Monitor at http://:8888
#

そんなに大したものではなさそう(失礼)なのにいろいろ展開されるので個人的にはrpimonitorは好きじゃない。
インストール後に自動的にサービス起動まで行うのでブラウザで開くだけの筈なんだけど、ネットワーク系のモニタ設定がワザと無効になっているので設定ファイルを変更する。

設定変更

/etc/rpimonitor/template/network.conf
 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
27
28
29
30
31
32
[code lang="plain"]
dynamic.10.name=net_received
dynamic.10.source=/sys/class/net/eth0/statistics/rx_bytes
dynamic.10.regexp=(.*)
dynamic.10.postprocess=$1*-1
dynamic.10.rrd=DERIVE
dynamic.10.max=0

dynamic.11.name=net_send
dynamic.11.source=/sys/class/net/eth0/statistics/tx_bytes
dynamic.11.regexp=(.*)
dynamic.11.postprocess=
dynamic.11.rrd=DERIVE
dynamic.11.min=0

web.status.1.content.8.name=eth0
web.status.1.content.8.icon=network.png
#web.status.1.content.8.line.1="To activate network monitoring, edit and customize <font color='#AA0000'><b>network.conf</b></font>"
#web.status.1.content.8.line.2="Help is available in man pages:"
#web.status.1.content.8.line.3="<font color='#AA0000'><b>man rpimonitord</b></font> or <font color='#AA0000'><b>man rpimonitord.conf</b></font>"
web.status.1.content.8.line.1="Ethernet Sent: <b>"+KMG(data.net_send)+"<i class='icon-arrow-up'></i></b> Received: <b>"+KMG(Math.abs(data.net_received)) + "<i class='icon-arrow-down'></i></b>"

web.statistics.1.content.2.name=eth0
web.statistics.1.content.2.graph.1=net_send
web.statistics.1.content.2.graph.2=net_received
web.statistics.1.content.2.graph_options.yaxis={ tickFormatter: function (v) { if (Math.abs(v) > 1048576) return (Math.round(v*10/1024/1024)/10) + " MiB/s" ; if (Math.abs(v) > 1024) return (Math.round(v*10/1024)/10) + " KiB/s" ; else return v + " B/s" }, }
web.statistics.1.content.2.ds_graph_options.net_send.label=Upload bandwidth (bytes)
web.statistics.1.content.2.ds_graph_options.net_send.lines={ fill: true }
web.statistics.1.content.2.ds_graph_options.net_send.color="#FF7777"
web.statistics.1.content.2.ds_graph_options.net_received.label=Download bandwidth (bytes)
web.statistics.1.content.2.ds_graph_options.net_received.lines={ fill: true }
web.statistics.1.content.2.7ds_graph_options.net_received.color="#77FF77"

基本的には設定ファイルのヘッダ部以外でコメント行を非コメントに、非コメント行をコメントに入れ替え、 web.status.1.content.数字.name=network を web.status.1.content.数字.name=eth0にすれば良い筈。

rpimonitorを再起動

# service rpimonitor restart

RPi-Monitorを見る

ウェブブラウザでrpimonitorを開く。
http://192.168.6.16:8888

上の例では192.168.6.16はNanoPi NEO2のIPアドレスとする。

rpimonitor 1
ステータス画面。わかりやすいけどこんなに広い表示エリアを使って表示する程のことじゃない。一番下のネットワークの状態は送受信速度ではなく送受信した通信量。

rpimonitor 2
Statistics画面。下側の小さなグラフで表示した範囲をマウスで選択すると上側の大きなグラフにその範囲が表示されるというのは良い機能かも。
上の画像ではCPUの温度を表示させている。右寄りで温度が下がって6度台になっているのはNanoPi NEO2のヒートシンクに風を当てたから。風を当てる前も15度前後という低い温度だが、これは室温が4度という寒い部屋だから。

netdata

netdataは以前にFreeBSD用に書いたけど、これもNanoPi NEO2とarmbianの組み合わせで動く(パッケージが用意されている)。

netdataインストール

# apt-get update
# apt-cache search netdata  ←netdataを検索
netdata - real-time charts for system monitoring       ←該当3つが表示されるが、これを入れたい
netdata-data - real-time charts for system monitoring (Data)
netdata-dbgsym - Debug symbols for netdata
# apt-get install netdata   ←netdataインストール
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  fonts-font-awesome libjs-bootstrap libyaml-0-2 netdata-data python-yaml
Recommended packages:
  nodejs
The following NEW packages will be installed:
  fonts-font-awesome libjs-bootstrap libyaml-0-2 netdata netdata-data python-yaml
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,091 kB of archives.
After this operation, 7,808 kB of additional disk space will be used.
Do you want to continue? [Y/n] y              ←確認を求められたらyを押す
後略

設定ファイルの変更

/etc/netdata/netdata.conf
1
2
3
4
5
6
7
[global]
    run as user = netdata
    web files owner = root
    web files group = root
    # Netdata is not designed to be exposed to potentially hostile
    # networks.See https://github.com/firehol/netdata/issues/164
    bind socket to IP = *

bind socket to IP が初期値は127.0.0.1になっていて外部から閲覧できないので * にでも変えておく。他は特に変更不要かと。

netdataを起動する

# service netdata start

netdataを見る

ウェブブラウザでnetdataを開く。
http://192.168.6.16:19999

上の例では192.168.6.16はNanoPi NEO2のIPアドレスとする。

netdata 1
netdataはリアルタイム性がウリなのでグラフやメーターがガンガン動く、だけじゃなくてグラフの表示範囲を弄り倒せる。そのせいで特にモバイル環境で表示すると例えばスクロールさせようとしてうっかりグラフに触れるとグラフ操作になったりというウザさもある。

netdata 2
ブラウザ画面の縮小表示。初期設定状態では表示項目が多すぎる。似たようなのが繰り返し表示されるので自分が見たいのがどれか混乱する。

RPi-Monitor、netdata共に稼働させてるホストで情報収集してそのホストで表示させるタイプなので別の監視用ホストに情報を集約させるようにはできていない。(ただし、カスタムDashboardを作ってその中に別のホストの「情報を表示すること」は可能。)
でも、難しさが皆無なので手軽に入れられるし、どちらもWebUIなので見るのも簡単なのよね。

関連記事: