Skip to main content

一个跨平台的基于curses的监控工具

项目描述

https://img.shields.io/pypi/v/glances.svg Github 明星 码头工人拉 Pypi 下载 Linux 测试(GitHub 操作) 贡献者 代码质量 赞助商 @nicolargo

概括

Glances是一个跨平台的监控工具,旨在通过 curses 或基于 Web 的界面呈现大量的监控信息。信息会根据用户界面的大小动态调整。

https://raw.githubusercontent.com/nicolargo/glances/develop/docs/_static/glances-summary.png

它也可以在客户端/服务器模式下工作。远程监控可以通过终端、Web 界面或 API(XML-RPC 和 RESTful)来完成。统计数据也可以导出到文件或外部时间/值数据库。

https://raw.githubusercontent.com/nicolargo/glances/develop/docs/_static/glances-responsive-webdesign.png

Glances 是用 Python 编写的,并使用库从您的系统中获取信息。它基于开放式架构,开发人员可以在其中添加新插件或导出模块。

社交网络

https://raw.githubusercontent.com/nicolargo/glances/develop/docs/_static/twitter-icon.png https://raw.githubusercontent.com/nicolargo/glances/develop/docs/_static/reddit.png

要求

  • python>=2.7python>=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 用户可以使用HomebrewMacPorts安装 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文件、InfluxDBCassandraCouchDBOpenTSDBPrometheusStatsDElasticSearchRabbitMQ/ActiveMQZeroMQKafkaRiemannGraphiteRESTful服务器。

如何贡献?

如果您想为 Glances 项目做出贡献,请阅读此wiki页面。

还有一个专门针对 Glances 开发人员的聊天:

https://badges.gitter.im/Join%20Chat.svg

捐款

如果你喜欢这个开源项目,你可以成为赞助商。

请参阅赞助商页面(提供一次性或每月级别)。

作者

Nicolas Hennion (@nicolargo) < nicolas @nicolargo com >

https://img.shields.io/twitter/url/https/twitter.com/cloudposse.svg?style=social&label=Follow%20%40nicolargo

执照

Glances 在 LGPL 版本 3 许可下分发。有关详细信息,请参阅复制。

项目详情