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. 进程 、进程组、会话、控制终端之间的关系 (转载 http://blog.csdn.net/yh1548503342/article/details/41891047)

    一个进程组可以包含多个进程 进程组中的这些进程之间不是孤立的,他们彼此之间或者存在者父子.兄弟关系,或者在功能有相近的联系. 那linux为什么要有进程组呢?其实提供进程组就是方便管理这些进程.假设要 ...

  2. java 定时器实现

    java工程中,不免遇到需要定时处理任务的需求,有如下两种方法: 1.使用java.util.TimerTask 2.使用Quartz 一.java.util.TimerTask Timer time ...

  3. 斐迅面试记录—SSL和TLS的区别

    SSL 是洋文“Secure Sockets Layer”的缩写,中文叫做“安全套接层”.它是在上世纪90年代中期,由网景公司设计的.(顺便插一句,网景公司不光发明了 SSL,还发明了很多 Web 的 ...

  4. tensorflow中使用tf.variable_scope和tf.get_variable的ValueError

    ValueError: Variable conv1/weights1 already exists, disallowed. Did you mean to set reuse=True in Va ...

  5. Eclipse 导入Maven 项目报错

    新建Maven项目时出错:org.apache.maven.archiver.MavenArchiver.getManifest   新建Maven项目时出错:org.apache.maven.arc ...

  6. GZFramework错误(升级修改)日志

    sqlserver下事务中处理出现为初始化selectcommand的connection属性修改CommandDataBase中的PrepareCommand方法

  7. rootpw密码生成方法/c-exit

    linux kickstart文件里rootpw密码可以使用明文,也可以使用加密过的值,这里主要介绍下三种加密方法:md5.sha256.sha512 使用明文的方法 rootpw "pas ...

  8. MLlib1.6指南笔记

    MLlib1.6指南笔记 http://spark.apache.org/docs/latest/mllib-guide.html spark.mllib RDD之上的原始API spark.ml M ...

  9. 有道云笔记配合MPic+七牛云 自制MarkDown文档图床(适用Typora)

    注:从有道云笔记v6.5开始,有道云笔记会员可以使用MarkDown有道自带的图床.(但是非会员可以采用下面的七牛云图床+MarkDown方法) 0x00 前言 一直用有道云笔记,粘贴图片,做笔记没问 ...

  10. 如何用纯 CSS 创作一个跳 8 字型舞的 loader

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gKNMMm 可交互视频 此视频是可 ...