多功能 Linux 系统监控工具Glances功能介绍
导读
Glances 是一个系统监控工具,它把这些都联系在一起,并提供了更多的功能。我最喜欢的是,你可以在远程 Linux 服务器上运行 Glances 来监控本地系统的系统资源,也可以通过 Web 浏览器监控。
下面是它的外观。下面截图中的终端已经用 Pywal 工具美化过,可以根据壁纸自动改变颜色。
你也可以将它集成到像 Grafana 这样的工具中,在一个直观的仪表盘中监控统计数据。
它是用 Python 编写的,这意味着它的绝大多数功能都可以在大多数平台上使用。
Glances 的功能
Glances Data In Grafana Dashboard
让我们快速浏览一下 Glances 提供的主要功能:
可以监控系统上的 15 个之多的指标(包括 Docker 容器)。
灵活的使用模式:单机模式、客户端-服务器模式、通过 SSH 和 Web 模式。
可用于集成的各种 REST API 和 XML-RPC API。
支持将数据轻松导出到不同的服务和数据库。
高度的可配置性和适应不同的需求。
非常全面的文档。
在 Ubuntu 和其他 Linux 发行版上安装 Glances
Glances 在许多 Linux 发行版的官方软件库中都有。这意味着你可以使用你的发行版的软件包管理器来轻松安装它。
在基于 Debian/Ubuntu 的发行版上,你可以使用以下命令:
sudo apt install glances
你也可以使用 snap 包安装最新的 Glances:
sudo snap install glances
由于 Glances 是基于 Python 的,你也可以使用 PIP 在大多数 Linux 发行版上安装它。先安装 PIP,然后用它来安装 Glances:
sudo pip3 install glances
如果没有别的办法,你还可以使用 Glances 开发者提供的自动安装脚本。虽然我们不建议直接在你的系统上随便运行脚本,但这完全取决于你自己:
curl -L https://bit.ly/glances | /bin/bash
你可以从他们的文档中查看其他安装 Glances 的方法,甚至你还可以把它作为一个 Docker 容器来安装。
使用 Glances 监控本地系统上的 Linux 系统资源(独立模式)
你可以通过在终端上运行这个命令,轻松启动 Glances 来监控你的本地机器:
glances
你可以立即观察到,它将很多不同的信息整合在一个屏幕上。我喜欢它在顶部显示电脑的公共和私人 IP:
Glances 也是交互式的,这意味着你可以在它运行时使用命令与它互动。你可以按 s 将传感器显示在屏幕上;按 k 将 TCP 连接列表显示在屏幕上;按 1 将 CPU 统计扩展到显示单个线程。
你也可以使用方向键在进程列表中移动,并按不同的指标对表格进行排序。
你可以通过各种命令行选项来启动 Glances。此外,它还有很多交互式命令。你可以在他们的丰富的文档中找到完整的列表。
按 Ctrl+C 键退出 Glances。
使用 Glances 监控远程 Linux 系统(客户端-服务器模式)
要监控远程计算机,你可以在客户端-服务器模式下使用 Glances。你需要在两个系统上都安装 Glances。
在远程 Linux 系统上,使用 -s 选项在服务器模式下启动 Glances:
glances -s
在客户端系统中,使用下面的命令在客户端模式下启动 Glances 并连接到服务器:
glances -c server_ip_address
你也可以通过 SSH 进入任何一台电脑,然后启动 Glances,它可以完美地工作。更多关于客户端-服务器模式的信息请看这里。
使用 Glances 在 Web 浏览器中监控 Linux 系统资源(Web 模式)
Glances 也可以在 Web 模式下运行。这意味着你可以使用 Web 浏览器来访问 Glances。与之前的客户端-服务器模式不同,你不需要在客户端系统上安装 Glances。
要在 Web 模式下启动 Glances,请使用 -w 选项:
glances -w
请注意,即使在 Linux 服务器上,它也可能显示 “Glances Web User Interface started on http://0.0.0.0:61208”,而实际上它使用的是服务器的 IP 地址。
最主要的是它使用的是 61208 端口号,你可以用它来通过网络浏览器访问 Glances。只要在服务器的 IP 地址后面输入端口号,比如 http://123.123.123.123:61208。
你也可以在本地系统中使用 http://0.0.0.0:61208/ 或 https://localhost:61208/ 访问。
Web 模式也模仿终端的样子。网页版是根据响应式设计原则打造的,即使在手机上也很好看。
你可能想用密码来保护 Web 模式,这样只有授权的人才能使用它。默认的用户名是 glances。
root@localhost:~# glances -w --password Define the Glances webserver password (glances username): Password (confirm): Do you want to save the password? [Yes/No]: n Glances Web User Interface started on http://0.0.0.0:61208/
你可以在快速入门指南中找到关于配置密码的更多信息。
导出 Glances 数据到不同的服务
使用 Glances 最大的优势之一就是开箱即用,它支持将数据导出到各种数据库、服务,并无缝集成到各种数据管道中。
你可以在监控的同时用这个命令导出到 CSV:
glances --export csv --export-csv-file /tmp/glances.csv
/tmp/glances.csv 是文件的位置。数据以时间序列的形式整齐地填入。
你也可以导出到其它大型应用程序,如 Prometheus,以启用条件触发器和通知。
它可以直接插入到消息服务(如 RabbitMQ、MQTT)、流媒体平台(如 Kafka),并将时间序列数据导出到数据库(如 InfluxDB),并使用 Grafana 进行可视化。
你可以在这里查看服务和导出选项的整个列表。
使用 REST API 将 Glances 与其他服务进行整合
这是整个栈中我最喜欢的功能。Glances 不仅可以将各种指标汇集在一起,还可以通过 API 将它们暴露出来。
这个简单而强大的功能使得为任何特定的用例构建自定义应用程序、服务和中间件应用程序变得非常容易。
当你在 Web 模式下启动 Glances 时,REST API 服务器会自动启动。要在 API 服务器模式下启动它,你可以使用以下命令:
glances -w --disable-webui
REST API 的文档很全面,其响应也很容易与 Web 应用集成。这使得使用类似 Node-RED 这样的工具可以很容易地构建一个统一的仪表盘来监控多个服务器。
Glances 也提供了一个 XML-RPC 服务器,你可以在这里查看文档。
关于 Glances 的结束语
Glances 使用 psutil Python 库来访问不同的系统统计数据。早在 2017 年,我就曾使用相同的库构建了一个简单的 API 服务器来检索 CPU 的使用情况。我能够使用 Node-RED 构建的仪表盘监控一个集群中的所有树莓派。
Glances 可以为我节省一些时间,同时提供更多的功能,可惜我当时并不知道它。
在写这篇文章的时候,我确实尝试着在我的树莓派上安装 Glances,可惜所有的安装方法都出现了一些错误,失败了。当我成功后,我会更新文章,或者可能再写一篇文章,介绍在树莓派上安装的步骤。
我希望 Glances 能提供一种顶替 top 或 htop 等的方法。让我们希望在即将到来的版本中得到它。