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
(用于容器 Podman 监控支持)potsdb
(用于 OpenTSDB 导出模块)prometheus_client
(用于 Prometheus 导出模块)pygal
(用于图形导出模块)pymdstat
(用于 RAID 支持)[仅限 Linux]pymongo
(用于 MongoDB 导出模块)pysnmp-lextudio
(用于 SNMP 支持)pySMART.smartx
(用于 HDD 智能支持)[仅限 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
注意:安装 psutil(Glances 依赖项)需要 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 上安装 pipx)。
安装 Glances(具有所有功能):
pipx install 'glances[all]'
Glaces 脚本将安装在 ~/.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)。
此外,如果您想使用自己的glances.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 选项指定相同的内容(请注意 Glaces 启动命令的 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 是包含您的 Glaces.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
如果您不想使用 Glacesautoinstall 脚本,请按照此过程操作。
macOS 用户可以使用Homebrew
或MacPorts
安装 Glances。
$ brew install glances
$ sudo port install glances
安装适用于 Windows 的 Python(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
您还可以在服务器模式(-s 或 -w)下运行 Glances,以便远程监控您的 Android 设备。
要从源安装 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
并在您喜欢的网络浏览器中输入 URL http://<ip>:61208
。
对于客户端/服务器模式,运行:
$ glances -s
在服务器端并运行:
$ glances -c < ip >
在客户端一上。
您还可以检测并显示网络上可用或配置文件中定义的所有 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 网站。
如果您有任何问题(RTFM 之后!),请在官方问答论坛上发布。
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
。