Python干货:反被监控?Python实现内存监控系统

Zabbix与Prometheus监控选型实战:从场景DNA到工具链协同 网络监控不是简单安装软件看图表,而是围绕数据采集模式、指标类型、告警逻辑和扩展成本构建系统性能力。Zabbix擅长SNMP设备与基础设施稳态监控,Prometheus则在云原生环境、时间序列分析与动态基线告警上具备不可替代性。二者并非互斥,而需基于真实拓扑、业务语义与采集失真风险进行组合设计——例如用Zabbix守底线(硬件/网络/连通性),Prometheus破上限(微服务/P95延迟/服务发现),再通过Exporter桥接与Alertmanager融合实现统一观测。真正的监控效能,取决于对采集机制、TS 阅读详情

Python实现内存监控系统:

思路:通过系统命令或操作系统文件获取到内存信息

(linux 内存信息存在/proc/meminfo文件中,mac os 通过命令vm_stat命令可以查看)

并将获取到信息保存到数据库中,通过web将数据实时的展示出来.(获取数据—展示数据)

1、后台数据采集(获取数据)

import subprocess
import re
import MySQLdb as mysql
import time
import socket

#获取mysql数据游标,通过游标操作数据库
db = mysql.connect(user="root", passwd="123456",host="localhost", db="EBANK", charset="utf8")
db.autocommit(True)
cur = db.cursor()

"""
  Mac系统各应用程序占内存信息
"""
def processesUseMeminfo():
  ps = subprocess.Popen(['ps', '-caxm', '-orss,comm'], stdout=subprocess.PIPE).communicate()[0]
  processLines = ps.split('\n')
  print processLines
  sep = re.compile('[\s]+')
  rssTotal = 0 # kB
  for row in range(1,len(processLines)):
    rowText = processLines[row].strip()
    rowElements = sep.split(rowText)
    try:
     rss = float(rowElements[0]) * 1024
    except:
     rss = 0 # ignore...
    rssTotal += rss
  return rssTotal

"""
  Mac内存活动信息
"""
def processVM():
  vm = subprocess.Popen(['vm_stat'], stdout=subprocess.PIPE).communicate()[0]
  vmLines = vm.split('\n')
  sep = re.compile(':[\s]+')
  vmStats = {}
  for row in range(1,len(vmLines)-2):
    rowText = vmLines[row].strip()
    rowElements = sep.split(rowText)
    vmStats[(rowElements[0])] = int(rowElements[1].strip('\.'))/1024
  return vmStats

"""
  执行更新数据库中内存信息,供web展示内存的实时数据
"""
erval = 0
def execute():
  '''更新内存活动信息'''
  global erval
  try:
    ip = socket.gethostbyname(socket.gethostname()) #获取本机ip
    #ip = '10.21.8.10'
    vmStats = processVM()
    wired = vmStats['Pages wired down']
    active = vmStats['Pages active']
    free = vmStats['Pages free']
    inactive = vmStats['Pages inactive']
    t = int(time.time())
    sql = "insert into stat(host,mem_free,mem_usage,mem_total,load_avg,time) VALUES ('%s','%d','%d','%d','%d','%d')"\
       %(ip,wired,active,free,inactive,t)
    print sql
    cur.execute(sql)
    erval += 1
    if erval > 50:
      del_sql = "delete from stat where time < %d "%t
      print '执行数据清理.',del_sql
      cur.execute(del_sql)
      erval = 0

  except Exception , message :
    print '获取内存信息异常:',message
    #pass
  finally:
    pass


  '''更新'''
  #TODO
  #rssTotal = processesUseMeminfo()

#死循环不停的读取内存,每一秒钟插入一条新的内存信息
while True:
  time.sleep(1)
  execute()
  print 'none.'

获取到数据保存到MySQL数据中,新建表:

CREATE TABLE `stat` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `host` varchar(256) DEFAULT NULL,
 `mem_free` int(11) DEFAULT NULL,
 `mem_usage` int(11) DEFAULT NULL,
 `mem_total` int(11) DEFAULT NULL,
 `load_avg` varchar(128) DEFAULT NULL,
 `time` bigint(11) DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `host` (`host`(255))
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

2、前台web采用flask应用框架,通过highstock实时展示折线图数据

from flask import Flask, request, render_template
import json
import MySQLdb as mysql

app = Flask(__name__)
db = mysql.connect(user="root", passwd="123456",host="localhost", db="EBANK", charset="utf8")
db.autocommit(True)
cur = db.cursor()

@app.route("/")
def index():
  return render_template("monitor.html")

tmp_time = 0

@app.route("/data")
def getdata():
  '''第一次查询全量数据,后面只查询增量数据'''
  global tmp_time
  if tmp_time > 0 :
    sql = "select time,mem_free from stat where time >%s" %(tmp_time)
  else:
    sql = "select time,mem_free from stat"
  cur.execute(sql)
  datas = []
  for i in cur.fetchall():
    datas.append([i[0], i[1]])

  if len(datas) > 0 :
    tmp_time = datas[-1][0]

  return json.dumps(datas)


if __name__ == "__main__":
  app.run(host='0.0.0.0',port=8888,debug=True)

新建一个monitor.html

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>内存监控</title>
  <script src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script>
  <script src="http://cdn.hcharts.cn/highstock/highstock.js"></script>
  <script src="http://cdn.hcharts.cn/highcharts/modules/exporting.js"></script>
</head>
<body>

<div id="container" style="min-width:400px;height:400px"></div>

</body>

<script type="text/javascript">

$(function () {
  $.getJSON('/data', function (data) {
    // Create the chart
    $('#container').highcharts('StockChart', {
      chart: {
        events: {
          load: function () {
            var chart = $('#container').highcharts();
            var series = chart.series[0];
            //隔1秒,请求一次/data,实时获取内存信息
            setInterval(function () {         
              $.getJSON("/data", function (res) {
                $.each(res, function (i, v) {
                  series.addPoint(v);
                });
              });
            }, 1000);
          }
        }
      },
      rangeSelector : {
        selected : 1
      },
      title : {
        text : 'AAPL Stock Price'
      },
      series : [{
        name : 'AAPL',
        data : data,
        tooltip: {
          valueDecimals: 2
        }
      }]
    });
  });
});

</script>
</html>

done.

运行后台数据采集,运行前台web,通过实时监控内存的活动情况。

 

监控 Python 内存占用和代码执行时间 在Python编程过程中,了解代码的内存占用情况和执行时间是非常重要的。通过监控内存使用情况,我们可以确保我们的程序在运行时不会消耗过多的内存,从而避免内存泄漏和性能问题。同时,了解代码的执行时间可以帮助我们优化程序,提高运行效率。本文将介绍如何使用Python来监控内存使用情况和代码的执行时间。模块,我们可以方便地监控Python代码的内存使用情况和执行时间。这些工具可以帮助我们优化程序,提高性能,并避免潜在的内存泄漏问题。然后,在代码的关键位置放置你要监控执行时间的代码。,我们可以得到代码的执行时间。 阅读详情

相关推荐

爬虫监控实战:Prometheus+Grafana监控爬虫状态,实现异常自动告警(完整版)

能写出一个能跑的爬虫,只是入门;能让爬虫稳定、高效、持续的运行,才是核心竞争力。而这份核心竞争力的基石,就是完善的监控告警体系。Prometheus+Grafana的组合,让我们能以极低的成本,实现爬虫的全维度监控,从「被动排查问题」变成「主动发现问题」,从「裸奔上线」变成「稳如老狗」。这套监控方案,不仅适用于Python爬虫,也适用于任何语言的爬虫(Java、Go、Node.js),核心思想都是「指标埋点+采集+可视化+告警」,一通百通。爬虫合规永远是第一位。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1733

【如何知道自己的电脑被监控?】

本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。从初代到现在,黑客发展逐渐有了对于名号的划分,从1999年起的“中美黑客大战”,Honker这一词逐渐进入人们的眼球。这些都值得耐人寻味,不过,黑客这一词在莎士比亚的那个年代就存在了,最早的计算机诞生于1946年宾夕法尼亚大学,而最早的黑客却出现在。2. 更新操作系统和软件:及时更新你的操作系统和软件,以获取最新的安全补丁和修复程序,以防止黑客利用已知的漏洞入侵你的系统。

Technology_77的博客 1万+

易语言反内存监控技术

易语言反内存监控技术,相信不少朋友辛辛苦苦找到的补丁数据,被别人轻而易举的窃取了... 本文就来讲讲怎么防止别人窃取我们的补丁数据...(这也是个矛与盾的话题,本文只是把常见的方法一一列举出来...)

python代码中实时检测程序运行占用内存

python检测内存占用

sa726663676的博客 2783

华为硬件逻辑岗笔试题(一)

积少成多,集腋成裘,坚持!!! 目录 1. 进制转换 2. 状态机和编码方式 3. 存储器的分类 4. Verilog语法中的操作符 5. 对组合逻辑的认识 6. 对时序逻辑的认识 7. 竞争冒险的认识 8. 基本时序逻辑电路 9. 建立时间和保持时间 10. 同步时序电路 11. 组合逻辑和时序逻辑判断 13. 基本总线的理解 14.加法器 15.FPGA开发工具 1. 进制转换 1、十进制46.25对应的二进制表达式为( )。 A 101110.11...

qq_42235129的博客 1万+

C语言—for循环打印矩形,正三角形,倒三角形,九九乘法,等腰三角形,倒着的等腰三角形(简易版代码)(重点考察for循环嵌套)

本章节教大家如何利用for循环打印正三角形,倒三角形,九九乘法表及等腰三角形(简易版代码)说明:1、循环语句的循环体内又包含另一个完整的循环结构,称为循环结构的嵌套。内嵌的循环语句中还可以再嵌套循环结构,这样就形成多重循环结构的嵌套。2、for 语句、while 语句和 do-while 语句都允许嵌套。三种循环语句可以相互嵌套。3、内层的循环语句必须完全被包含在外层的循环体中,不能发生交叉。

m0_63501145的博客 1697

给大家分享一篇 用python 10min手写一个简易的实时内存监控系统

简易的内存监控系统 本文需要有一定的python和前端基础 文章github源地址,还可以看到具体的代码,喜欢请在原链接右上角加个star 腾讯视频链接 录制中间网出问题了,重启了一下,所以有两部分 视频1 视频2 本文的目的在于,尽可能用简单的代码,让大家了解内存监控的原理 主题思路 获取内存信息 存储信息 展现 后续扩展 加主机名,monitor部署在多台机器,不直接...

qq_41235053的博客 718

别再凭感觉估算!用ADS的EBOND库精确仿真Bonding线寄生电感(附完整参数设置指南)

本文详细介绍了在ADS中使用EBOND库精确仿真Bonding线寄生电感的方法,帮助射频工程师在毫米波频段实现高精度建模。通过三维物理参数和电磁场求解算法,EBOND模型能将误差控制在5%以内,显著提升电路性能。文章还提供了完整的参数设置指南和实战操作步骤,适用于5G毫米波前端模块等高频应用场景。

weixin_28730131的博客 507

Python实现超市补货监控系统的开发文档分享

1. 创建一个数据库:为了存储超市的商品信息和库存情况,我们可以使用SQLite或MySQL等数据库来存储相关数据。创建一个名为“Inventory”的表格,其中包含以下列:商品名称、当前库存量、最大库存量、最小库存量、建议补货数量。为了实现自动补货,我们可以使用Python的第三方库,如requests等,来自动发送请求。如果库存量低于最小库存量,则需要补货。3. 爬取数据:我们可以使用Python的第三方库,如BeautifulSoup或Scrapy等,来从超市网站上爬取商品信息和价格。

m0_73291751的博客 826

YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题

1.首先,WTConv利用二维Haar小波变换对输入图像进行多级分解。低频分量 (LL):捕捉图像的低频信息,如整体形状或轮廓。水平高频分量 (LH):捕捉图像中的水平边缘信息。垂直高频分量 (HL):捕捉图像中的垂直边缘信息。对角线高频分量 (HH):捕捉图像的对角线细节。在每一级的小波变换中,图像被下采样(空间分辨率减半),但频率信息得到了更细的分解。递归地执行小波变换(称为多级分解)可以得到不同尺度下的频率分量。

qq_64693987的博客 1万+

基于非接触式微波雷达设计的跌倒检测预警系统【短信报警】

本项目选择基于非接触式微波雷达的跌倒检测预警装置作为技术核心,采用云帆瑞达的R60AFD1跌倒检测模组。这一模组能够根据人体的运动变化,如速度、距离和姿态等特征,判断是否发生跌倒,并可以持续监控老年人是否处于危险状态。此外,本项目还结合4G通信技术,通过Air724UG模块实现短信报警功能,一旦检测到跌倒事故,系统将自动通过4G网络向紧急联系人发送短信报警,及时通知亲属或医护人员进行救援。

1756

python series转int_Python干货:反被监控?Python实现内存监控系统

Python实现内存监控系统:思路:通过系统命令或操作系统文件获取到内存信息(linux 内存信息存在/proc/meminfo文件中,mac os 通过命令vm_stat命令可以查看)并将获取到信息保存到数据库中,通过web将数据实时的展示出来.(获取数据—展示数据)1、后台数据采集(获取数据)import subprocess import re import MySQLdb as mysql...

weixin_39755218的博客 109

LAMMPS实例教程—In文件详解

本博文主要介绍专栏 《LAMMPS实例教程—In文件详解》, 针对于 Lammps 可分析的物理过程进行讲解,提供 In 文件以及后处理方法,持续更新。 目前分为8个专题: 1)力学专题、2)传热专题、3)相变专题、4)界面专题、5)吸附专题、6)流动专题、7)物性专题以及8)基础理论专题。

Rockyoung 3万+

python 订票系统实现_Python干货:反被监控?Python实现内存监控系统

Python实现内存监控系统:思路:通过系统命令或操作系统文件获取到内存信息(linux 内存信息存在/proc/meminfo文件中,mac os 通过命令vm_stat命令可以查看)并将获取到信息保存到数据库中,通过web将数据实时的展示出来.(获取数据—展示数据)1、后台数据采集(获取数据)import subprocessimport reimport MySQLdb as mysqlim...

weixin_39683172的博客 73

全志T527 适配双目tp2815_mipi

在全志T527 linux下适配双目TP2815 mipi摄像头,支持六路同时输出,四路可用作360环视、一路face id等,一路用于其它开发。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 3826

Allegro输出光绘文件规范

添加钻孔表的具体步骤为:1.通过屏幕右边的Visibility选项的Views列表,将Drill层打开2.将Visibility选项中的PIN和Via选项都选中,见下图所示: 参数设好之后关闭NC Drill/Parameters窗口,输出数控机床钻孔文件的命令菜单为:Manufacture=>NC=>NC Drill…,打开的窗口如下: 输出数控机床钻孔文件的具体步骤为: 上图是光绘输出的层控制窗口,还有一个窗口是输出参数的控制窗口,我们通过点击上图的第二个列表项General Parameters来

axingxiansen的博客 2809

linux shell脚本攻略_利用 Shell 脚本实现邮件监控 Linux 系统的内存

公众号关注“杰哥的IT之旅”,选择“星标”,重磅干货,第一时间送达!来自:Linux云计算网络一、安装Linux下面的一个邮件客户端Msmtp软件(类似于一个Foxmail的工具)1、下载安装:http://downloads.sourceforge.net … 206451&big_mirror=0#tarjxvfmsmtp-1.4.16.tar.bz2#cdmsmt...

weixin_39961636的博客 175

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

开源免费,zabbix服务器监控全面实现

文章来源:公众号-智能化IT系统。当前服务器监控有很多方式。普通的监控主要是针对常规指标,例如服务器的基本指标,网络流量等,但是通常定制化的监控支持受限。一些厂商会将服务器监控系统作为产品来卖,针对客户提供定制化监控,但是通常需要较高的成本。Zabbix,开源免费,实现服务器监控,同时支持二次开发。可以通过二次开发,实现具体的SQL语句监控,以及IIS中特定站点的监控。同时支持自定义报警,提前预防...

技术无止境 7691

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

1_小米运维架构服务监控Open-Falcon

运维架构服务监控Open-Falcon更多干货分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建中小型互联网企业架构(干货)python 学习(干货)一、 介绍监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题。监控系统作为一个成熟...

架构师的成长之路的博客 9760

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Python数据分析300个实用技巧】234.自动化与工程化之自动化监控必杀技:用ELK Stack日志分析

看着仪表盘上跳动的监控指标,就像看着自己精心培育的电子宠物——每个波动都尽在掌握。ELK Stack不是银弹,但绝对是每个工程师进阶路上必须掌握的瑞士军刀。记住:好的监控系统不是建好就完事的,要像养花一样定期修剪(删旧索引)、施肥(优化配置)、除虫(处理异常)。编程之路不易,但当你看着报警信息从每天100条降到3条时,那种成就感,啧啧…(突然拍桌)别愣着了!赶紧把你那个还在用grep查日志的破脚本删了,ELK全家桶整起来!下期咱们聊聊《报警消息如何写出程序员愿意看的文案》,保准让你少挨几次运维的刀!

795

【干货】系统管理员必备,服务器监控工具汇总

服务器监控工具对于IT基础架构性能、可视化和系统稳定至关重要。合适的工具能够帮助系统管理员面对服务器故障、应用缓慢、停机、内存泄露和配置依赖等挑战。 Nagios、Zabbix等工具是用于监控整个基础结构监控工具。使用它们,系统管理员可以监控几乎所有内容,比如服务器性能,网络性能以及协议,操作系统,应用等等。但如果企业基础架构没那么复杂,或者只需要监控服务器的性能,而不是使用功能强大的端到端工具,就可以使用轻量级的工具来监控服务器状况。 Ward Ward提供了与服务器有关的主要信息。它与所.

XMWS-IT 319

5.2k Star!一款 Python 实现的美观终端资源监视器

点击上方蓝色小字,关注“涛哥聊Python”重磅干货,第一时间送达来源:开源前哨对于终端爱好者来说,拥有监控系统资源使用情况的能力同样重要,了解系统的资源利用率有助于你在系统维护中做出...

涛哥聊Python 536

万字长文:一文说清如何使用Python进行实时数据流处理和可视化(下)

本篇文章我们将继续学习性能优化与监控、实战案例以及总结展望等内容!

software_test010的博客 796

生产环境机器学习模型监控实战:从数据漂移到业务告警

机器学习模型部署后失效,往往并非代码缺陷,而是数据分布变化、特征退化或预测失准等隐性问题所致。理解数据漂移(Data Drift)与预测分布偏移的原理,是保障线上模型持续可靠的基础;通过PSI、KL散度、置换重要性等轻量可观测技术,可实现低开销实时监控;其技术价值在于将黑盒推理转化为可诊断、可归因、可联动业务指标的确定性过程;广泛应用于金融风控、电商推荐、智能硬件等需高置信决策的场景;本文聚焦真实落地中的分层监控体系、动态阈值设定与告警闭环机制,提供可直接复用的工程化路径。

weixin_33901641的博客 394

不会Python的运维,后来都怎么样了?

运维工程师工作中一定会遇到这样的问题:新业务上线了,导致 CPU 使用过高,内存占用过大,怎么办?服务器上几百上千,甚至数万台,手动运维痛苦不堪?使用现有的开源软件软件,...

Linux云计算数据自学 748

技术干货|临时文件自动化清理工具:从设计到实现的全栈开发指南

本文详细讲解了临时文件自动化管理工具的设计与实现方案。文章分析了临时文件带来的磁盘空间占用、性能影响等问题,提出了包含生命周期管理、智能识别、自动化清理等五大核心功能的企业级解决方案。在技术实现上,推荐使用Python、Go等语言开发,支持本地文件系统、云存储等多种场景,并提供了性能优化策略。文章还对比了主流开源工具,分享了CI/CD集成方案和企业应用案例,最后展望了基于机器学习的智能管理等未来发展方向。该工具能有效解决临时文件管理难题,提升系统稳定性,适合运维和开发人员参考。

网络工程师|十多年企业级运维实战|精通 ‌BGP、OSPF、VLAN、SDN、MPLS、ACL、NetFlow、SNMP、 1293
上一篇: Python干货宝典!玩转内置模块:日历模块
下一篇: Python干货:「文件处理整合」 创建、打开、写入和删除
土豆编程
博客等级 码龄6年 105粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值