Linux 系统监控大师:Glances 工具详解助力自动化

看图猜诗,你有任何想法都可以在评论区留言哦~
封面图


摘要
Glances 是一款基于 Python 开发的跨平台系统监控工具,集成了 CPU、内存、磁盘、网络、进程等核心指标的实时监控能力,并支持命令行、Web界面、客户端-服务器模式等多种使用场景。其轻量级、高可定制化及丰富的扩展功能(如数据导出、远程监控、API调用)使其成为运维人员实现自定义监控自动化的关键。本文将结合实践场景,从安装配置到常用功能、生产案例,全面解析 Glances 的核心应用。


文章目录

    • 一、基础说明
      • 1.1 Glances 核心功能
      • 1.2 与同类工具对比(htop、top)
    • 二、安装与配置
      • 2.1 安装方法
      • 2.2 依赖项管理
    • 三、使用技巧
      • 3.1 基础监控与交互操作
      • 3.2 Web 界面监控
      • 3.3 数据导出与集成
    • 四、生产实际案例
      • 4.1 多服务器集群监控
      • 4.2 容器化环境监控
    • 五、常见问题处理
      • 5.1 安装依赖缺失
      • 5.2 Web 界面无法访问
      • 5.3 客户端连接超时


一、基础说明

1.1 Glances 核心功能

  • 实时监控:动态展示 CPU、内存、磁盘 I/O、网络流量、进程资源占用等指标。
  • 多模式支持:单机模式、客户端-服务器模式、Web 界面模式。
  • 数据导出:支持 CSV、JSON、InfluxDB、Prometheus 等格式导出。
  • 交互式操作:通过快捷键对进程排序、筛选、显示/隐藏模块。
  • 跨平台兼容:支持 Linux、Windows、macOS 及 Docker 容器环境。

1.2 与同类工具对比(htop、top)

功能/工具Glanceshtoptop
界面交互动态自适应终端尺寸固定分栏基础分栏
监控维度15+ 项系统指标CPU、内存、进程CPU、内存、进程
远程监控支持客户端-服务器不支持不支持
数据导出CSV/HTML/数据库
扩展性支持插件与 API有限

优势总结:Glances 在功能集成性、远程协作及数据扩展性上显著优于传统工具,尤其适合多服务器集群监控场景。


二、安装与配置

2.1 安装方法

Debian/Ubuntu

# 通过 apt 安装
sudo apt install glances -y# 通过 pipx 安装(推荐)
pipx install glances[all]  # 安装全部扩展功能

CentOS/RHEL

# 启用 EPEL 仓库后安装
sudo yum install -y epel-release && sudo yum install glances -y

Docker 部署

# 拉取镜像并运行
docker pull nicolargo/glances:latest-full
docker run -d -it --pid host --network host nicolargo/glances

Windows 系统

# 通过 pip 安装
pip install glances

2.2 依赖项管理

  • 核心依赖psutil(系统信息采集)、defusedxml(XML 解析)。
  • 可选依赖bottle(Web 界面)、influxdb(数据导出)。

三、使用技巧

3.1 基础监控与交互操作

查看版本

linux01@linux01:~$ glances -V
Glances version:	4.3.1
Glances API version:	4
PsUtil version:		7.0.0
Log file:		/home/linux01/.local/share/glances/glances.log
linux01@linux01:~$ 

启动 Glances

glances  # 默认刷新间隔2秒
glances -t 5  # 设置刷新间隔为5秒

界面展示
页面展示
界面说明

  • 顶部:系统负载、CPU 使用率、内存/交换分区。
  • 中部:网络流量、进程列表(按 CPU 或内存排序)。
  • 底部:磁盘 I/O、传感器温度(需安装 lm-sensors)。

快捷键操作

快捷键功能
c按 CPU 使用率排序进程
m按内存使用率排序进程
d显示/隐藏磁盘 I/O 统计
n显示/隐藏网络统计
w删除警告日志
k删除进程
h显示帮助菜单

3.2 Web 界面监控

启动 Web 服务器

glances -w  # 默认端口 61208

访问 http://<服务器IP>:61208 即可查看实时监控页面(支持响应式布局)。

进阶配置

# 设置用户密码保护
glances -w --username --password# 后台启动
glances -w &

3.3 数据导出与集成

导出为 CSV

glances --export csv --export-csv-file /path/to/glances.csv

导出为 JSON

glances --export json --export-json-file /path/to/glances.json

集成 Prometheus

# 以 Prometheus 支持的方式启动 Glances
glances --export prometheus# 默认仅支持本地访问,端口 9091,验证
linux01@linux01:~$ curl http://127.0.0.1:9091/metrics
# HELP python_gc_objects_collected_total Objects collected during gc
# TYPE python_gc_objects_collected_total counter
python_gc_objects_collected_total{generation="0"} 1092.0
python_gc_objects_collected_total{generation="1"} 164.0
python_gc_objects_collected_total{generation="2"} 10.0
# HELP python_gc_objects_uncollectable_total Uncollectable objects found during GC
# TYPE python_gc_objects_uncollectable_total counter# 你可以配置 Prometheus 来连接 Glances

四、生产实际案例

4.1 多服务器集群监控

场景:监控 10 台 Linux 服务器的资源使用情况。

解决方案

  1. 在其中一台服务器启动 Glances 服务端:
    glances -s -B 0.0.0.0
    
  2. 其他服务器作为客户端连接:
    glances -c <主服务器IP>
    
  3. 在主服务器通过 Web 界面或客户端汇总查看所有节点状态。

4.2 容器化环境监控

场景:监控 Docker 容器的 CPU 和内存占用。

解决方案

  1. 使用 Docker 运行 Glances:
    docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host nicolargo/glances
    
  2. 启用 Docker 监控模块:
    glances --enable-docker
    

五、常见问题处理

5.1 安装依赖缺失

报错ModuleNotFoundError: No module named 'psutil'
解决:安装缺失的 Python 库:

pip install psutil defusedxml

5.2 Web 界面无法访问

可能原因:防火墙未开放端口或服务未绑定正确 IP,安装的不是 glances[all] 版本。
排查

netstat -tuln | grep 61208  # 检查端口监听状态
glances -w -B 0.0.0.0      # 强制绑定所有IP

5.3 客户端连接超时

可能原因:网络隔离或服务端未正确启动。
排查

telnet <服务器IP> 61209     # 测试端口连通性
glances -s --debug         # 启用调试模式

结语:Glances 凭借其高度集成性、跨平台支持及灵活的扩展能力,已成为运维监控领域的标杆工具。通过本文的详解,你已经掌握其核心功能。进一步学习可参考 Glances 官方文档。如果你觉得这篇文章对你有帮助,不妨点个赞👍,或者分享给你的朋友们吧!你的支持是我持续创作的最大动力!

资源推荐

  • Glances GitHub 仓库
  • Grafana 仪表盘模板库

在这里插入图片描述

  • 上一篇:Linux 系统监控进阶:htop 命令详解与高效运维

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/77378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 3.4.5 运行环境需求

&#x1f4dd; Spring Boot 3.4.5 运行环境要求 &#x1f33f; 1️⃣ 基本需求 ☑️ JDK版本&#xff1a;最低 Java 17 &#x1f517; https://www.java.com/ 最高兼容至 Java 24 ☑️ 依赖框架&#xff1a;需搭配 Spring Framework 6.2.6 &#x1f517; https://docs.sprin…

在KEIL里C51和MDK兼容以及添加ARM compiler5 version编译器

前言 我们想在一个keil里面可以打开32和51的文件&#xff0c;这样就不需要两个keil了 还有就是现在的keil&#xff0c;比如我用的是5.41的&#xff0c;就没有5版本的处理器&#xff0c;所以要安装 本篇文章我们来详细讲解如何实现上面说的两个内容 准备的东西 1.ARM5编译器 …

Flutter 弹窗队列管理:支持优先级的线程安全通用弹窗队列系统

在复杂的 Flutter 应用开发中&#xff0c;弹窗管理是一个常见难题。手动管理弹窗的显示顺序和条件判断不仅繁琐&#xff0c;还容易出错。为此&#xff0c;我们实现了一个支持优先级的线程安全通用弹窗队列管理系统。它能够自动管理弹窗的显示顺序&#xff0c;支持条件判断&…

鸿蒙NEXT开发剪贴板工具类(ArkTs)

import { pasteboard } from kit.BasicServicesKit; import { StrUtil } from ./StrUtil;/*** 剪贴板工具类* 需要权限&#xff1a;* ohos.permission.READ_PASTEBOARD // 允许应用读取剪贴板。* author CSDN-鸿蒙布道师* since 2025/04/25*/ export class PasteboardUtil {…

FastAPI 零基础入门指南:10 分钟搭建高性能 API

一、为什么选择 FastAPI&#xff1f; 想象一下&#xff0c;用 Python 写 API 可以像搭积木一样简单&#xff0c;同时还能拥有媲美 Go 语言的性能&#xff0c;这个框架凭借三大核心优势迅速风靡全球&#xff1a; 开发效率提升 3 倍&#xff1a;类型注解 自动文档&#xff0c;…

【算法】BFS-解决FloodFill问题

目录 FloodFill问题 图像渲染 岛屿数量 岛屿的最大面积 被围绕的区域 FloodFill问题 FloodFill就是洪水灌溉的意思&#xff0c;假设有下面的一块田地&#xff0c;负数代表是凹地&#xff0c;正数代表是凸地&#xff0c;数字的大小表示凹或者凸的程度。现在下一场大雨&…

代码随想录算法训练营第三十七天|动态规划part4

1049. 最后一块石头的重量 II 题目链接&#xff1a; 1049. 最后一块石头的重量 II - 力扣&#xff08;LeetCode&#xff09; 文章讲解&#xff1a; 代码随想录 思路&#xff1a; 理解为把石头分成两堆 使得两堆的差值尽可能小 求这个最小值1 理解为往背包里装物品 每个物品的…

(八)深入了解AVFoundation-采集:拍照功能的实现

引言 在上一篇文章中&#xff0c;我们初步完成了使用 AVFoundation 采集视频数据的流程&#xff0c;掌握了 AVCaptureSession 的搭建与视频流的预览显示。 本篇将继续深入 AVFoundation&#xff0c;聚焦于静态图片采集的实现。通过 AVCapturePhotoOutput&#xff0c;我们可以…

git tag使用场景和实践

背景 每次上线一个迭代&#xff0c;为了区分本次代码的分支是哪个迭代的commit&#xff0c;可以给分支打上tag&#xff0c;这样利于追踪分支所属迭代&#xff0c;如果devops没有自动给分支打tag&#xff0c;需要自己来打 操作 1.查看当前tag git tag2.给分支打tag git tag…

从零开始掌握Linux数据流:管道与重定向完全指南

全文目录 1 知识背景与核心概念1.1 操作系统的输入输出模型1.2 Shell 的中间人角色 2 重定向技术深度解析2.1 输出重定向2.1.1 覆盖写2.1.2 追加写2.1.3 错误重定向2.1.4 同时重定向 stdout 和 stderr 2.2 输入重定向2.2.1 文件作为输入源2.2.2 Here Document&#xff08;多行输…

aws(学习笔记第三十九课) iot-core

文章目录 aws(学习笔记第三十九课) iotcore(Internet Of Thing)学习内容:1. 整体架构1.1 代码链接1.2 整体架构(概要)1.3 整体架构(详细 )2. 代码解析2.1 创建`IOT thing`2.2 创建`AWS IOT certificate`证书2.2.1 创建`lambda`需要的`role`2.2.2 创建`lambda`2.2.3 `lambd…

国家新政鼓励游戏出海,全球化安全威胁如何解

本文作者&#xff1a;腾讯宙斯盾DDoS防护团队 01 政策红利释放&#xff1a;游戏出海升级为“国家战略工程” 01 4月21日&#xff0c;国务院新闻办公室发布《加快推进服务业扩大开放综合试点工作方案》&#xff0c;释放了一个信号&#xff1a;首次将“游戏出海”列为战略级工程&…

MobX 在 React 中的使用:状态管理的新选择

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

Idea 配置 Git

1、下载Git 下载地址&#xff1a; Git - Downloading Package 2、win 打开 git bash &#xff0c;配置邮箱和用户名 //配置邮箱 git config --global user.email "710419844qq.com" //配置全局用户名 git config --global user.name "smelodys" 3、ide…

Vue3 + OpenLayers 开发教程 (四) 样式配置与性能优化

1. 地图样式基础概念 1.1 什么是地图样式&#xff1f; 地图样式是决定地图要素&#xff08;点、线、面&#xff09;如何显示的重要配置。在 OpenLayers 中&#xff0c;样式主要包含以下几个核心组件&#xff1a; Fill&#xff08;填充&#xff09;&#xff1a;控制面状要素的…

【Nacos-安全与限流机制健全06 】

文章目录 Nacos安全机制介绍Nacos代码实现Nacos限流机制Nacos限流的代码实现 Nacos安全机制介绍 一、Nacos安全控制机制 Nacos 提供了多种安全控制机制&#xff0c;以保证服务和配置的访问安全&#xff1a; 身份验证 (Authentication) Nacos 支持用户身份验证来防止未授权的访…

自建开源远程协助服务RustDesk —— 筑梦之路

开源项目 # 服务端https://github.com/rustdesk/rustdesk-server.git# 客户端https://github.com/rustdesk/rustdesk.git 搭建服务端 需要使用的端口、协议 hbbs - RustDesk ID 注册服务器 hbbr - RustDesk 中继服务器默认情况下&#xff0c;hbbs 监听 21115(tcp) , 21…

Jmeter中同步定时器使用注意点

1.设置数量不可大于总线程数量&#xff0c;不然会一直等待 2.设置数量必须与总线程数量成整数倍数&#xff0c;不然还是要一直等。 3.当配置的数量小于线程数时&#xff0c;最好把循环打开&#xff0c;避免最后一次未准备好的线程数量达不到并发数。

作为高速通道光纤传输模式怎么理解以及到底有哪些?

光纤的传输模式主要取决于光纤的结构(如纤芯直径和折射率分布),不同模式对应光波在光纤中传播的不同路径和电磁场分布。以下是光纤传输模式的主要分类及特点: 1. 单模光纤(Single-Mode Fiber, SMF) 核心特点: 纤芯直径极小(通常为 8-10微米),仅允许光以单一模式(…

小程序Npm package entry file not found?

修改依赖包的入口文件 看是不是cjs&#xff0c;小程序不支持cjs