python进行linux系统监控

Linux系统下:

静态指标信息:

名称
描述
单位
所在文件
mem_total
内存总容量
KB
/proc/meminfo
disks
磁盘相关信息
-
-
disks.size
磁盘总容量
KB
/sys/block
disks.partitions
磁盘分区相关信息
-
/proc/partitions
disks.partitions.avail
磁盘分区的可用空间
KB
/sys/block
disks.partitions.on
磁盘分区的挂载点
-
/etc/mtab
disks.partitions.used
磁盘分区的使用空间
KB
/sys/block
disks.partitions.size
磁盘分区的总容量
KB
/sys/block
network
网卡相关信息
-
-
network.hwaddr
网卡 Mac 地址
-
/sbin/ifconfig
network.inet_addr
网卡 IPv4 协议地址
-
/sbin/ifconfig
network.inet_addr
网卡 IPv6 协议地址
-
/sbin/ifconfig
network.mtu
网卡最大传输单元
Bytes
/sbin/ifconfig
network.mask
网卡子网掩码
-
/sbin/ifconfig
cpu
CPU 相关信息
-
-
cpu.cpu_num
CPU 数量
-
/proc/cpuinfo
cpu.width
CPU 字长
Bit
/proc/cpuinfo
cpu.cpu_MHz
CPU 频率
MHz
/proc/cpuinfo
cpu.cache_size
CPU 缓存大小
KB
/proc/cpuinfo
cpu.vendor_id
CPU 制造商
-
/proc/cpuinfo

动态指标信息:

名称
描述
单位
所在文件
mem_total
内存总容量
KB
/proc/meminfo
disks
磁盘相关信息
-
-
disks.size
磁盘总容量
KB
/sys/block
disks.partitions
磁盘分区相关信息
-
/proc/partitions
disks.partitions.avail
磁盘分区的可用空间
KB
/sys/block
disks.partitions.on
磁盘分区的挂载点
-
/etc/mtab
disks.partitions.used
磁盘分区的使用空间
KB
/sys/block
disks.partitions.size
磁盘分区的总容量
KB
/sys/block
network
网卡相关信息
-
-
network.hwaddr
网卡 Mac 地址
-
/sbin/ifconfig
network.inet_addr
网卡 IPv4 协议地址
-
/sbin/ifconfig
network.inet_addr
网卡 IPv6 协议地址
-
/sbin/ifconfig
network.mtu
网卡最大传输单元
Bytes
/sbin/ifconfig
network.mask
网卡子网掩码
-
/sbin/ifconfig
cpu
CPU 相关信息
-
-
cpu.cpu_num
CPU 数量
-
/proc/cpuinfo
cpu.width
CPU 字长
Bit
/proc/cpuinfo
cpu.cpu_MHz
CPU 频率
MHz
/proc/cpuinfo
cpu.cache_size
CPU 缓存大小
KB
/proc/cpuinfo
cpu.vendor_id
CPU 制造商
-
/proc/cpuinfo
  • CPUModule:文件位置/proc/stat,metric_list = ['cpu_user', 'cpu_nice', 'cpu_system', 'cpu_idle', 'cpu_usage', 'cpu_iowait', 'cpu_irq', 'cpu_softirq'],

     如图第一行所示,数值为对应的metric的jiffies。当前总共jifies就是各项相加。两个周期各自的总jiffies相减就是本周期jiffies总使用量,每一项的分别相减就是对应metric的jiffies使用量。做除法即可求出百分比例。
  • DiskModule:

动态信息的文件位置/sys/block/*/stat,metric_list = ['rps', 'wps', 'rrqmps', 'wrqmps', 'rsecps', 'wsecps', 'rkBps', 'wkBps', 'util', 'await', 'avgrq_sz', 'avgqu_sz']
 

 
     是累加值,需要用两个周期的差值除以时间。
     关于分区容量的静态信息,AWS CloudWatch通过df命令获取总量、使用量、可用量、文件系统、挂载点:
 
  • LoadModule:文件位置/proc/loadavg,metric_list = ['load_one', 'load_five', 'load_fifteen']

  • MemModule:文件位置/proc/meminfo,metric_list = ['mem_total, 'cached', 'mem_free', 'mem_available', 'mem_used', 'mem_usage', 'buffers', 'swap_total', 'swap_cached', 'swap_free']

 
亚马逊AWS CloudWatch监控脚本中也是类似的做法直接分析/proc/meminfo文件:
Windows系统:
     需要wmi和psutil(事实上,psutil这个python库直接封装了跨平台的资源使用量监控方法)
  • 静态系统信息

OS信息:wmiService.Win32_OperatingSystem()

     Disk信息:Win32_LogicalDisk
     Mem信息:Win32_CompiterSystem()
     CPU信息:Win32_Processor()
     Net信息:Win32_NetworkAdapterConfiguration()
  • 动态资源使用率指标信息

CPU

    MEM
DISK
NET

 
 
 

python进行linux系统监控的更多相关文章

  1. Linux系统监控实用工具Glances

    Linux系统监控实用工具Glances Glances安装 Glances安装要求:python >= 2.6 和 psutil >= 0.4.1 1.第一步,安装了python-> ...

  2. [转]linux 系统监控、诊断工具之 IO wait

    1.问题: 最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端.本机都没问题,但是没想到上了第二份日志之后,问题来了: 集群中的某台机器 top 看到负载巨高,集群中的机器 ...

  3. linux系统监控常用工具

    linux系统监控常用工具 一.系统核心工具包(coreutils) 1./bin/df 报告系统的磁盘空间用量 df -h  显示磁盘分区fdisk -l 2./bin/uname 显示系统信息 u ...

  4. linux系统监控sar命令

    linux系统监控sar命令详解 sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告, 包 ...

  5. Linux系统监控命令及如何定位到Java线程

    >>PID.TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID ...

  6. 使用Python获取Linux系统的各种信息

    哪个Python版本? 当我提及Python,所指的就是CPython 2(准确的是2.7).我会显式提醒那些相同的代码在CPython 3 (3.3)上是不工作的,以及提供一份解释不同之处的备选代码 ...

  7. Linux记录-linux系统监控命令汇总

    命令 功能应用 用法举例     free 查看内存使用情况,包括物理内存和虚拟内存 free -h或free -m     vmstat 对系统的整体情况进行统计,包括内核进程.虚拟内存.磁盘.陷阱 ...

  8. Linux系统监控命令及定位Java线程

    1.PID.TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID.GID:~ ...

  9. Shell 脚本实现 Linux 系统监控

    一.实验介绍 1.1 实验内容 本课程实现 shell 脚本监控系统的各项参数,并可以将脚本加入系统环境中,可以直接在终端里执行.还添加了几个参数,一个脚本可以执行不同的操作. 1.2 知识点 本实验 ...

随机推荐

  1. springboot 整合 CXF 版本异常 java.lang.NoClassDefFoundError:ServletRegistrationBean

    在使用SpringBoot 项目整合webservice组件 CXF的时候,在启动时,抛出异常如下,查阅资料初步判断为版本问题.升级到高版本后正常启动. cxf 刚开始使用版本  3.1.7 后更新为 ...

  2. knockout 学习使用笔记----绑定map--双向绑定

    简单的方式,使用 knockout.mapping.js. 1.引入knockout.mapping.js. 2.声明模型 var model = { task:null, feedbacks:[], ...

  3. validateJarFile jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

    项目环境 Maven.Tomcat7.0.27.jdk1.8.0_111 报这个错误的原因是项目中依赖 javax.servlet-api 包和Tomcat本身的包冲突了,Tomcat本身也有这个包 ...

  4. java中使用Ehcache缓存数据

    知识点:在java项目中,使用ehcache缓存数据 参考博客:http://www.cnblogs.com/jingmoxukong/p/5975994.html ()概述 Ehcache是一个纯J ...

  5. input[type="file"]的样式以及文件名的显示

    如何美化input[type="file"] 基本思路是: (1)首先在 input 外层套一个 div : (2)将 div 和 input 设置为一样大小(width和heig ...

  6. 解题报告:hdu1257 LIS裸题

    2017-09-02 17:28:44 writer:pprp 那个裸题练练手,讲解在之前的博客中提到了 代码如下: /* @theme:hdu1257 @writer:pprp @begin:17: ...

  7. .net知识点汇总

    死锁的必要条件?怎么克服? 答:系统的资源不足,进程的推进的顺序不合适,资源分配不当,一个资源每次只能被一个进程使用,一个资源请求资源时,而此时这个资源已阻塞,对已获得资源不放,进程获得资源时,未使用 ...

  8. 关于Visual Studio 2010自动添加头部注释信息

    作为一个万年潜水党,不关这一篇文章技术含量如何,也算是一个好的开始吧.   在日常的开发中我们经常需要为类库添加注释和版权等信息,这样我们就需要每次去拷贝粘贴同样的文字,为了减少这种重复性的工作,我们 ...

  9. JavaScript高级程序设计-读书笔记(1)

    第1章 JavaScript简介 JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: l        ECMAScript:提供核心语言功能: l        文 ...

  10. Educational Codeforces Round 13 A、B、C、D

    A. Johny Likes Numbers time limit per test 0.5 seconds memory limit per test 256 megabytes input sta ...