python 用psutil、pymysql和flask快速打造简易实时网络监控系统

快速打造简易实时监控系统

一、为什么要监控服务器数据

监控为什么会如此重要?

  1. 提前预防故障发生(磁盘、内存、CPU)
  2. 发生故障及时了解,并通过历史数据回溯故障
  3. 为数据统计提供依据(稳定性,故障率等)
    云服务器=> 按使用时长收费,按月/年购买
  4. 节省出时间,让我们腾出精力做更有意义的事

二、准备工作

1. 获取网卡实时流量信息 - psutil

安装psutil

yum install python3-devel*
pip3 install psutil

获取网卡实时流量

以秒为单位获取网卡流量,输出
时间戳,网卡recv,网send

import psutil
import time


def get_net_speed(interval):
    '''
    输入间隔数,得到间隔数内网卡的流量
    :param interval: 间隔数
    :return:时间戳 间隔数内的发送字节 间隔数内的接收字节
    '''
    net_msg = psutil.net_io_counters()
    bytes_sent, bytes_recv = net_msg.bytes_sent, net_msg.bytes_recv
    time.sleep(interval)
    time1 = int(time.time())
    net_msg = psutil.net_io_counters()
    bytes_sent2, bytes_recv2 = net_msg.bytes_sent, net_msg.bytes_recv
    bytes_sent3 = bytes_sent2 - bytes_sent
    bytes_recv3 = bytes_recv2 - bytes_recv
	return time1,bytes_sent3,bytes_recv3
	
while 1:
        print(get_net_speed(1))

2.存储信息 - mysql (可用mariadb或者mysql)

安装和启动

#安装epel源
yum install epel-release -y
#查看与mariadb有关的已安装的包和需要安装的包
yum list mariadb*
# 安装mariadb
yum -y install mariadb*
# 启动mariadb
systemctl start mariadb
# 开机启动
systemctl enable mariadb

连接数据库,创建表

# 进入mysql服务端
# mysql 

# 创建weblog数据库
> CREATE DATABASE weblog;
# 使用weblog数据库
> USE weblog;
# 查看数据表有哪一些
> show tables;
# 创建access表: access_time, region, ISP, num
> CREATE TABLE access (access_time char(19), regin char(10), ISP char(2), 
num int);

python连接数据库

安装pymysql => python连接数据库的模块

pip3 install pymysql

连接数据库并入库

import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost',
                     user='root',
                     password='',
                     database='weblog')
# 自动提交数据
db.autocommit(True)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
 
# 使用 execute() 方法执行 SQL 查询 
cursor.execute("SELECT VERSION()")
 
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
# 使用 fetchall() 方法获取所有数据.
#data = cursor.fetchall()
 
print ("Database version : %s " %data)
# 插入数据
cursor.execute("insert into access values('2022-10-10 15','湖南','电
信',100)")
 
# 关闭数据库连接
db.close()

练习:将所有的web日志都 插入到数据库中

import pymysql
# 打开数据库连接
db = pymysql.connect(host='localhost',
                     user='root',
                     password='',
                     database='weblog'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值