2020 5/8 説明追加
Netdata は、システムやアプリケーションのパフォーマンスをリアルタイムで監視する監視エージェントである。Netdata を使うと、非常にインタラクティブな Web ダッシュボードを使用して、実行中のシステム (Web サーバ、データベース、アプリケーションを含む) で発生しているすべての事象をリアルタイムで把握する事が出来る。
非常に効率的なデータベースは、数日、数週間、数ヶ月の長期的な履歴メトリクスを、すべて1秒単位の粒度で保存する。この長期ストレージを自律的に実行したり、Netdata を既存のモニタリングツールチェーン(Prometheus、Graphite、OpenTSDB、Kafka、Grafana など)と統合したりすることができる。Netdata は高速かつ効率的で、すべてのシステム(物理サーバ、仮想サーバ、コンテナ、IoT デバイス)で永続的に動作するように設計されており、コア機能を中断することはない。フリーのオープンソース・ソフトウェアで、現在はLinux、FreeBSD、macOSのほか、KubernetesやDockerなどの派生システムで動作する。v1.12から、Netdataはデフォルトで匿名の利用情報を収集し、Google Analyticsに送信する。これらの統計情報は、バグの発見や新機能の優先順位付けのためにのみ利用される。
"Once you use it on your systems, there is no going back! You've been warned..."
(Githubより)
ABOUT NETDATA
https://www.netdata.cloud/about/
インストール
ここではdockerイメージを使う
#dockerhub(link)
docker pull netdata/netdata
実行方法
dockerイメージを実行する(*1)。
#常駐させる
docker run -d --name=netdata \
-p 19999:19999 \
-v /etc/passwd:/host/etc/passwd:ro \
-v /etc/group:/host/etc/group:ro \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
netdata/netdata
#from source(指示に従ってインストールする。linux対象)
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
ローカルマシンで実行しているなら、localhostのポート番号19999、つまりhttp://localhost:19999/ にアクセスする。
様々なリソースを監視できる。
右端にメニューが表示されているが、監視対象は非常に多いため、環境によっては何十ページ分も下にスクロールされる。
グラフ上にカーソルを合わせると、その時間における他のリソースの使用率が上の円グラフに表示される。=> 過去のxxxというタイミングでどんな負荷がかかっていたか素早く確認できる。
右端のボタンで時間軸の縮小、拡大、移動が可能。▶︎で初期状態。
設定を変えずとも、24hまで縮小できる。これはmac miniのCPU利用率の1日の推移。
タッチパネルなら指で時間軸をスクロールできる。まさに監視ツールといったところ。
上のメニューのAlarmをクリックすると、異常時や高負荷時の警告ログを出したり、アラームを出すことが可能。この辺りは完全にサーバー用途。
引用
https://github.com/netdata/netdata
参考
*1
ホストを監視するためにコンテナ内でエージェントを実行すると、その機能が制限されることがある。これを回避すルため、Dockerコンテナに特別なマウントを提供することで、Agentが/sysや/procフォルダ、さらには/etc/groupやシャドウファイルのようなホストOSの情報を可視化できるようにする。詳細はdocumentを読んで下さい(link)。
補足
ctop、vtop、gtop、glancesなども簡単に導入できます。私はmacにglancesを入れています。
#anaconda (link)
conda install -c conda-forge glances -y
#pipにも対応
pip install glances