最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python脚本监控docker容器

来源:动视网 责编:小OO 时间:2020-11-27 14:36:46
文档

python脚本监控docker容器

脚本功能。1、监控CPU使用率。2、监控内存使用状况。3、监控网络流量;具体代码。#,#。/usr/bin/env python# --*-- coding:UTF-8 --*--import sysimport tabimport reimport osimport timefrom docker import Clientimport commandskeys_container_stats_list = ['blkio_stats'.'precpu_stats'.'Network'.'read'.'memory_stats'.'cpu_stats']merit_list=['usage','limit','mem_use_percent','total_cpu_usage'。
推荐度:
导读脚本功能。1、监控CPU使用率。2、监控内存使用状况。3、监控网络流量;具体代码。#,#。/usr/bin/env python# --*-- coding:UTF-8 --*--import sysimport tabimport reimport osimport timefrom docker import Clientimport commandskeys_container_stats_list = ['blkio_stats'.'precpu_stats'.'Network'.'read'.'memory_stats'.'cpu_stats']merit_list=['usage','limit','mem_use_percent','total_cpu_usage'。


本文实例为大家分享了python脚本监控docker容器的方法,供大家参考,具体内容如下

脚本功能:

1、监控CPU使用率

2、监控内存使用状况

3、监控网络流量

具体代码:

#!/usr/bin/env python
# --*-- coding:UTF-8 --*--
import sys
import tab
import re
import os
import time
from docker import Client
import commands
keys_container_stats_list = ['blkio_stats', 'precpu_stats', 'Network', 'read', 'memory_stats', 'cpu_stats']
merit_list=['usage','limit','mem_use_percent','total_cpu_usage','system_cpu_usage','cpu_usage_percent','rx_bytes','tx_bytes']
returnval = None
def start(container_name):
 global container_stats
 conn=Client(base_url='unix://run/docker.sock',version='1.19')
 generator=conn.stats(container_name)
 try:
 container_stats=eval(generator.next())
 except NameError,error_msg:
 pass
# print error_msg
 container_stats=eval(generator.next())
 finally:
 conn.close()
def monitor_docker(monitor_item,merit):
 if merit == 'mem_use_percent':
 start(container_name)
 mem_usage = container_stats['memory_stats']['usage']
 mem_limit = container_stats['memory_stats']['limit']
 returnval = round(float(mem_usage) / float(mem_limit),2)
 print returnval
 elif merit == 'system_cpu_usage':
 start(container_name)
 first_result = container_stats['cpu_stats']['system_cpu_usage']
 start(container_name)
 second_result = container_stats['cpu_stats']['system_cpu_usage']
 returnval = second_result - first_result
 print returnval
 elif merit == 'total_cpu_usage':
 start(container_name)
 first_result = container_stats['cpu_stats']['cpu_usage']['total_usage']
 start(container_name)
 second_result = container_stats['cpu_stats']['cpu_usage']['total_usage']
 returnval = second_result - first_result
 print returnval
 elif merit == 'cpu_usage_percent':
 start(container_name)
 system_use=container_stats['cpu_stats']['system_cpu_usage']
 total_use=container_stats['cpu_stats']['cpu_usage']['total_usage']
 cpu_count=len(container_stats['cpu_stats']['cpu_usage']['percpu_usage'])
 returnval = round((float(total_use)/float(system_use))*cpu_count*100.0,2)
 print returnval
 elif merit == 'rx_bytes':
 command='''docker exec -it api1 ifconfig eth1 | grep "bytes" | awk '{print $2}' | awk -F ':' '{print $2}' '''
 result_one = commands.getoutput(command)
 time.sleep(1)
 command='''docker exec -it api1 ifconfig eth1 | grep "bytes" | awk '{print $2}' | awk -F ':' '{print $2}' '''
 result_second = commands.getoutput(command)
 returnval = round((int(result_second) - int(result_one))/1024,2)
 print returnval
 elif merit == 'tx_bytes':
 command='''docker exec -it api1 ifconfig eth1 | grep "bytes" | awk '{print $6}' | awk -F ':' '{print $2}' '''
 result_one = commands.getoutput(command)
 time.sleep(1)
 command='''docker exec -it api1 ifconfig eth1 | grep "bytes" | awk '{print $6}' | awk -F ':' '{print $2}' '''
 result_second = commands.getoutput(command)
 returnval = round((int(result_second) - int(result_one))/1024,2)
 print returnval
if __name__ == '__main__':
 command='''docker ps | awk '{print $NF}'| grep -v "NAMES"'''
 str=commands.getoutput(command)
 container_counts_list=str.split('
')
 if sys.argv[1] not in container_counts_list:
 print container_counts_list
 print "你输入的容器名称错误,请重新执行脚本,并输入上述正确的容器名称."
 sys.exit(1)
 else:
 container_name = sys.argv[1]
 if sys.argv[2] not in keys_container_stats_list:
 print keys_container_stats_list
 print '你输入的容器监控项不在监控范围,请重新执行脚本,并输入上述正确的监控项.'
 sys.exit(1)
 else:
 monitor_item = sys.argv[2]
 if sys.argv[3] not in merit_list:
 print merit_list
 print "你输入的容器监控明细详细不在监控范围内,请重新执行脚本,并输入上述正确的明细监控指标."
 else:
 merit = sys.argv[3]
 monitor_docker(monitor_item,merit)

文档

python脚本监控docker容器

脚本功能。1、监控CPU使用率。2、监控内存使用状况。3、监控网络流量;具体代码。#,#。/usr/bin/env python# --*-- coding:UTF-8 --*--import sysimport tabimport reimport osimport timefrom docker import Clientimport commandskeys_container_stats_list = ['blkio_stats'.'precpu_stats'.'Network'.'read'.'memory_stats'.'cpu_stats']merit_list=['usage','limit','mem_use_percent','total_cpu_usage'。
推荐度:
标签: 监控 脚本 python
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top