26K star!开源跨平台系统监控工具
在日常工作中经常需要登录服务器检查主机状态,如果只用默认的Top来查看会显得有些不足。
今天我们分享一个开源项目,它是跨平台的系统监控工具,可以基于Web展示系统状态,它就是:Glances
Glances 是什么
Glances是一款开源的跨平台监控工具, Glances提供实时监控能力,覆盖了各种系统参数,包括CPU使用率、内存消耗、磁盘活动和网络利用率。用户可以查看运行中的进程、已登录用户、硬件指标(如温度、电压和风扇转速),确保对系统性能有全面的了解。目前支持GNU/Linux、BSD、Mac OS 和 Windows 操作系统。
Glances的一大亮点是其支持容器监控功能,使其能够监视由Docker和LXC等系统管理的多个容器。该工具的仪表板提供用户友好的界面,方便用户一目了然地进行系统分析,同时还支持通过Web界面或命令行界面进行远程监控。
安装Glances
最新版本的 Glances (4.0.4)要求 Python >= 3.8。如果版本无误,运行以下命令安装:
# 最小化安装
$ pip install --user glances
# 完整安装
$ pip install --user 'glances[all]'
使用 Glances
可以看到,Glances 罗列的信息非常多。其中包括了常规的 CPU、内存、负载信息,也涵盖了网络读写速率、TCP 连接数、磁盘使用情况等等。不过 Glances 的功能可不止于此,让我们看看它还有什么玄妙吧。
交互性
Glances 在交互方面做的非常好。比如我要查询内存用的最多的进程,只需移动光标至 MEM% 指标:
接着按下快捷键 e 将其固定住,就可以持续观察该进程。
由于 Glances 涵盖的内容比较多,我们也可以通过快捷键来打开/关闭这些信息。
运行模式
与其它监控工具不同,Glances 还支持 C/S 模式 与 Web Server 模式。
先说说 C/S 模式的用法。在服务端运行以下命令:
$ glances -s
接着在客户端运行以下命令即可:
$ glances -c <server-ip>
Web Server 模式则更简单。只需运行以下命令:
$ glances -w
浏览器访问 http://:61208 进入监控界面。
API
此外,Glances 还提供了一系列 API,可以和 InfluxDB、Grafana 这些开源软件配合使用。
运行以下命令(仅放开 API):
$ glances -w --disable-webui
调用 API 查看系统负载:
$ curl <http://localhost:61208/api/4/load>
{"min1":0.13,"min5":0.08,"min15":0.08,"cpucore":4}
注意:/api/4/load 中的 4 对应 Glances 的大版本。如果版本不对,则调用接口会提示 {"detail":"Not Found"}。
Glances 的 API 还是比较丰富的,更多用法可以查阅官方文档。
功能特点
- 1.实时监控: Glances支持实时监控系统各方面的性能指标,如CPU利用率、内存消耗、磁盘活动和网络使用情况。
- 2.全面信息: 用户可以查看运行中的进程、已登录用户以及硬件信息(如温度、电压和风扇转速)等细节。
- 3.容器监控: 支持监控容器化工作负载,适配多种容器管理系统,如Docker和LXC。
- 4.易于安装和使用: Glances易于安装,并且用户可以根据自身需求定制仪表板,展示感兴趣的信息。
- 5.远程监控: 支持通过终端、Web界面或API进行远程监控,提供方便的监控解决方案。
- 6.可扩展性: 由Python编写,采用开放架构,开发者可以添加新插件或导出模块,扩展Glances的功能。
- 7.数据导出: 支持将统计信息导出至文件、外部数据库、CSV文件或STDOUT,方便数据备份和分析。
总结
总的来说,Glances 完全可以作为 top 的上位替代了,尤其是它支持docker的能力,极大的补足了top的不足。同时它优秀的交互、独特的模式以及丰富的 API 都让 Glances 更为灵活。此外,Glances 内置了很多插件,除了常规的信息,还支持监控 Wi-Fi、主板、CPU 的工作电压、风扇转速、温度等数据。
项目信息
- 项目名称: Glances
- GitHub 链接:github.com/nicolargo/g…
- Star 数:26K
转载自:https://juejin.cn/post/7385784332445696011