黑帽联盟

标题: Python开发的系统监视工具:Glances [打印本页]

作者: 定位    时间: 2023-7-7 15:25
标题: Python开发的系统监视工具:Glances
Glances是一款由Python开发的系统监视工具,可以实时查看CPU、内存、网络、IO等资源的使用情况。除了通过终端查看,Glances还提供了网页版,使用起来比top命令要方便。

21.jpg

官网:https://github.com/nicolargo/glances

安装Glances
安装很简单,以Alibaba Cloud Linux 3为例,运行下面语句即可

yum install glances

上述安装如果出现如下错误:
2121.png

需要安装python-psutil,版本2.0.0以上,下面是安装步骤:
wget https://files.pythonhosted.org/packages/d6/0f/96b7309212a926c1448366e9ce69b081ea79d63265bde33f11cc9cfc2c07/psutil-5.9.5.tar.gz

tar xf psutil-5.9.5.tar.gz
cd psutil-5.9.5  
python3 setup.py install

如果上述安装出现如下错误:
2122.png

执行如下命令,即可解决:
yum install gcc python3-devel python3-pip -y
python3 setup.py install  #再次执行安装
pip3 install -U pip  #更新pip3
接着我们再安装glances
pip3 install galnces

使用Glances
直接输入以下命令,即可查看,如果要退出,按 Ctrl + C 或者 q 或者 esc 。

glances

22.png

在界面的左上角,我们可以查看hostname、系统版本和内核信息,右上角是系统运行时间,下面一行就是CPU、内存、SWAP和系统负载。左侧是网络、磁盘IO、文件系统和传感器的相关信息,右侧是任务信息和详细的进程对系统资源的占用。根据不同的系统配置,显示的内容会稍有不同。

Glances使用不同的颜色表示不同的状态,绿色表示运行良好;蓝色表示注意,可能占用资源比较多了,以后可能会出现问题;紫色表示警告;红色表示严重了,需要采取行动,在界面的最下面一行会有提醒,示例中显示的是没监测到任何警告和严重的信息。

快捷键
在运行Glances的时候,可以使用快捷键进行高级的操作。具体的操作快捷键我们以使用字母 h 进行查询,再按一次 h 退出。具体的快捷键列表情况下面截图:

23.png

a:自动排序进程
c:按 CPU 使用率排序进程
m:按内存占用排序进程
p:按名称排序进程
i:按 I/O 速率排序进程
d:显示或隐藏磁盘 I/O 统计
f:显示或隐藏文件系统使用统计
n:显示或隐藏网络流量统计
s:显示或隐藏传感器数据统计
l:显示或隐藏日志
h:显示帮助信息
q:退出

搜索、过滤进程
在运行Glances的时候,我们按 Enter 回车键,会跳出一个搜索框,我们可以根据示例输入关键字查找进程,也可以使用正则表达式、用户名等进行搜索。

24.png

输入搜索条件之后,按 Enter 回车键,Glances会显示相关进程,如果想查看该进程的详细信息,按字母 e 。退出进程查找,返回原来界面,按大写字母 E。

25.png

网页版查看结果
glances -w

运行该命令之后,我们就可以通过 http://<server-ip>:61208 进行查询,如果要把页面的刷新时间改成5秒,可以使用 http://<server-ip>:61208/5 这种形式。注意,网页版使用61208端口,需要在防火墙先打开这个端口。

在运行网页版的时候,可能会提示“ CRITICAL: Bottle module not found. Glances cannot start in web server mode. ”,在Alibaba Cloud Linux 3 里运行下面命令安装即可:

yum install python3-bottle

将 WebServer 模式配置为系统服务
创建 Unit 文件
vim /etc/systemd/system/glancesweb.service

文件内容如下:
[Unit]

Description = Glances in Web Server Mode

After = network.target

[Service]

ExecStart = /usr/bin/glances  -w  -t  5  # glances路径因安装方法不同根据实际情况确定,可使用 which glances 命令获取

[Install]

WantedBy = multi-user.target

启用 systemd 服务并运行
systemctl enable glancesweb

systemctl start glancesweb

systemctl status glancesweb

● glancesweb.service - Glances in Web Server Mode

   Loaded: loaded (/etc/systemd/system/glancesweb.service; enabled; vendor preset: enabled)

   Active: active (running) since Tue 2023-07-07 00:02:17 CST; 8min ago

Main PID: 27912 (glances)

    Tasks: 1 (limit: 4915)

   CGroup: /system.slice/glancesweb.service

           └─27912 /home/starky/miniconda3/envs/python2/bin/python /home/starky/miniconda3/envs/python2/bin/glances -w -t 5






欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5