サーバーやPCの状態をリアルタイムで把握したい場合にプロセスやCPUリソースだけでなく、ネットワークの送受信やディスクの読み書き、さらにはdockerのコンテナのリソース情報を一画面で確認できるオープンソースのシステム監視ツール「Glances」が公開されています。

nicolargo/glances: Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.

https://github.com/nicolargo/glances

◆インストール方法

今回はAlmaLinuxのサーバーにインストールします。ユーザーディレクトリに仮想環境を作成し、アクティベート後pipでインストールします。


cd ~/
python3 -m venv ~/.venv
source ~/.venv/bin/activate
pip install glances


glancesコマンドを実行。


glances


topで得られる情報に加え、ディスクの使用状況やネットワークの送受信、CPUの温度などがリアルタイムで更新されます。



プラグインも提供されており、すべてのプラグインを有効にするため「[all]」オプションを付けてインストールコマンドを実行します。


pip install glances[all]


再度glancesコマンドを実行。


glances


プラグインが追加されたことで、Dockerのコンテナの情報が取得できるようになりました。



◆2種類のサーバーモードで監視

Glancesには起動オプションにより2種類のサーバーモードが使えます。「-w」オプションを付けてWebサーバーとして起動します。


glances -w


ブラウザで「http://【IPアドレス】:61208」にアクセスすると、指定したIPアドレスのサーバーの状況が表示されました。



「-s」オプションを付けると、別のマシンのコンソールから監視できるサーバーモードで起動します。


glances -s


別のマシンにもGlancesをインストールし、「-c 【IPアドレス】」オプションを付けて起動すると…


glances -c 【IPアドレス】


指定したIPアドレスのサーバーの状況を表示することができました。



◆ログとして出力・エクスポート

ログとして出力することも可能です。CSV形式で指定して出力するコマンドは以下の通り。


glances --stdout-csv now,cpu.user,mem.used,load


実行すると2秒おきにログが出力されました。



CSV・JSON形式のファイル出力のほか、InfluxDataやElasticsearch・PostgreSQL/TimeScale・Apache Cassandra・Apache CouchDB・OpenTSDB・Prometheus・statsd・Riemann・Graphiteといったデータベース、RabbitMQ/ActiveMQ・NATS・ZeroMQ・Apache KafkaなどのメッセージブローカーへのエクスポートやRESTful APIを通じた連携にも対応しています。

◆簡易表示

「--fetch」オプションを付けると、実行したタイミングの数値を簡易表示で取得できます。


glances --fetch


絵文字やグラフ表示を使った簡易ながら視認性の高い形式で表示されました。



GlancesはMITライセンスのもと継続的に更新が続けられています。個人のサーバー管理から本番環境の運用監視まで幅広く活用できます。