python远程监控_Python 实现远程监控中心

设计

项目名称:LinuxMM

监控平台:Linux

使用模块:psutil、Paramiko

前端框架:Bootstrap

后端框架:DJango

监控方式

远程读取信息的方式一般分两种

推式:在每台主机上部署获取信息的脚本,然后采用某种方式发送给监控机。

优点:

缺点:

拉式:脚本只部署在监控机上,主动从目标主机上读取信息。

优点:代码只存放在监控机即可

缺点:每次都要发送执行命令;另外,psutil 模块还是需要安装到目标服务器的,可以下载解压安装包后执行 python3 setup.py install 。

简单起见,我们这里使用拉式。

设计草图

【首页】

af5a8885845d79a86efbdd1e376022da.png

【详情页】

2301b06ccb6af9d1810cd14fd055d1a6.png

需求分析

设计数据库,表结构

实现登录功能

登录成功后,可以添加主机

点击一条主机,可以查看到主机当前 CPU、内存等资源占用情况

点击编辑功能,可以修改主机信息,如 IP、标签等

主要技术点

数据库设计和 Web 开发相关知识,参考 Web 开发模块

主机信息获取,可使用 psutil 模块

CPU 使用率图表可使用百度图表

实现

代码仓库:https://gitee.com/luhuadong/Python_Learning/tree/master/13th_week/homework/linuxmm

数据表设计

创建数据库

CREATE DATABASE IF NOT EXISTS linuxmm DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

选择数据库

use linuxmm

创建数据表

CREATE TABLE host(

id int unsigned NOT NULL auto_increment PRIMARY KEY COMMENT 'ID号',

tag varchar(32) NOT NULL COMMENT '标签',

ip varchar(32) NOT NULL COMMENT 'IP地址',

cpu smallint unsigned DEFAULT NULL COMMENT 'CPU',

mem bigint unsigned DEFAULT NULL COMMENT '内存',

disk bigint unsigned DEFAULT NULL COMMENT '硬盘',

stat tinyint unsigned default 0 COMMENT '状态',

cdate datetime COMMENT '登记时间'

);

查看表结构

mysql> desc host;

+-------+----------------------+------+-----+---------+----------------+

| Field | Type | Null | Key

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值