Glances监控服务器状态

Glances 是 Python 编写的基于 curses 的跨平台系统监控工具。

最近 leader 引入了 InfluxDB + Grafana 做服务状态监控,主要监控用户在线,队列 IO,线程状态等服务端服务有关性能指标和参数。 笔者在服务监控这块接触的并不是特别多。所以打算花点业余时间研究记录学习一下。

在这个过程中想到是否可以利用 Python 脚本解析(top, iostat)等工具的监控数据,汇总并上报信息到 InfluxDB,在 Grafana 显示, 实现对服务器机器状态的监控。

万事先 Google,看看是否有前辈已经造轮子,避免重复制造垃圾轮子。o(∩_∩)o 哈哈

Google 发现了 Glances 项目,使用 Python 开发并且直接支持 InfluxDB+Grafana 输出显示。

从 Glances 安装开始

Glances 提供多系统的多种安装途径。本文只记录笔者安装流程和遇到的问题。

依赖:

  1. python 2.7,>=3.3
  2. psutil>=2.0.0
  3. setuptools

可选依赖:

Alt text

有兴趣可以参见官网说明文档

环境:

  1. 操作系统 : CentOS 7-x64
  2. Python 版本 : 2.7.8(系统自带)

值得一提的是,安装过程中庆幸也是不幸的事情是 : 安装过程笔者没遇到啥问题。

我只能攒一句 Glances 官方提供的自动安装初始化脚本 下载地址支持的太好了。

1
> curl -L https://bit.ly/glances | /bin/bash

对于 InfluxDB 相关的参数配置:

1
2
3
4
5
6
7
[influxdb]
host=localhost
port=8086
user=root
password=root
db=glances  # InfluxDB中的数据库 - 启动Glances前要创建对应的数据库
tags=foo:bar,spam:eggs

启动 Glances:

1
> glances --export-influxdb

配置 Grafana 数据源

同样庆幸也是不幸的是:Glances 提供了便捷的模板配置。官网模板配置:下载地址

在 Grafana 中选择”Import” -> glances-grafana.json 文件

Alt text

Grafana 导入的*.json 文件中的 datasource 配置必须对应 InfluxDB 中的 db,否则无法找到数据源

总结

至此,整个环境就安装好了。看一下效果:

Alt text

Glances 监控包括 CPU,IO,网络,磁盘等等。Enjoy it!!!

知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 TinyZ Zzh (包含链接: https://tinyzzh.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。 如有任何疑问,请 与我联系 (tinyzzh815@gmail.com)

TinyZ Zzh

TinyZ Zzh

专注于高并发服务器、网络游戏相关(Java、PHP、Unity3D、Unreal Engine等)技术,热爱游戏事业, 正在努力实现自我价值当中。

评论

  点击开始评论...