glances实现服务器资源监控

在这篇文章中我将会传授使用glances10min搭建一个服务器性能实时监控系统的车技~!

准备工作

  1. 什么是glances

glances是一个由python实现的类似tophtop的服务器性能监控工具,区别在于glances提供的信息和可使用的参数更多,具体其中包括信息:

  • CPU 使用率
  • 内存使用情况
  • 内核统计信息和运行队列信息
  • 磁盘 I/O 速度、传输和读/写比率
  • 文件系统中的可用空间
  • 磁盘适配器
  • 网络 I/O 速度、传输和读/写比率
  • 页面空间和页面速度
  • 消耗资源最多的进程
  • 计算机信息和系统资源
  1. 安装glances

    建议安装py2.7.x下的glances,原因是由于在搭建glances的web server环境时py3下的glances的配套bottle框架貌似没有完全兼容(我在我的mac测试未通过)出现字符编码错误

    1
    pip install glances

在命令行中使用glances

安装完成后直接在终端下执行命令

1
glances

如果出现类似这样的画面,那么恭喜你,你的glances工具就算是安装好了

glances运行图

当然glances的用法远不止如此,更多的glances用法及命令行参数释义,请查阅官方的doc

搭建glances实时监控web服务

  1. 安装bottle

    glances的web服务需要和bottle框架配合才能使用,所以需要先安装bottle,同样是建议安装py2.7.x版本

    1
    pip install bottle
  2. 启动glances服务

    1
    glances -w

    此时终端上就会有相应的输出,你可以根据终端提示在浏览器端进行访问,页面如下

    web端的运行截图

服务器上的简单部署

由于bottle也是符合WSGI规范的web应用,所以部署思路和其它WSGI应用如Django,Flask相同:使用nginx作为反向代理将请求转发至glances服务端口即可

  1. 部署前的工作

    • 上文说得全部

    • nginx

    • screen
  2. 开始部署

    i. 进入screen,然后开启glances服务

    1
    2
    screen -S glances	# 新建一个名叫一个[glances]的任务session
    glances -w # 开启glances服务

    然后Ctrl + a, Ctrl + d 将glances任务Detached掉

    ii. 配置nginx

    1)我们肯定不希望自己服务器的信息被别人知道,所以要使用nginx提供的认证功能

    我以自己的实际部署情况为例

    1
    2
    3
    4
    5
    6
    7
    8
    # 请使用带有root身份的用户登录
    cd /etc/nginx/passwd # 进入自己密码文件所在目录
    ➜ htpasswd -c ./auth.txt test # 新建一个test用户
    New password: # 输入密码
    Re-type new password:
    Adding password for user test
    ➜ cat auth.txt # 查看文件信息
    test:$apr1$xQWpR2dM$228RMBelnZn.8o3GPE7E/1

    2)编写nginx配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    server {
    listen 80;
    server_name [your domain];
    auth_basic "Please input password";
    auth_basic_user_file /etc/nginx/passwd/auth.txt;
    location / {
    #include uwsgi_params;
    proxy_pass http://127.0.0.1:61208;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-for $remote_addr;
    }
    }

    3)检查nginx语法然后重启nginx

    1
    2
    sudo nginx -t 
    sudo systemctl restart nginx
  3. 测试

    接下来你就可以测试你的nginx认证和性能监控是否正常运行了

    nginx认证

    认证成功之后就可以看到之前类似本机的web测试页面了,如果出错了,你可以进入screen查看报错原因

    怎么样,有没有觉得很easy呢~😋😋😋

参考列表

  1. 使用资源监控工具 glances

留言

⬆︎TOP