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. Django的orm练习---多表查询

    Django的orm练习---多表查询 表关系如下 表结构 : from django.db import models # Create your models here. # 多对多-----&g ...

  2. AtCoder Regular Contest 080 D - Grid Coloring

    地址:http://arc080.contest.atcoder.jp/tasks/arc080_b 题目: D - Grid Coloring Time limit : 2sec / Memory ...

  3. jstack用法

    第一步先找出Java进程ID,我部署在服务器上的Java应用名称为mrf-center: root@ubuntu:/# ps -ef | grep mrf-center | grep -v grep ...

  4. Uninstalling JIRA applications from Linux

     If you wish to re-install JIRA in 'unattended mode', do not uninstall your previous installation of ...

  5. servlet的总结

    tomcat在启动的时候 加载webapp下面的web.xml,加载里面定义的servlet. web.xml文件有两部分:servlet类定义和servlet映射定义每个被载入的servlet类都有 ...

  6. 线代笔记 #01# 几何水平上的理解 VS. 数值水平上的理解

    源: 线性代数的本质 内容来自字幕. Let me quote without further comment from Dieudonné's "Foundations of Modern ...

  7. bat(续五)-获取批处理文件所在路径

    获取批处理文件所在路径        在开发时,经常需要使用批处理运行一些程序,java程序 犹其是这样,往往需要运行时根路径.Hardcode一个路径总是令自己觉得不自在,例如一个java程序从一台 ...

  8. [CF914D]Bash and a Tough Math Puzzle

    给定一个数列$a_1,a_2,...,a_n$,支持两种操作 1 l r x,猜测数列中[l,r]位置上的数的最大公约数$x$,判断这个猜测是否是接近正确的.如果我们可以在数列[l,r]位置中改动至多 ...

  9. <The old man and the sea>

    Every day is a new day. It is better to be lucky. But i would rather be exact. Then when luck comes ...

  10. ThreadPoolExecutor源码浅析

    目录 初始化 ctl变量 添加任务 addWorker方法 worker实现 执行任务 关闭连接池 参考 初始化 ThreadPoolExecutor重载了多个构造方法,不过最终都是调用的同一个: p ...