Giter VIP home page Giter VIP logo

nebulasolardash's Introduction

NebulaSolarDash - v2.0


项目介绍:

写这个工具的目的是为了解决工作问题。 个人工作生产环境无法连接互联网,也没有自建的yum源等,手头又有很多服务器需要进行监控,使用现有的开源方案安装部署是个问题, 各种依赖组件包需要挨个安装,很麻烦,所以想找一款依赖较少部署简单的分布式服务器资源监控工具,找来找去没找到,索性自己动手写一个。 我的本职工作是测试,所以就用最熟悉的Python来写吧,第一次写web应用,先做出来再边学边优化吧。

工具分为客户端和服务端两部分: 服务端使用了bottle来作为web框架,echarts来渲染生成图表; 客户端使用Python原生类库采集服务器资源,客户端采集数据部分代码参考了pyDash

使用效果

下图是在Red Hat Enterprise Linux Server release 6.3 (Santiago)的使用效果

使用方法

1. 首先在服务端服务器和各个客户端服务器之间建立主机信任,确保从服务端可以直接ssh连接到客户端服务器不需要输入密码

2. 配置conf目录下的ns.ini文件:

[server]
; 服务端IP
ip = 172.16.111.171
; 服务端端口号
port = 8081
debug = True
;报警信息阈值,百分比
;举例:
;cpu_yellow = 80,代表cpu使用率达到80%即提示使用黄色标示
;cpu_red = 95,代表cpu使用率达到95%即提示使用黄色标示
mem_yellow = 80
mem_red = 95
cpu_yellow = 80
cpu_red = 95

[agent]
; 客户端采集数据间隔时间, 单位是s, 建议不要小于60s, 否则会导致数据采集过于频繁,影响服务器正常使用
interval = 600
install_path = /home/RunTimeNSDash
;所有需要监控的节点的ip,以英文逗号分隔
[all_agent_ip]
;ips = 172.16.111.164,172.16.111.166,172.16.111.167,172.16.111.171

3. 运行参数

python manager.py -h
usage: manager.py [-h] [-install] [-uninstall] [-startall] [-stopall]
                  [-start START_ONE] [-stop STOP_ONE]

Manager Tool

optional arguments:
  -h, --help        show this help message and exit
  -install          安装客户端到各个节点并自动启动客户端以
                    服务端
  -uninstall        停止各个节点的客户端并停止程序清理安装
                    件,同时停止服务端
  -startall         启动各个节点的客户端并设置crond守护
  -stopall          停止各个节点的客户端并去除crond守护
  -start START_ONE  启动一个指定节点的客户端并设置crond守护
  -stop STOP_ONE    停止一个指定节点的客户端并去除crond守护

等一分钟就可以在 http://{server_ip}:{port} 看到各个客户端列表了。

其他说明

* 以客户端采集数据间隔时间120s为例,单节点24小时会向数据库写入大约4MB数据。
* 单个客户端每次采集发送到服务端写入数据库的信息大概在5~6kb左右,请自行结合服务器个数以及监控时长和服务器存储自行设定监控间隔。

nebulasolardash's People

Contributors

toddlerya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nebulasolardash's Issues

内存信息部分 兼容性不好

Red Hat 系列 free -m
total used free shared buffers cached
Mem: 257949 155906 102042 0 851 142420
-/+ buffers/cache: 12634 245315
Swap: 127999 5912 122087

Debian 系列 free -m
total used free shared buff/cache available
Mem: 128878 26308 1363 1338 101206 100196
Swap: 47683 0 47683

单纯用 if len(mem_pipe) == 3: 判断不合理,建议改成解析 cat /proc/meminfo 信息,结果更准确

登陆验证

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[05/09/17 15:28:02] : ERROR : can not logon 127.0.0.1 without passwd.

这个密码应该在哪里设置,或是在哪块代码中配置

网卡流量统计错误

网卡流量信息统计错误,ns_agent.py的第175行需要split()获取的出入流量信息,此行代码缩进错误导致取值失败。

服务器信息没有

我在虚拟机上安装了三个节点(centos7),其中一个为服务端,另外两个位客户端,已经设置了互信,在服务端启动服务后,只能再浏览器中看到下列信息所示:
(我不知道怎么传图片)

Nebula-Solar服务器资源监控节点列表
序号 主机名 IP地址 内存 CPU

没有节点信息。

开启服务过程:

[root@yt1 NebulaSolarDash-NebulaSolarDash-2.0.2]# python manager.py -install
[+] 开始安装客户端到各个节点并自动启动客户端以及服务端
[+] 设置安装目录成功: /home/RunTimeNSDash
[+] 删除历史数据成功
[+] 启动服务端成功
[+] 此次安装的节点共计 2 个
[06/07/18 08:50:05] : INFO    : 校验服务器连通性: 192.168.231.130
[06/07/18 08:50:05] : INFO    : 开始部署
[06/07/18 08:50:10] : INFO    : 校验服务器连通性: 192.168.231.131
[06/07/18 08:50:10] : INFO    : 开始部署
[root@yt1 NebulaSolarDash-NebulaSolarDash-2.0.2]# python manager.py -startall
[+] 启动各个节点的客户端并设置crond守护
[+] 此次安装的节点共计 2 个
[06/07/18 08:50:56] : INFO    : 校验服务器连通性: 192.168.231.130
[06/07/18 08:50:56] : INFO    : 开始部署
[06/07/18 08:51:00] : INFO    : 校验服务器连通性: 192.168.231.131
[06/07/18 08:51:00] : INFO    : 开始部署

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.