一个跨平台的基于curses的监控工具
项目描述
概括
Glances是一个跨平台的监控工具,旨在通过 curses 或基于 Web 的界面呈现大量的监控信息。信息会根据用户界面的大小动态调整。
它也可以在客户端/服务器模式下工作。远程监控可以通过终端、Web 界面或 API(XML-RPC 和 RESTful)来完成。统计数据也可以导出到文件或外部时间/值数据库。
Glances 是用 Python 编写的,并使用库从您的系统中获取信息。它基于开放式架构,开发人员可以在其中添加新插件或导出模块。
要求
python>=2.7或python>=3.4
psutil>=5.3.0(最新版本更好)
defusedxml(为了猴子补丁 xmlrpc)
未来(用于 Python 2 支持)
Python 2.6 用户注意事项
Glances 不再支持 Python 2.6。请升级到最低 Python 版本 2.7/3.4+ 或降级到 Glances 2.6.2(支持 Python 2.6 的最新版本)。
Python 2.x 用户的弃用警告说明
Glances 4.0 版将不再支持 Python 2.x。
可选依赖项:
bernhard(用于 Riemann 导出模块)
瓶子(用于 Web 服务器模式)
cassandra-driver(用于 Cassandra 导出模块)
chevron(用于动作脚本功能)
couchdb(用于 CouchDB 导出模块)
docker(用于 Docker 监控支持)[仅限 Linux/macOS]
elasticsearch(用于 Elastic Search 导出模块)
石墨发送器(用于石墨导出模块)
hddtemp(用于 HDD 温度监控支持)[仅限 Linux]
influxdb(用于 InfluxDB 版本 1 导出模块)
influxdb-client (用于 InfluxDB 版本 2 导出模块)[仅适用于 Python >= 3.6]
kafka-python(用于 Kafka 导出模块)
netifaces(用于 IP 插件)
py3nvml(用于 GPU 插件)[仅适用于 Python 3]
pika(用于 RabbitMQ/ActiveMQ 导出模块)
potsdb(用于 OpenTSDB 导出模块)
prometheus_client(用于 Prometheus 导出模块)
py-cpuinfo(用于 Quicklook CPU 信息模块)
pygal(用于图形导出模块)
pymdstat(用于 RAID 支持)[仅限 Linux]
pysnmp(用于 SNMP 支持)
pySMART.smartx(用于 HDD Smart 支持)[仅限 Linux]
pyzmq(用于 ZeroMQ 导出模块)
请求(用于端口、云插件和 RESTful 导出模块)
scandir(用于文件夹插件)[仅适用于 Python < 3.5]
迷你图(用于快速插件迷你图选项)
statsd(用于 StatsD 导出模块)
wifi(用于 wifi 插件)[仅限 Linux]
zeroconf(用于自动发现模式)
安装
有几种方法可以在您的系统上测试/安装 Glances。选择你的武器!
PyPI:标准方式
Glances 在PyPI上。通过使用 PyPI,您将使用最新的稳定版本。
要安装 Glances,只需使用pip:
pip install --user glances
注意:安装Glances依赖项 psutil需要 Python 头文件。例如,在 Debian/Ubuntu 上,您需要先安装python-dev软件包(在 Fedora/CentOS/RHEL 上为 python-devel )。对于 Windows,只需从二进制安装文件安装 psutil。
注2(对于Wifi插件):如果你想使用Wifi插件,你需要在你的系统上安装无线工具包。
默认情况下,安装 Glances 时没有 Web 界面依赖项。要安装它,请使用以下命令:
pip install --user 'glances[web]'
对于完整安装(具有所有功能:
pip install --user 'glances[action,browser,cloud,cpuinfo,docker,export,folders,gpu,graph,ip,raid,snmp,web,wifi]'
要将 Glances 升级到最新版本:
pip install --user --upgrade glances
当前开发分支发布到 test.pypi.org 包索引。如果要测试开发版本(可能不稳定),请输入:
pip install --user -i https://test.pypi.org/simple/ Glances
Glances 自动安装脚本:简单的方法
要安装依赖项和最新的 Glances 生产就绪版本(又名master分支),只需输入以下命令行:
curl -L https://bit.ly/glances | /bin/bash
或者
wget -O- https://bit.ly/glances | /bin/bash
注意:这仅在某些 GNU/Linux 发行版和 Mac OS X 上受支持。如果您想支持其他发行版,请贡献给glancesautoinstall。
Docker:有趣的方式
Glances 容器可用。您可以使用它来监控您的服务器和所有其他容器!
获取 Glances 容器:
docker pull nicolargo/glances:<version>
Docker Hub 存储库上的可用版本:
nicolargo/glances:latest一个基本的 Debian Glances 镜像版本,具有最少的依赖
nicolargo/glances:alpine-latest用于基本的 Alpine Glances 映像版本,具有最小的依赖关系
nicolargo/glances:latest-full用于包含所有依赖项的完整 Debian Glances 映像版本
nicolargo/glances:alpine-latest-full用于包含所有依赖项的完整 Alpine Glances 映像版本
您还可以通过将 latest 替换为 3.2.6.4 来指定版本(例如)。
在控制台模式下运行最新版本的 Glances 容器:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host --network host -it nicolargo/glances:latest-full
此外,如果您想使用自己的glances.conf 文件,您可以创建自己的Dockerfile:
FROM nicolargo/glances:latest
COPY glances.conf /etc/glances.conf
CMD python -m glances -C /etc/glances.conf $GLANCES_OPT
或者,您可以使用 docker run 选项指定相同的内容(注意GLANCES_OPT环境变量设置参数的glances启动命令):
docker run -v `pwd`/glances.conf:/etc/glances.conf -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host -e GLANCES_OPT="-C /etc/glances.conf" -it nicolargo/glances:latest-full
其中 `pwd`/glances.conf 是包含您的glances.conf 文件的本地目录。
以Web 服务器模式运行容器:
docker run -d --restart="always" -p 61208-61209:61208-61209 -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host nicolargo/glances:latest-full
GNU/Linux
Glances在许多 Linux 发行版上都可用,因此您应该能够使用自己喜欢的包管理器来安装它。请注意,当您使用此方法时,Glances的操作系统包 可能不是最新版本。
注意:Debian 软件包(以及所有其他基于 Debian 的发行版)不再包含 Web 界面使用的 JS 静态文件(参见issue2021)。
自由BSD
要安装二进制包:
# pkg install py38-glances
从端口安装 Glances:
# cd /usr/ports/sysutils/py-glances/
# make install clean
苹果系统
如果您不想使用glancesautoinstall 脚本,请遵循此过程。
macOS 用户可以使用Homebrew或MacPorts安装 Glances 。
家酿
$ brew install glances
MacPorts
$ sudo port install glances
视窗
安装适用于 Windows 的Python(Python 2.7.9+ 和 3.4+ 附带 pip),然后运行以下命令:
$ pip install glances
安卓
您需要有根设备和Termux应用程序(可在 Google Play 商店中获得)。
在您的设备上启动 Termux 并输入:
$ apt update
$ apt upgrade
$ apt install clang python
$ pip install bottle
$ pip install glances
并开始 Glances:
$ glances
您还可以在服务器模式(-s 或 -w)下运行 Glances,以远程监控您的 Android 设备。
资源
从源代码安装 Glances:
$ wget https://github.com/nicolargo/glances/archive/vX.Y.tar.gz -O - | tar xz
$ cd glances-*
# python setup.py install
注意:安装 psutil 需要 Python 头文件。
厨师
一个很棒的厨师食谱可用于监控您的基础设施: https : //supermarket.chef.io/cookbooks/glances(感谢 Antoine Rouyer)
木偶
您可以使用Puppet安装 Glances :https ://github.com/rverchere/puppet-glances
Ansible
Glances Ansible角色可用:https ://galaxy.ansible.com/zaxos/glances-ansible-role/
用法
对于独立模式,只需运行:
$ glances
对于 Web 服务器模式,运行:
$ glances -w
并在您喜欢的 Web 浏览器中输入 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}
...
或使用 CSV 格式,这要归功于 stdout-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
...
或 JSON 格式,这要归功于 stdout-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 开发人员的聊天:
捐款
如果你喜欢这个开源项目,你可以成为赞助商。
请参阅赞助商页面(提供一次性或每月级别)。
执照
Glances 在 LGPL 版本 3 许可下分发。有关详细信息,请参阅复制。
社交网络