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. session和token的区别

    session的使用方式是客户端cookie里存id,服务端session存用户数据,客户端访问服务端的时候,根据id找用户数据 而token一般翻译成令牌,一般是用于验证表明身份的数据或是别的口令数 ...

  2. for…else和while…else

    当while语句配备else子句时,如果while子句内嵌的循环体在整个循环过程中没有执行break语句(循环体中没有break语句,或者循环体中有break语句但是始终未执行),那么循环过程结束后, ...

  3. 数据结构 练习21-trie的原理分析和应用

    前言 今天具体分析一下trie树,包括:原理分析,应用场合,复杂度分析,与hash的比较,源码展现.大部分内容来自互联网,文中会注明出处. 原理分析 主要是hash树的变种,先看下图: 每一个点存储一 ...

  4. javascript 理解对象--- 定义多个属性和读取属性的特性

    一 定义多个属性 ECMAScript5 定义了一个Object.defineProperties()方法,用于定义多个属性.此方法接受两个对象参数: 第一个对象:要添加或修改其属性的对象 第二个对象 ...

  5. 获取Json字符串中某个key对应的value

    JSONObject jsonObj= JSONObject.fromObject(jsonStr); String value= jsonObj.getString(key);

  6. c++之旅:函数模板

    函数模板 函数模板主要是泛型在函数的中的应用,通过泛型可以让函数处理各种各样的数据类型 简单的列子 #include <iostream> using namespace std; tem ...

  7. Django 部署(Apache下)

    前言: 因为需要在服务器下运行python脚本,所以需要搭建Django服务器.所以将自己的学习过程也记录下来,方便日后查阅. 本文环境如下: Ubuntu 16.04  python2.7 Apac ...

  8. CSS3、SVG、Canvas、WebGL动画精选整理

    一.CSS3动画 名称 用途 链接 阴影波纹特效 1.元素hover效果 2.突出表现效果 http://www.jq22.com/code80 横板导航菜单动画 导航菜单 http://www.jq ...

  9. Tomcat之并发优化

    1.位置:      (1)/opt/tomcat7/conf下的server.xml文件中<Connector>节点的配置优化,记得先备份.      (2)出厂默认(在server.x ...

  10. python_threading模块实现多线程详解(转)

    综述 Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势 ...