文章目录
快速打造简易实时监控系统
一、为什么要监控服务器数据
监控为什么会如此重要?
- 提前预防故障发生(磁盘、内存、CPU)
- 发生故障及时了解,并通过历史数据回溯故障
- 为数据统计提供依据(稳定性,故障率等)
云服务器=> 按使用时长收费,按月/年购买 - 节省出时间,让我们腾出精力做更有意义的事
二、准备工作
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'