运维 · 2016/10/24 1

Linux 系统实时监控利器 —— Glances

在群里偶然发现了这个工具,发现还挺好用,在此简单笔记一下。

背景描述

Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具。 通过 Glances,我们可以监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器 和 文件系统 空间的利用情况。

Glances 是一个用来监视 GNU/Linux 和 FreeBSD 操作系统的 GPL 授权的自由软件。

Glances 同时也提供了很多实用的选项。 其中我们能够在配置文件见到的一项主要的功能就是设置关键值及相应的标签 (careful[小心], warning[警告] 和 critical[严重]), 然后她会自动帮我们用不同颜色标出系统达到某个瓶颈的信息。

主要功能 

  • CPU 信息 (用户的相关应用, 系统核心程序和空闲程序)
  • 总内存信息,包括了物理内存,交换空间和空闲内存等等
  • 之前的 1 分钟、5 分钟和 15 分钟平均的 CPU 负载
  • 网络链接的下行和上行速度
  • 处理器总数,以及其活动状态
  • 硬盘 I/O 相关(读写)速度详情
  • 当前挂载设备的磁盘使用情况
  • 高 CPU 和内存使用的进程名,和相关应用的位置
  • 在底部显示当前日期和时间
  • 将消耗最高系统资源的进程用红色标出

安装

yum install -y glances

或者

sudo apt-add-repository ppa:arnaud-hartmann/glances-stable
sudo apt-get update
sudo apt-get install glances

执行

glances

效果截图(按q可以退出)

20161024131044

 

 

颜色说明

Glances 会用一下几种颜色来代表状态:

  • 绿色:OK(一切正常)
  • 蓝色:CAREFUL(需要注意)
  • 紫色:WARNING(警告)
  • 红色:CRITICAL(严重)

阀值可以在配置文件中设置,一般阀值被默认设置为(careful=50、warning=70、critical=90)。

我们可以按照自己的需求在配置文件(默认在 /etc/glances/glances.conf)中自定义。

以上图我的腾讯云为例,内存就处在警告的状态中。

远程使用

Glances支持远程使用(包含命令行和RPC方式),这也是我个人比较喜欢的地方,这里以PYTHON 为例,使用xmlrpc方式调用远程主机Glances的实时监控数据

假设被监控的安装有Glances腾讯云机器A的   cname为 cloud1.chenjie.info  ; 腾讯云机器B的   cname为 cloud2.chenjie.info

那么A上启动命令常驻

glances -s &

备注:因为默认开发远程监控的端口是61209,所以防火墙需要放开这个端口,否则会连接失败

B机器上test.py脚本如下

#!/usr/bin/python
import xmlrpclib
import json
s = xmlrpclib.ServerProxy('http://cloud1.chenjie.info:61209')
print s.getSystem()   #打印机器A系统信息(格式json对象)
hjson = json.loads(s.getSystem()) #引用json库,json解析成python的dict
print hjson['os_name'] #打印机器A  os_name这个key,获取机器的系统名称
print s.getNow() #获取机器A当前时间
print s.getLoad() #获取机器A当前机器负载
执行
chmod +x test.py
./test.py
效果
{"os_name": "Linux", "os_version": "2.6.32-642.3.1.el6.x86_64", "linux_distro": "CentOS 6.8", "hostname": "VM_24_99_centos", "platform": "64bit", "hr_name": "CentOS 6.8 64bit"}
Linux
"2016-10-24 13:23:29"
{"cpucore": 1, "min1": 0.07, "min5": 0.04, "min15": 0.01}

这里只介绍了几个api,更多api参考官方github的wiki   https://github.com/nicolargo/glances/wiki/The-Glances-2.x-API-How-to

 

参考:http://www.tecmint.com/glances-an-advanced-real-time-system-monitoring-tool-for-linux/