一.系统cpu和mem获取:
(python36env) [vagrant@CentOS cmdb]$ ansible all -m setup -i etc/hosts 用结果ansible中setup模块如下图中数据,图中可看出
内存数据像free命令的结果。但是可以发现setup模块中cpu数据少,所以内存我就用setup模块,而cpu我自己做
cpu,内存监控: (1)收集: 主动 开发agent--大量集群适用 被动 ansible--频次高适用 被动方式:每分钟采集所有(少量)主机的cpu 内存使用率 (2)展示: echarts图表 自己写脚本:获取cpu, 内存使用率 获取信息:---前提是你受控机上得有如下这些命令 top命令 free命令 vmstat 读文件/proc/meminfo /proc/stats python 3rd api使用: psutil
python如何调用系统命令,并且获取结果:
top
ansible
copy
command
(python36env) [vagrant@CentOS cmdb]$ python >>> import os >>> os.system >>> os.popen >>> os.system('top -n 1') 它会有如上图中输出到控制台
>>> os.popen('top -n 1')
<os._wrap_close object at 0x7fcafe52e278>
>>> fh = os.popen('top -n 1')
>>> fh.readlines()
>>>lines = fh.readlines()
>>>lines[2]
'%Cpu(s):x1b[mx0fx1b[1m 10,3 x1b[......
(1)etc/resource.py:
#encoding: utf-8 import os if __name__ == '__main__': fhandler = os.popen('top -n 1 -b') lines = fhandler.readlines() cpu_line = lines[2] ---这是cpu的 cpu_line = cpu_line.split()[1] cpu = float(cpu_line[:cpu_line.find('%')]) mem_line = lines[3] ---这是内存的 mem = mem_line.split() mem = 100 * float(mem[3][:-1]) / float(mem[1][:-1]) print(cpu) print(mem) fhandler.close()
1
2
3