天天看點

python進行linux系統監控python進行linux系統監控

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'],
python進行linux系統監控python進行linux系統監控

     如圖第一行所示,數值為對應的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']

python進行linux系統監控python進行linux系統監控

     是累加值,需要用兩個周期的內插補點除以時間。      關于分區容量的靜态資訊,AWS CloudWatch通過df指令擷取總量、使用量、可用量、檔案系統、挂載點:  

python進行linux系統監控python進行linux系統監控
  • LoadModule:檔案位置/proc/loadavg,metric_list = ['load_one', 'load_five', 'load_fifteen']
python進行linux系統監控python進行linux系統監控
  • MemModule:檔案位置/proc/meminfo,metric_list = ['mem_total, 'cached', 'mem_free', 'mem_available', 'mem_used', 'mem_usage', 'buffers', 'swap_total', 'swap_cached', 'swap_free']
python進行linux系統監控python進行linux系統監控

亞馬遜AWS CloudWatch監控腳本中也是類似的做法直接分析/proc/meminfo檔案:

python進行linux系統監控python進行linux系統監控

Windows系統:      需要wmi和psutil(事實上,psutil這個python庫直接封裝了跨平台的資源使用量監控方法)

  • 靜态系統資訊

     OS資訊:wmiService.Win32_OperatingSystem()      Disk資訊:Win32_LogicalDisk      Mem資訊:Win32_CompiterSystem()      CPU資訊:Win32_Processor()      Net資訊:Win32_NetworkAdapterConfiguration()

  • 動态資源使用率名額資訊

     CPU

python進行linux系統監控python進行linux系統監控

    MEM

python進行linux系統監控python進行linux系統監控

DISK

python進行linux系統監控python進行linux系統監控

NET

python進行linux系統監控python進行linux系統監控