精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

【博文推薦】Docker高級(jí)應(yīng)用之資源監(jiān)控

云計(jì)算
本篇博文出自51CTO博客博主dl528888。在本文中,博主將與大家分享他在開發(fā)Docker平臺(tái)時(shí)是如何監(jiān)控資源與進(jìn)行圖像展示的。

  本篇博文出自51CTO博客博主吟—技術(shù)交流,有任何問題請(qǐng)進(jìn)入博主頁(yè)面互動(dòng)討論!

博文地址:http://dl528888.blog.51cto.com/2382721/1635951

最近忙著開發(fā)docker平臺(tái),所以挺久沒有更新博客了,今天給大家分享一下,我開發(fā)docker平臺(tái)里如何監(jiān)控資源與進(jìn)行圖像展示的。

默認(rèn)docker 1.5版本有stats命令查看容器的cpu使用率、內(nèi)存使用量與網(wǎng)絡(luò)流量,但此功能有2個(gè)必須:

1、必須是docker 1.5版本

2、必須使用默認(rèn)docker0的網(wǎng)橋(如果你使用ovs這樣非原生的網(wǎng)橋無(wú)法獲取數(shù)據(jù)的)

我開發(fā)的監(jiān)控里docker是1.5版本,并且通過使用ifconfig來(lái)獲取容器rx或rx量來(lái)獲取容器流量,解決了必須使用docker默認(rèn)網(wǎng)橋才可以獲取流量數(shù)據(jù)。

下面是容器資源監(jiān)控效果圖

1、平臺(tái)里資源監(jiān)控界面

 

Docker高級(jí)應(yīng)用之資源監(jiān)控

2、查看容器yangjing-test的cpu使用率資源監(jiān)控

 

Docker高級(jí)應(yīng)用之資源監(jiān)控

3、查看內(nèi)存使用量資源監(jiān)控

 

Docker高級(jí)應(yīng)用之資源監(jiān)控

4、查看容器網(wǎng)絡(luò)流量信息

 

Docker高級(jí)應(yīng)用之資源監(jiān)控

#p#

下面是監(jiān)控?cái)?shù)據(jù)收集腳本信息

使用python寫的,由于需要往mysql里寫入數(shù)據(jù),所以需要安裝MySQLdb模塊以及服務(wù)端mysql開啟賬號(hào)

  1. [root@ip-10-10-29-201 code]# cat collect_docker_monitor_data_multi.py 
  2. #!/usr/bin/env python 
  3. #-*- coding: utf-8 -*- 
  4. #author:Deng Lei 
  5. #email: dl528888@gmail.com 
  6. from docker import Client 
  7. import os 
  8. import socket, struct, fcntl 
  9. import etcd 
  10. import MySQLdb 
  11. import re 
  12. import multiprocessing 
  13. import subprocess 
  14. import time 
  15. def get_local_ip(iface = 'em1'): 
  16.     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
  17.     sockfd = sock.fileno() 
  18.     SIOCGIFADDR = 0x8915 
  19.     ifreq = struct.pack('16sH14s', iface, socket.AF_INET, '\x00'*14
  20.     try
  21.         res = fcntl.ioctl(sockfd, SIOCGIFADDR, ifreq) 
  22.     except
  23.         return None 
  24.     ip = struct.unpack('16sH2x4s8x', res)[2
  25.     return socket.inet_ntoa(ip) 
  26. def docker_container_all(): 
  27.     docker_container=docker_client.containers(all=True
  28.     container_name=[] 
  29.     container_stop_name=[] 
  30.     for i in docker_container: 
  31.         container_name.append(i['Names']) 
  32.     for b in container_name: 
  33.         for c in b: 
  34.             container_stop_name.append(c[1::]) 
  35.     return container_stop_name 
  36. def docker_container_run(): 
  37.     docker_container=docker_client.containers(all=True
  38.     container_name=[] 
  39.     container_stop_name=[] 
  40.     for i in docker_container: 
  41.         if re.match('Up',i['Status']): 
  42.             container_name.append(i['Names']) 
  43.     for b in container_name: 
  44.         for c in b: 
  45.             container_stop_name.append(c[1::]) 
  46.     return container_stop_name 
  47. def check_container_stats(name): 
  48.     container_collect=docker_client.stats(name) 
  49.     old_result=eval(container_collect.next()) 
  50.     new_result=eval(container_collect.next()) 
  51.     container_collect.close() 
  52.     cpu_total_usage=new_result['cpu_stats']['cpu_usage']['total_usage'] - old_result['cpu_stats']['cpu_usage']['total_usage'
  53.     cpu_system_uasge=new_result['cpu_stats']['system_cpu_usage'] - old_result['cpu_stats']['system_cpu_usage'
  54.     cpu_num=len(old_result['cpu_stats']['cpu_usage']['percpu_usage']) 
  55.     cpu_percent=round((float(cpu_total_usage)/float(cpu_system_uasge))*cpu_num*100.0,2
  56.     mem_usage=new_result['memory_stats']['usage'
  57.     mem_limit=new_result['memory_stats']['limit'
  58.     mem_percent=round(float(mem_usage)/float(mem_limit)*100.0,2
  59.     #network_rx_packets=new_result['network']['rx_packets'] 
  60.     #network_tx_packets=new_result['network']['tx_packets'] 
  61.     network_check_command="""docker exec %s ifconfig eth1|grep bytes|awk -F ':' '{print $2,$3}'|awk -F '(' '{print $1,$2}'|awk -F ')' '{print $1}'|awk '{print "{\\"rx\\":"$1",\\"tx\\":"$2"}"}'"""%name 
  62.     network_old_result=eval(((subprocess.Popen(network_check_command,shell=True,stdout=subprocess.PIPE)).stdout.readlines()[0]).strip('\n')) 
  63.     time.sleep(1
  64.     network_new_result=eval(((subprocess.Popen(network_check_command,shell=True,stdout=subprocess.PIPE)).stdout.readlines()[0]).strip('\n')) 
  65.     #unit KB 
  66.     network_rx_packets=(int(network_new_result['rx']) - int(network_old_result['rx']))/1024 
  67.     network_tx_packets=(int(network_new_result['tx']) - int(network_old_result['tx']))/1024 
  68.     collect_time=str(new_result['read'].split('.')[0].split('T')[0])+' '+str(new_result['read'].split('.')[0].split('T')[1]) 
  69.     msg={'Container_name':name,'Cpu_percent':cpu_percent,'Memory_usage':mem_usage,'Memory_limit':mem_limit,'Memory_percent':mem_percent,'Network_rx_packets':network_rx_packets,'Network_tx_packets':network_tx_packets,'Collect_time':collect_time} 
  70.     #write_mysql(msg) 
  71.     return msg 
  72. def write_mysql(msg): 
  73.     container_name=msg['Container_name'
  74.     search_sql="select dc.id from docker_containers dc,docker_physics dp where dc.container_name='%s' and dp.physics_internal_ip='%s';"%(container_name,local_ip) 
  75.     n=mysql_cur.execute(search_sql) 
  76.     container_id=[int(i[0]) for i in mysql_cur.fetchall()][0
  77.     insert_sql="insert into docker_monitor(container_id,cpu_percent,memory_usage,memory_limit,memory_percent,network_rx_packets,network_tx_packets,collect_time) values('%s','%s','%s','%s','%s','%s','%s','%s');"%(container_id,msg['Cpu_percent'],msg['Memory_usage'],msg['Memory_limit'],msg['Memory_percent'],msg['Network_rx_packets'],msg['Network_tx_packets'],msg['Collect_time']) 
  78.     n=mysql_cur.execute(insert_sql) 
  79. if __name__ == "__main__"
  80.     local_ip=get_local_ip('ovs1'
  81.     if local_ip is None
  82.   local_ip=get_local_ip('em1'
  83.     etcd_client=etcd.Client(host='127.0.0.1', port=4001
  84.     docker_client = Client(base_url='unix://var/run/docker.sock', version='1.17'
  85.     mysql_conn=MySQLdb.connect(host='10.10.27.10',user='ops',passwd='1FE@!#@NVE',port=3306,charset="utf8"
  86.     mysql_cur=mysql_conn.cursor() 
  87.     mysql_conn.select_db('devops'
  88.     #docker_container_all_name=docker_container_all() 
  89.     docker_container_run_name=docker_container_run() 
  90.     if len(docker_container_run_name) == 1
  91.   num=1 
  92.     elif len(docker_container_run_name) >= 4 and len(docker_container_run_name) <=8
  93.   num=4 
  94.     elif len(docker_container_run_name) >8 and len(docker_container_run_name) <=15
  95.   num=8 
  96.     elif len(docker_container_run_name) >15 and len(docker_container_run_name) <=30
  97.   num=20 
  98.     else
  99.   num=40 
  100.     pool = multiprocessing.Pool(processes=num) 
  101.     scan_result=[] 
  102.     #collect container monitor data 
  103.     for i in docker_container_run_name: 
  104.         pool.apply_async(check_container_stats, (i,)) 
  105.         scan_result.append(pool.apply_async(check_container_stats, (i,))) 
  106.     pool.close() 
  107.     pool.join() 
  108.     result=[] 
  109.     for res in scan_result: 
  110.         if res.get() is not None
  111.       write_mysql(res.get()) 
  112.   else
  113.       print 'fail is %s'%res.get() 
  114.     mysql_conn.commit() 
  115.     mysql_cur.close() 
  116.     mysql_conn.close() 

下面是把此腳本放入crontab里每分鐘收集一下

  1. */1 * * * * python /root/collect_docker_monitor_data_multi.py >>/root/docker_log/docker_monitor.log 2>&1 

另外說明一下,上面的監(jiān)控?cái)?shù)據(jù)圖形化使用highstock,使用ajax進(jìn)行動(dòng)態(tài)加載數(shù)據(jù),每次獲取容器所有時(shí)間監(jiān)控?cái)?shù)據(jù)。有問題請(qǐng)留言。
 

 

責(zé)任編輯:Ophira 來(lái)源: 51CTO
相關(guān)推薦

2015-07-01 10:25:07

Docker開源項(xiàng)目容器

2015-06-17 09:43:45

云計(jì)算應(yīng)用傳統(tǒng)企業(yè)應(yīng)用云平臺(tái)

2015-05-15 10:04:28

localhost

2014-11-25 11:33:35

2011-03-29 12:45:28

Cacti

2015-04-13 11:34:56

Windows DocNano ServerPaaS

2011-03-29 13:15:10

Cacti主機(jī)模板

2011-03-29 13:06:29

Cacti作圖模板

2015-06-17 09:34:09

軟件定義存儲(chǔ) 云存儲(chǔ)

2014-12-29 12:27:43

ZabbixSNMP

2013-12-21 19:58:32

SDN應(yīng)用資源管理平臺(tái)SDN

2015-09-29 10:26:51

pythonlogging模塊

2015-06-15 13:06:23

項(xiàng)目項(xiàng)目經(jīng)驗(yàn)

2014-12-12 10:46:55

Azure地緣組affinitygro

2014-07-10 10:43:49

zabbix主從監(jiān)控

2015-05-27 09:17:50

AzureDocker

2015-04-22 10:28:40

2015-07-29 13:46:27

OpenStackIcehouse私有云實(shí)戰(zhàn)部署

2014-12-01 10:33:51

Python

2015-05-11 10:10:16

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

97成人在线视频| 久久久久亚洲精品中文字幕| 久久不见久久见国语| 亚洲视频你懂的| 热门国产精品亚洲第一区在线| 视频区 图片区 小说区| 国产又爽又黄的视频| 97精品资源在线观看| 国产午夜精品一区二区三区视频| 久久久久免费视频| 男人天堂1024| 亚洲精品一级片| 欧美伊人久久| 欧美疯狂性受xxxxx喷水图片| 欧美亚洲一级二级| 精品肉丝脚一区二区三区| 亚洲一区导航| 午夜精品免费在线观看| 成人在线观看91| 久久久久性色av无码一区二区| 日韩成人一级| 欧美日韩在线视频一区| 91视频免费进入| 永久免费看mv网站入口| 欧美一区=区三区| 国产精品天天摸av网| 国产精品久久久久久久一区探花| 欧美激情aaa| 亚洲欧洲自拍| 国产欧美日韩精品在线| 国产精品视频一区国模私拍| 国产极品一区二区| 蜜臀久久精品| 久久久综合精品| 国产精品电影网站| 亚欧精品视频一区二区三区| 日韩在线观看不卡| 中文字幕一区二区三区蜜月| 亚洲iv一区二区三区| 一区二区在线观看免费视频| 91精品导航| 精品动漫一区二区| 日本免费一区二区三区| 丁香六月色婷婷| 韩国成人精品a∨在线观看| 亚洲精品久久久蜜桃| 成人av.网址在线网站| 羞羞在线观看视频| 99久久99九九99九九九| 欧美在线短视频| 国产美女视频免费| 日韩性xxxx| 日韩二区三区四区| 久久精品一区中文字幕| www日本在线观看| 欧美13videosex性极品| 亚洲午夜视频在线| 欧美一区二区三区四区五区六区| 日韩在线一区二区三区四区| 福利一区二区在线| 欧洲日韩成人av| 91看片在线播放| 日韩精品dvd| 精品国产髙清在线看国产毛片| 日韩av在线综合| 免费在线观看黄色| 爽成人777777婷婷| 精品国产乱码久久久久久夜甘婷婷 | www.玖玖玖| 国产黄色在线播放| 国产精品综合视频| 国产99久久精品一区二区永久免费| 三级黄色片在线观看| 久久成人综合| 欧美精品在线免费播放| av黄色免费网站| 九九热精品视频在线观看| 一区二区三区四区视频| 精品一区二区三区四区五区六区| 精品日本视频| 欧美色国产精品| 国产玉足脚交久久欧美| 99精品老司机免费视频| 91视频.com| 福利视频久久| www日本高清视频| 日本美女一区二区三区视频| 性欧美办公室18xxxxhd| 国产第一页浮力| 精品日韩毛片| 亚洲精品美女在线观看播放| 亚洲欧美激情一区二区三区| 成人福利一区二区| 日韩欧美中文字幕在线播放| 99re8这里只有精品| 国产精品久久久久久久龚玥菲| 国产精品久久久久久久久快鸭| 欧美 亚洲 视频| jzzjzzjzz亚洲成熟少妇| jizz一区二区| 高清一区二区三区视频| 日本大臀精品| 99精品欧美一区二区三区小说| 亚洲自拍欧美另类| 亚洲aⅴ乱码精品成人区| 成人一区在线观看| 97视频中文字幕| 天堂在线中文资源| 99免费精品在线| 亚洲国产综合自拍| h视频网站在线观看| 一级日本不卡的影视| 在线观看污视频| 国精产品一区| 亚洲精品网站在线观看| 老司机午夜免费福利视频| 欧美7777| 欧美艳星brazzers| 国产精品果冻传媒| 韩国精品福利一区二区三区 | 九热视频在线观看| 成人性生活av| 一本色道久久综合狠狠躁的推荐| 午夜一区二区视频| 国产欧美视频在线| 日韩欧美中文字幕精品| 精品1卡二卡三卡四卡老狼| 日韩极品一区| 国产成人精品一区二区三区| 无码人妻久久一区二区三区 | 日本精品视频在线| 成人乱码一区二区三区| 亚洲欧美一区二区在线观看| 亚洲欧洲精品一区二区| 亚洲第一av| 亚洲国产精品资源| 亚洲午夜福利在线观看| 国产亚洲一卡2卡3卡4卡新区| 亚洲性生活视频| 国产精品www爽爽爽| 国产高清久久| 欧美国产视频一区二区| 日韩乱码一区二区| 久久综合九色| 国产在线观看一区二区三区| www.亚洲天堂.com| 成人免费在线视频观看| 校园春色 亚洲色图| 亚洲成人黄色| 亚洲欧美第一页| 肉色超薄丝袜脚交69xx图片| 日韩在线卡一卡二| 日韩av在线电影观看| 国内精品久久久久国产| 在线播放一区二区三区| 中文字幕第3页| 一区三区视频| 国产精品福利网| 免费福利在线观看| 悠悠色在线精品| 色综合五月婷婷| 理论片一区二区在线| 中文字幕一精品亚洲无线一区 | 欧美精品日韩少妇| 欧美日韩不卡一区| 你懂的在线观看网站| 亚洲小说欧美另类社区| 久久久久久久久久久一区| 婷婷视频在线| 精品成人久久av| 少妇大叫太粗太大爽一区二区| 亚洲综合精品四区| 亚洲xxxxx性| 性欧美videoshd高清| 91福利在线免费观看| 日本精品一二三区| 亚洲一区二区三区高清| 91视频免费进入| a级片免费在线观看| 欧美人与性动xxxx| 久久久精品视频免费观看| 懂色中文一区二区在线播放| 黄色一级片播放| 日韩影院二区| 成人18视频| 最近高清中文在线字幕在线观看| 欧美日韩国产影片| 国产亚洲欧美精品久久久www| jizz一区二区| 日韩av在线中文| 欧美**vk| 91在线观看免费网站| av中文天堂在线| 日韩一区二区三区精品视频| 欧美一级视频免费观看| 国产精品欧美经典| av丝袜天堂网| 欧美aaaaa级| 久久久久久有精品国产| 黄色在线视频观看网站| 欧美日韩一区二区在线播放| 国产农村妇女精品一区| 丁香激情综合国产| 992kp快乐看片永久免费网址| 亚洲经典一区| 亚洲一区二区三区在线免费观看| 91高清视频在线观看| 色悠悠久久久久| 中国老头性行为xxxx| 中文无字幕一区二区三区 | 中文字幕乱码一区二区| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲熟妇无码av| 成人三级在线视频| 日韩成人精品视频在线观看| 亚洲欧美日本日韩| 激情成人开心网| 色综合咪咪久久网| 日本午夜精品一区二区| 久久aimee| 91人人爽人人爽人人精88v| 欧美天堂视频| 97不卡在线视频| 久久av色综合| 精品久久久久久亚洲综合网| 日本视频www| 亚洲人成电影网站色mp4| 久久丫精品忘忧草西安产品| 日韩中文字幕91| 99热在线这里只有精品| 亚洲欧洲日本一区二区三区| 久久久婷婷一区二区三区不卡| 日本一区二区乱| 亚洲www在线观看| 亚洲精品一区av| 国产精品色视频| 欧美在线va视频| 久久精品2019中文字幕| 国产鲁鲁视频在线观看免费| 亚洲欧美国内爽妇网| 亚洲欧洲精品视频| 亚洲精品国产欧美| 天天干天天爱天天操| 一本久久综合亚洲鲁鲁五月天| 精品99在线观看| 91色porny| 97香蕉碰碰人妻国产欧美| 久热精品在线| av动漫在线观看| 久久久久99| 亚洲AV无码成人精品一区| 青草国产精品| 国产伦精品一区二区三区四区免费| 中文在线8资源库| 欧美有码在线观看| 高h视频在线观看| 亚洲精品99999| 五月天激情开心网| 亚洲欧美日韩天堂一区二区| 欧美精品a∨在线观看不卡| 亚洲欧美日韩视频一区| 91精彩视频在线观看| 最近2019中文字幕一页二页| 看女生喷水的网站在线观看| 久久成人精品视频| 黄色在线播放| 最近2019中文免费高清视频观看www99 | 最近的2019中文字幕免费一页| aiai在线| 欧美区在线播放| 欧美视频免费一区二区三区| 亚洲人成在线一二| 动漫av一区二区三区| 亚洲国内精品在线| 麻豆app在线观看| 日韩在线视频播放| 1区2区在线观看| 中国china体内裑精亚洲片| 秋霞成人影院| 欧美高清第一页| 成人性教育av免费网址| 91精品久久久久久久久久| 97久久精品人人澡人人爽| 欧美精品一区二区三区在线播放 | 色94色欧美sute亚洲线路二| 国产99久久久久久免费看| 91一区二区三区在线播放| 日韩中文字幕电影| 一区二区中文字幕在线| 国产日韩欧美日韩大片| 亚洲一区导航| 精品国产免费人成电影在线观...| 成人黄色在线| 99re国产| 精品国产91| 亚洲熟妇无码av在线播放| 欧美理论电影大全| 国产一级大片免费看| 丝袜美腿成人在线| 中文字幕亚洲日本| 国产欧美日产一区| 久草视频免费播放| 欧美午夜在线一二页| 高潮一区二区三区乱码| 伊人久久免费视频| freexxx性亚洲精品| 国产裸体写真av一区二区| 加勒比色老久久爱综合网| 一本久久a久久精品vr综合| 欧美一级精品| 国产不卡一区二区视频| 亚洲欧洲午夜| 日韩中文字幕a| 91美女片黄在线观看91美女| avtt天堂在线| 一区二区三区四区高清精品免费观看| 青青视频在线免费观看| 精品欧美乱码久久久久久1区2区| 91免费在线| 青青青国产精品一区二区| 亚洲精品aⅴ| 中文字幕欧美日韩一区二区| 婷婷成人基地| 91av俱乐部| 91视频在线观看免费| 国产在线综合网| 欧美日韩国产精品一区二区三区四区| 国产一区二区小视频| 日韩美女视频一区二区在线观看| 亚洲第一大网站| 精品久久国产精品| 成人国产激情| 无码免费一区二区三区免费播放| 97色伦图片97综合影院| 三级4级全黄60分钟| 美国毛片一区二区| 北条麻妃亚洲一区| 国产精品久久99| 中国一区二区视频| 亚洲天堂精品在线| 极品美女一区| 欧美极品色图| 亚洲综合精品四区| 国产偷人妻精品一区| 欧美国产欧美综合| 极品国产91在线网站| 亚洲美女久久久| 不卡一二三区| 欧洲精品国产| 日韩国产欧美在线观看| 日本xxxxxxxxx18| 亚洲精品va在线观看| 国产免费高清av| 国产婷婷色综合av蜜臀av| 毛片免费不卡| 成人看片人aa| 午夜欧美视频| 亚洲成a人片在线www| 亚洲成人一区在线| 中日韩av在线| 久久五月天综合| 日韩最新av| 国产精品va无码一区二区| 26uuu另类欧美| 欧美男人天堂网| 久久久极品av| 成人性生交大片免费看中文视频| 色女人综合av| 久久成人羞羞网站| 精品人妻少妇嫩草av无码| 色婷婷精品大在线视频| av在线首页| 亚洲一区二区三区乱码aⅴ| 国内激情久久| 中文字幕精品一区二区三区在线| 91亚洲精品久久久蜜桃| 国产精品va无码一区二区三区| 91精品久久久久久蜜臀| 色www永久免费视频首页在线| 国产精品一区二区三区免费| 亚洲欧美清纯在线制服| 日本精品久久久久中文| 日韩一区二区三区高清免费看看| 国产精品电影| 99久久无色码| 亚洲欧美日本视频在线观看| 国产在线观看免费视频软件| 精品少妇一区二区三区视频免付费 | 91精品国产91久久久久久久久 | 中文字幕亚洲欧美| 51精品国产| www.欧美日本| 亚洲综合色丁香婷婷六月图片| 青青草在线播放| 91麻豆桃色免费看| 亚洲男人影院| 欧洲猛交xxxx乱大交3| 亚洲天堂男人天堂| 久久在线观看| 久久久久免费精品|