Glances (Pythonのコマンドラインモニタリングツール)を入れてみる。


たまたまTwitterのTLで拾ったので、入れてみました。

理由は、pipyでのスクリーンショットが良かったから、です^^;

Install

CentOSではrpmが提供されているので、yumでインストールできます。(python-glance-2012.2.4-3.el6.noarch)

わたしの場合は、VagrantのCentOS6.5に追加してみました。(yumではなく、easy-installでも、pipでも簡単に入ります)

起動してみます

コマンドを打つだけです。

bash
% glances 

スクリーンショット

起動してしばらくすると、一括でリソース状況が描画されます。

ヘルプ画面。
デフォルトでいろんな情報を一画面に表示なのですが、オプションで絞りこんだり出来るようです。

クライアント&サーバモードで起動

ドキュメントを参照すると、何やらクライアント&サーバモードがあるようです。
表現を確認すると、

  • リソース情報を提供する側:サーバ
  • リソース状況を取得する側:クライアント

となります。
また、どちらの環境にも、Glancesをインストールしておくのが前提になります。

今回は、VagrantでのCentOS側をサーバ、MacOS側をクライアントにしてみました。

bash
[vagrant@centos-tare ~]$ glances -s # vagrant側 / IPを192.168.33.11に割り当て中。
% glances -c @192.168.33.11 # MacOS側

こんな感じで、ポート:61209を通して、クライアント側から情報が取得できます。

とくに負荷もかかっていない状況だと、グリーンで表示されます。

忙しく働いている時は?

なにか負荷がかかっている場合は、その状況に応じて、ターミナル上に色が付いて視覚化されるようです。

負荷かけるにしてもあまり良い案が無かったのですが、bonnie++ というディスクIOのベンチマークツールでVagrant側のOSに書き込みの負荷をかけてみることにしました。
#性能測定が目的ではないです(^^;

やってみると、bonnie++のプロセスがブンブン回って、CPUの値が上がっていき、緑 -> ピンク -> 赤に変わりました。

APIがあります

さて、サーバモードでlistenしている、に加えて、XML-RPCでのAPIも備えている模様。
pythonであればjson形式でデータが取れるようです。

ListenするPortは、同じく61209です。

MacOS側クライアントのプロセスを立ち上げながら、tcpdumpを取ってみると、こんな感じで情報が覗き見れます。
(Aオプションで文字列を拾ってみます)

bash
% sudo tcpdump -i vboxnet1 -A

# 中略
…
"host": {"linux_distro": "CentOS 6.5", "platform": "64bit", "os_name": "Linux", "hostname": "centos-tare", "os_version": "2.6.32-431.el6.x86_64"}, 

シンプルですが、CSVやHTMLに書き出すオプションもありました。
ソースをちゃんと読んで勉強するのも良いかと思いました。

ということで、簡単ですが、Glancesについての記事でした。