netdataでシステム情報をリアルタイムにグラフ表示

netdata

CactiとかObserviumとかSNMPで収集したデータを5分とか15分単位で表示するツールは多いけどリアルタイムで表示する出来の良いツールはそれほど多くないかなと思っていたらnetdataというのが簡単で綺麗で良さげ。

インストール

FreeBSDの場合はアホみたいに簡単。

portsなら
# cd /usr/ports/net-mgmt/netdata
# make install
pkgなら
# pkg install met-mgmt/netdata

/etc/rc.confに追記(1行)
netdata_enable="YES"

設定ファイルは/usr/local/etc/netdataにある。
とりあえず動かすだけなら以下。
/usr/local/etc/netdata/netdata.conf (変更)
1
2
#       bind to = 127.0.0.1
        bind to = *

デスクトップ環境があるホストでnetdataを動かしてそのホストのブラウザで見るのであれば変更は要らない。


netdataがウェブサーバ機能を持っているのでApacheやNginxなどのウェブサーバ側の設定も不要。
ただし、ApacheやNginxをプロクシとして使うのでなければbind toを変更して127.0.0.1以外から閲覧できるようにしてやる必要がある。
ApacheやNginxなどをプロクシとして使うのでなく直接外部からアクセスするのであれば、ポート19999(初期値)を使用するのでファイアウォールでポート19999を開ける。

起動

# service netdata start

表示

ブラウザのURL入力欄にnetdataを動かしているホスト名・IPアドレスとポート19999を指定。

http://netdata.example.com:19999/  ホスト名指定
http://192.168.4.120:19999/  IPアドレス指定
http://localhost:19999/   ローカルホストの場合
など。

以下の画像は「がとらぼ」の中の人の家の中のLANとLANをつなぐルーターで殆どお仕事をしていないマシンのもの。

netdataでリアルタイムグラフ表示 1
最初に表示される画面。全てではないがグラフは1秒毎に更新される。なかなか良さげ。

netdataでリアルタイムグラフ表示 2
ネットワークはIPv4だけでなくIPv6も表示される(上の画像はIPv4のTCPだけ)。

netdataでリアルタイムグラフ表示 3
ネットワークインターフェース単位のグラフもある。

netdataでリアルタイムグラフ表示 4
アプリケーションによる使用内訳も表示できる。上の画像は使用CPU時間の各アプリケーションの内訳グラフ。
上の画像はほとんどphp(実質netdata)しか仕事をしていないのでphpの青に染まってる。

netdataでリアルタイムグラフ表示 5
メモリやプロセスも使用量の中で各アプリケーションの占める量をグラフ表示できる。

netdataでリアルタイムグラフ表示 6
レスポンシブ対応なのでスマートフォンなどで見ることもできる。画像はIPv4,IPv6のネットワークトラフィック。

netdataでリアルタイムグラフ表示 7
スマートフォンで見た使用CPU時間の各アプリケーションの内訳グラフ。

上の画像にはない項目多数でFreeBSDのpkg,portでインストールした場合は設定ファイル初期値でほぼ全て値が入る。
なお、画像の内4つはPCのブラウザの幅を狭めているのでサイドバーが表示されていない。
グラフをスクロールしたり操作できるのは良いが、スマートフォンで画面をスクロールしようとしてグラフにタッチしてしまうとイラッとすることに・・

関連記事: