Glances は、オープンソース システムのクロスプラットフォーム監視ツールです。 CPU、メモリ、ディスク、ネットワーク使用状況など、システムのさまざまな側面をリアルタイムで監視できます。また、実行中のプロセス、ログインしているユーザー、温度、電圧、ファン速度などの監視も可能です。また、コンテナの監視もサポートしています。 Docker、LXC などのさまざまなコンテナ管理システムをサポートしています。情報は読みやすいダッシュボードに表示され、Web インターフェイスまたはコマンド ライン インターフェイスを介してシステムのリモート監視にも使用できます。インストールと使用は簡単で、興味のある情報のみを表示するようにカスタマイズできます。
クライアント/サーバー モードでは、ターミナル、Web インターフェイス、または API (XML-RPC および RESTful) を介してリモート監視を実行できます。統計情報は、ファイルまたは外部の時間/値データベース、CSV、または STDOUT への直接出力にエクスポートすることもできます。
Glances は Python で書かれており、ライブラリを使用してシステムから情報を取得します。これは、開発者が新しいプラグインを追加したり、モジュールをエクスポートしたりできるオープン アーキテクチャに基づいています。
このオープンソース プロジェクトを改善するという私の目標の達成に協力していただけますか、次の方法で「ありがとう」と言ってください。
あらゆる貢献を大歓迎いたします。
python>=3.9
(それより低い Python バージョンには Glances 3.4.x を使用してください)psutil
(最新バージョンの方が優れています)defusedxml
(xmlrpc にモンキーパッチを適用するため)packaging
(バージョン比較用)orjson
(標準の json モジュールの最適化された代替)Python 2 ユーザー向けのメモ
Glances バージョン 4 以降は、Python 2 (および Python 3 < 3.9) をサポートしていません。 Python 2 のサポートが必要な場合は、Glances バージョン 3.4.x を使用してください。
オプションの依存関係:
batinfo
(バッテリー監視用)bernhard
(リーマンエクスポートモジュール用)cassandra-driver
(Cassandra エクスポート モジュール用)chevron
(アクション スクリプト機能用)docker
(コンテナー Docker 監視サポート用)elasticsearch
(Elastic Search エクスポート モジュール用)FastAPI
およびUvicorn
(Web サーバー モードの場合)graphitesender
(Graphite エクスポート モジュール用)hddtemp
(HDD 温度監視サポート用) [Linux のみ]influxdb
(InfluxDB バージョン 1 エクスポート モジュール用)influxdb-client
(InfluxDB バージョン 2 エクスポート モジュール用)jinja2
(テンプレート用、FastAPI によって内部で使用されます)kafka-python
(Kafka エクスポート モジュール用)netifaces
(IP プラグイン用)nvidia-ml-py
(GPU プラグイン用)pycouchdb
(CouchDB エクスポート モジュール用)pika
(RabbitMQ/ActiveMQ エクスポート モジュール用)podman
(Containers Podman 監視サポート用)potsdb
(OpenTSDB エクスポート モジュール用)prometheus_client
(Prometheus エクスポート モジュール用)pygal
(グラフエクスポートモジュール用)pymdstat
(RAID サポート用) [Linux のみ]pymongo
(MongoDB エクスポート モジュール用)pysnmp-lextudio
(SNMP サポート用)pySMART.smartx
(HDD Smart サポート用) [Linux のみ]pyzmq
(ZeroMQ エクスポート モジュール用)requests
(ポート、クラウド プラグイン、および RESTful エクスポート モジュール用)sparklines
(クイック プラグイン スパークライン オプション用)statsd
(StatsD エクスポート モジュール用)wifi
(wifi プラグイン用) [Linux のみ]zeroconf
(自動検出モード用) Glances をシステムにテスト/インストールするには、いくつかの方法があります。武器を選んでください!
Glances はPyPI
上にあります。 PyPI を使用すると、最新の安定バージョンを使用することになります。
Glances をインストールするには、 pip
コマンド ラインを使用するだけです。
警告: 最新の Linux オペレーティング システムでは、 pip
使用しようとすると、外部管理環境のエラー メッセージが表示される場合があります。この場合は、以下の PipX セクションに進んでください。
pip install --user glances
注: Glances の依存関係である psutil をインストールするには、Python ヘッダーが必要です。たとえば、Debian/Ubuntu では、最も簡単なのはapt install python3-psutil
です。あるいは、最初にpython-devパッケージと gcc (Fedora/CentOS/RHEL ではpython-devel ) をインストールする必要があります。 Windows の場合は、バイナリ インストール ファイルから psutil をインストールするだけです。
デフォルトでは、Glances は Web インターフェイスの依存関係なしでインストールされます。インストールするには、次のコマンドを使用します。
pip install --user 'glances[web]'
完全インストール (すべての機能を含む) の場合:
pip install --user 'glances[all]'
Glances を最新バージョンにアップグレードするには:
pip install --user --upgrade glances
現在の開発ブランチは、test.pypi.org パッケージ インデックスに公開されます。開発バージョン (不安定な可能性があります) をテストする場合は、次のように入力します。
pip install --user -i https://test.pypi.org/simple/ Glances
システムに PipX をインストールします (Ubuntu では apt install pipx)。
Glances をインストールします (すべての機能を含む):
pipx install 'glances[all]'
Glance スクリプトは ~/.local/bin フォルダーにインストールされます。
Glances Docker イメージが利用可能です。これを使用して、サーバーとすべてのコンテナを監視できます。
Glances コンテナを取得します。
docker pull nicolargo/glances:latest-full
次のタグが利用可能です。
Glances コンテナの最新バージョンをコンソール モードで実行します。
docker run --rm -e TZ="${TZ}" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host --network host -it nicolargo/glances:latest-full
デフォルトでは、/etc/glances/glances.conf ファイルが使用されます (docker-compose/glances.conf に基づく)。
さらに、独自のlances.confファイルを使用したい場合は、独自のDockerfileを作成できます。
FROM nicolargo/glances:latest
COPY glances.conf /root/.config/glances/glances.conf
CMD python -m glances -C /root/.config/glances/glances.conf $GLANCES_OPT
あるいは、docker run オプションで同じようなことを指定することもできます (glances 起動コマンドの GLANCES_OPT 環境変数設定パラメーターに注目してください)。
docker run -e TZ="${TZ}" -v $HOME/.config/glances/glances.conf:/glances.conf:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host -e GLANCES_OPT="-C /glances.conf" -it nicolargo/glances:latest-full
$HOME/.config/glances/glances.conf は、glances.conf ファイルを含むローカル ディレクトリです。
コンテナをWeb サーバー モードで実行します。
docker run -d --restart="always" -p 61208-61209:61208-61209 -e TZ="${TZ}" -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host nicolargo/glances:latest-full
オプションの完全なリストについては、Glances Docker ドキュメント ページを参照してください。
Glances は多くの Linux ディストリビューションで利用できるため、お気に入りのパッケージ マネージャーを使用してインストールできるはずです。この方法を使用する場合、Glances のオペレーティング システム パッケージが最新バージョンではない可能性があり、基本的なプラグインのみが有効になることに注意してください。
注: Debian パッケージ (および他のすべての Debian ベースのディストリビューション) には、Web インターフェイスで使用される JS 静的ファイルが含まれなくなりました ( issue2021
を参照)。 Glances インストールに追加する場合は、 issue2021comment
手順に従ってください。 Glances バージョン 4 以降では、静的ファイルへのパスを構成できます ( issue2612
参照)。
バイナリ パッケージをインストールするには:
# pkg install py39-glances
ポートから Glances をインストールするには:
# cd /usr/ports/sysutils/py-glances/
# make install clean
lancesautoinstall スクリプトを使用したくない場合は、次の手順に従ってください。
macOS ユーザーは、 Homebrew
またはMacPorts
使用して Glances をインストールできます。
$ brew install glances
$ sudo port install glances
Python for Windows (Python 3.4 以降は pip に同梱) をインストールし、次のコマンドを実行します。
$ pip install glances
root 化されたデバイスと Termux アプリケーション (Google Play ストアで入手可能) が必要です。
デバイスで Termux を起動し、次のように入力します。
$ apt update
$ apt upgrade
$ apt install clang python
$ pip install fastapi uvicorn jinja2
$ pip install glances
そして、Glances を開始します。
$ glances
Android デバイスをリモート監視するために、Glances をサーバー モード (-s または -w) で実行することもできます。
Glances をソースからインストールするには:
$ pip install https://github.com/nicolargo/glances/archive/vX.Y.tar.gz
注: psutil をインストールするには、Python ヘッダーが必要です。
インフラストラクチャを監視するために、素晴らしいChef
クックブックを入手できます: https://supermarket.chef.io/cookbooks/glances (Antoine Rouyer に感謝)
Puppet
を使用して Glances をインストールできます: https://github.com/rverchere/puppet-glances
Glances Ansible
ロールが利用可能です: https://galaxy.ansible.com/zaxos/glances-ansible-role/
スタンドアロン モードの場合は、次を実行するだけです。
$ glances
Web サーバー モードの場合は、次を実行します。
$ glances -w
お気に入りの Web ブラウザに URL http://<ip>:61208
を入力します。
クライアント/サーバー モードの場合は、次を実行します。
$ glances -s
サーバー側で次を実行します。
$ glances -c < ip >
クライアント 1 上で。
ネットワーク上で利用可能なすべての Glances サーバー、または構成ファイルで定義されているすべての Glances サーバーを検出して表示することもできます。
$ glances --browser
標準出力に生の統計を表示することもできます。
$ glances --stdout cpu.user,mem.used,load
cpu.user: 30.7
mem.used: 3278204928
load: {'cpucore': 4, 'min1': 0.21, 'min5': 0.4, 'min15': 0.27}
cpu.user: 3.4
mem.used: 3275251712
load: {'cpucore': 4, 'min1': 0.19, 'min5': 0.39, 'min15': 0.27}
...
または、stdout-csv オプションを使用して CSV 形式で保存することもできます。
$ glances --stdout-csv now,cpu.user,mem.used,load
now,cpu.user,mem.used,load.cpucore,load.min1,load.min5,load.min15
2018-12-08 22:04:20 CEST,7.3,5948149760,4,1.04,0.99,1.04
2018-12-08 22:04:23 CEST,5.4,5949136896,4,1.04,0.99,1.04
...
または、 stdout-json オプションのおかげで JSON 形式で (実際の JSON オブジェクトを出力するために、このモードでは属性はサポートされていません):
$ glances --stdout-json cpu,mem
cpu: {"total": 29.0, "user": 24.7, "nice": 0.0, "system": 3.8, "idle": 71.4, "iowait": 0.0, "irq": 0.0, "softirq": 0.0, "steal": 0.0, "guest": 0.0, "guest_nice": 0.0, "time_since_update": 1, "cpucore": 4, "ctx_switches": 0, "interrupts": 0, "soft_interrupts": 0, "syscalls": 0}
mem: {"total": 7837949952, "available": 2919079936, "percent": 62.8, "used": 4918870016, "free": 2919079936, "active": 2841214976, "inactive": 3340550144, "buffers": 546799616, "cached": 3068141568, "shared": 788156416}
...
そしてRTFM、いつも。
完全なドキュメントについては、readthedocs Web サイトをご覧ください。
ご質問がある場合は (RTFM 後!)、公式 Q&A フォーラムに投稿してください。
Glances は、 CSV
ファイル、 JSON
ファイル、 InfluxDB
、 Cassandra
、 CouchDB
、 OpenTSDB
、 Prometheus
、 StatsD
、 ElasticSearch
、 RabbitMQ/ActiveMQ
、 ZeroMQ
、 Kafka
、 Riemann
、 Graphite
およびRESTful
サーバーに統計をエクスポートできます。
Glances プロジェクトに貢献したい場合は、この Wiki ページをお読みください。
Glances 開発者専用のチャットもあります。
ニコラス・ヘニオン (@nicolargo) <[email protected]>
Glances は LGPL バージョン 3 ライセンスに基づいて配布されます。詳細については、 COPYING
参照してください。