flask+mysql+html CPU内存实时监控
时间: 2023-07-29 21:11:48 浏览: 340
好的,您想监控的是服务器的CPU和内存使用情况,对吧?那么,您可以借助Python中的psutil库来实现这个功能。具体步骤如下:
1. 安装psutil库:在命令行中输入pip install psutil即可安装。
2. 编写Flask应用:您可以在Flask中编写一个简单的应用,用于展示CPU和内存使用情况。比如,您可以在Flask应用的路由函数中,调用psutil库来获取当前CPU和内存的使用情况,并将其返回给HTML页面。
3. 编写HTML页面:您可以在HTML页面中,使用JavaScript来定时向Flask应用发送请求,以获取CPU和内存的实时使用情况,并将其展示在页面上。
4. 使用MySQL来存储历史数据:您可以在MySQL中创建一个表,用于存储CPU和内存的历史使用情况。在Flask应用中,每次获取到当前的CPU和内存使用情况时,将其存储到MySQL表中。
这样,您就可以实现一个简单的CPU和内存实时监控系统了。当然,具体的实现方式还需要结合您的具体需求来进行调整。
相关问题
flask+mysql+html搭建CPU内存实时监控功能
好的,我来详细介绍一下如何使用Flask、MySQL和HTML来搭建CPU和内存实时监控功能。
1. 安装必要的库
首先需要安装Flask, psutil和PyMySQL库。在命令行中输入下面的命令进行安装:
```
pip install Flask psutil PyMySQL
```
2. 创建Flask应用
在项目根目录下创建一个名为`app.py`的文件,编写Flask应用。
```python
from flask import Flask, jsonify, render_template
import psutil
import time
import pymysql
app = Flask(__name__)
# 连接MySQL数据库
db = pymysql.connect(host='localhost',
user='root',
password='123456',
db='test',
charset='utf8')
@app.route('/')
def index():
return render_template('index.html')
@app.route('/data')
def get_data():
# 获取CPU和内存的使用情况
cpu_usage = psutil.cpu_percent()
mem_usage = dict(psutil.virtual_memory()._asdict())['percent']
# 将当前的CPU和内存使用情况存储到MySQL数据库
cursor = db.cursor()
cursor.execute("insert into cpu_mem_usage(cpu_usage, mem_usage, time) values (%s, %s, %s)", (cpu_usage, mem_usage, int(time.time())))
db.commit()
# 返回当前的CPU和内存使用情况
return jsonify(cpu_usage=cpu_usage, mem_usage=mem_usage)
if __name__ == '__main__':
app.run(debug=True)
```
在上面的代码中,我们创建了一个Flask应用,并连接到了MySQL数据库。然后我们定义了两个路由函数,`index()`函数用于渲染HTML页面,`get_data()`函数在每次调用时获取当前的CPU和内存使用情况,并将其存储到MySQL数据库中。
3. 创建HTML页面
在项目根目录下创建一个名为`templates`的文件夹,在其中创建一个名为`index.html`的文件,编写HTML页面。
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CPU and Memory Usage Monitor</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
$(document).ready(function () {
setInterval(function () {
$.getJSON('/data', function (data) {
$('#cpu_usage').text(data.cpu_usage + '%');
$('#mem_usage').text(data.mem_usage + '%');
});
}, 1000);
});
</script>
</head>
<body>
<h1>CPU and Memory Usage Monitor</h1>
<table>
<tr>
<th>CPU Usage</th>
<td id="cpu_usage"></td>
</tr>
<tr>
<th>Memory Usage</th>
<td id="mem_usage"></td>
</tr>
</table>
</body>
</html>
```
在上面的代码中,我们使用了jQuery库来定时向Flask应用的`/data`路由发送请求,获取当前的CPU和内存使用情况,并将其展示在HTML页面上。
4. 创建MySQL表
在MySQL中创建一个名为`cpu_mem_usage`的表,用于存储CPU和内存的历史使用情况。
```sql
CREATE TABLE `cpu_mem_usage` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cpu_usage` float NOT NULL,
`mem_usage` float NOT NULL,
`time` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
5. 运行Flask应用
在命令行中进入项目根目录,输入下面的命令来运行Flask应用。
```
python app.py
```
现在,您可以在浏览器中访问`http://127.0.0.1:5000`来查看CPU和内存的实时使用情况了。同时,您也可以在MySQL中查看到CPU和内存的历史使用情况。
以上就是使用Flask、MySQL和HTML来搭建CPU和内存实时监控功能的步骤,希望对您有所帮助。
flask+mysql+html搭建CPU内存实时监控折线图功能
这是一个比较复杂的项目,需要一定的技术基础。以下是大致的步骤:
1. 搭建Flask应用程序,包括路由和页面模板。
2. 安装mysql,并连接到Flask应用程序。
3. 编写采集系统CPU和内存使用率的Python脚本,并将采集到的数据存储到mysql中的表中。
4. 使用Ajax实现前端页面与后端的数据交互,定时获取mysql中的数据并更新折线图。
具体实现步骤如下:
1. 搭建Flask应用程序
首先需要安装Flask框架和相关依赖。可以使用pip命令进行安装:
```python
pip install flask
pip install flask-mysql
```
接下来创建一个Flask应用程序,并编写路由和页面模板。
```python
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run()
```
在templates文件夹下创建一个名为index.html的模板文件,用于显示实时监控的折线图。
```html
<!DOCTYPE html>
<html>
<head>
<title>CPU内存实时监控</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.6.0/echarts.min.js"></script>
</head>
<body>
<div id="chart" style="width: 100%; height: 400px;"></div>
<script>
var myChart = echarts.init(document.getElementById('chart'));
var option = {
title: {
text: 'CPU内存实时监控'
},
tooltip: {
trigger: 'axis'
},
legend: {
data:['CPU使用率', '内存使用率']
},
xAxis: {
type: 'category',
boundaryGap: false,
data: []
},
yAxis: {
type: 'value',
axisLabel: {
formatter: '{value}%'
}
},
series: [
{
name: 'CPU使用率',
type: 'line',
data: []
},
{
name: '内存使用率',
type: 'line',
data: []
}
]
};
myChart.setOption(option);
setInterval(function() {
$.ajax({
url: '/data',
success: function(data) {
var xAxisData = [];
var cpuData = [];
var memData = [];
for(var i = 0; i < data.length; i++) {
xAxisData.push(data[i].time);
cpuData.push(data[i].cpu);
memData.push(data[i].memory);
}
myChart.setOption({
xAxis: {
data: xAxisData
},
series: [
{
name: 'CPU使用率',
data: cpuData
},
{
name: '内存使用率',
data: memData
}
]
});
}
});
}, 1000);
</script>
</body>
</html>
```
2. 安装mysql,并连接到Flask应用程序
首先需要安装mysql,并创建一个数据库和一个表用于存储采集到的数据。
```sql
CREATE DATABASE monitor;
USE monitor;
CREATE TABLE data (
id INT NOT NULL AUTO_INCREMENT,
time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
cpu FLOAT,
memory FLOAT,
PRIMARY KEY (id)
);
```
接下来在Flask应用程序中添加mysql配置,并连接到mysql。
```python
from flaskext.mysql import MySQL
app = Flask(__name__)
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
app.config['MYSQL_DATABASE_PORT'] = 3306
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = '123456'
app.config['MYSQL_DATABASE_DB'] = 'monitor'
mysql = MySQL()
mysql.init_app(app)
@app.route('/data')
def get_data():
cursor = mysql.get_db().cursor()
cursor.execute('SELECT * FROM data ORDER BY time DESC LIMIT 30')
data = cursor.fetchall()
return jsonify(data)
```
3. 编写采集系统CPU和内存使用率的Python脚本,并将采集到的数据存储到mysql中的表中
使用psutil库可以方便地获取系统CPU和内存使用率。编写一个Python脚本,定时采集CPU和内存使用率,并将采集到的数据存储到mysql中的表中。
```python
import psutil
import time
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='monitor')
while True:
cpu_percent = psutil.cpu_percent(interval=1)
mem_percent = psutil.virtual_memory().percent
cursor = conn.cursor()
cursor.execute('INSERT INTO data (cpu, memory) VALUES (%s, %s)', (cpu_percent, mem_percent))
conn.commit()
time.sleep(1)
conn.close()
```
4. 使用Ajax实现前端页面与后端的数据交互,定时获取mysql中的数据并更新折线图
在前面的index.html模板文件中已经使用Ajax定时获取数据并更新折线图。
```javascript
setInterval(function() {
$.ajax({
url: '/data',
success: function(data) {
var xAxisData = [];
var cpuData = [];
var memData = [];
for(var i = 0; i < data.length; i++) {
xAxisData.push(data[i].time);
cpuData.push(data[i].cpu);
memData.push(data[i].memory);
}
myChart.setOption({
xAxis: {
data: xAxisData
},
series: [
{
name: 'CPU使用率',
data: cpuData
},
{
name: '内存使用率',
data: memData
}
]
});
}
});
}, 1000);
```
以上就是使用Flask+mysql+html搭建CPU内存实时监控折线图功能的大致步骤。需要注意的是,由于采集系统CPU和内存使用率的Python脚本需要长时间运行,可以使用supervisor等工具进行进程管理。
阅读全文