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