日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zabbix企业应用之监控docker容器资源情况

發布時間:2025/3/8 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zabbix企业应用之监控docker容器资源情况 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于docker的監控,無論開源的CAdvisor、Data Dog還是我自己寫的監控(http://dl528888.blog.51cto.com/2382721/1635951),不是通過docker的stats?api就是使用socket來進行。

單獨看一個主機的監控項還行,比如只查看容器test的cpu、內存還是網絡,但如果想批量查看的話,比如查看容器test1-test10的所有監控項或者只是看cpu資源使用比較費勁了,現在我使用zabbix通過docker stats api監控容器資源,然后使用lld技術自動監控,使用zatree進行批量展示監控效果。

不說太多的廢話,直接看效果圖,滿足自己需求在繼續深入研究

一、效果圖

1、監控容器cpu使用率

2、監控容器內存使用量

3、監控容器網絡流量值

目前我監控docker就監控這些東西,至于其他的資源個人有需求可以自己寫。

下面是如何部署

二、部署

1、環境

我的zabbix是2.0.6,所以想使用我的模板,必須是2.0.x以上的zabbix版本;

docker使用1.6版本,如果想使用我的監控,docker必須大于1.5;

需要安裝jq,如何安裝參考http://stedolan.github.io/jq/tutorial/

監控客戶端里必須安裝docker的python 模塊

安裝的話,可以使用

easy_install?docker-py

2、客戶端部署

A.在zabbix_agentd.conf最后添加以下內容

UserParameter=zabbix_low_discovery[*],/bin/bash?/usr/local/zabbix/bin/zabbix_low_discovery.sh?$1 UserParameter=docker_stats[*],sudo?/usr/local/zabbix/bin/zabbix_monitor_docker.py?$1?$2

B.把下面的腳本放到/usr/local/zabbix/bin里,然后給與755權限,并修改用戶與組為zabbix

[root@ip-10-10-125-8?bin]#?cat?zabbix_monitor_docker.py #!/usr/bin/env?python #-*-?coding:?utf-8?-*- #author:Deng?Lei #email:?dl528888@gmail.com from?docker?import?Client import?os import?re import?sys import?subprocess import?time def?check_container_stats(container_name,collect_item):container_collect=docker_client.stats(container_name)old_result=eval(container_collect.next())new_result=eval(container_collect.next())container_collect.close()if?collect_item?==?'cpu_total_usage':result=new_result['cpu_stats']['cpu_usage']['total_usage']?-?old_result['cpu_stats']['cpu_usage']['total_usage']elif?collect_item?==?'cpu_system_uasge':result=new_result['cpu_stats']['system_cpu_usage']?-?old_result['cpu_stats']['system_cpu_usage']elif?collect_item?==?'cpu_percent':cpu_total_usage=new_result['cpu_stats']['cpu_usage']['total_usage']?-?old_result['cpu_stats']['cpu_usage']['total_usage']cpu_system_uasge=new_result['cpu_stats']['system_cpu_usage']?-?old_result['cpu_stats']['system_cpu_usage']cpu_num=len(old_result['cpu_stats']['cpu_usage']['percpu_usage'])result=round((float(cpu_total_usage)/float(cpu_system_uasge))*cpu_num*100.0,2)elif?collect_item?==?'mem_usage':result=new_result['memory_stats']['usage']elif?collect_item?==?'mem_limit':result=new_result['memory_stats']['limit']elif?collect_item?==?'mem_percent':mem_usage=new_result['memory_stats']['usage']mem_limit=new_result['memory_stats']['limit']result=round(float(mem_usage)/float(mem_limit)*100.0,2)#network_rx_packets=new_result['network']['rx_packets']#network_tx_packets=new_result['network']['tx_packets']elif?collect_item?==?'network_rx_bytes':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"}"}'"""%container_namenetwork_old_result=eval(((subprocess.Popen(network_check_command,shell=True,stdout=subprocess.PIPE)).stdout.readlines()[0]).strip('\n'))time.sleep(1)network_new_result=eval(((subprocess.Popen(network_check_command,shell=True,stdout=subprocess.PIPE)).stdout.readlines()[0]).strip('\n'))#unit?KBresult=int(network_new_result['rx'])?-?int(network_old_result['rx'])elif?collect_item?==?'network_tx_bytes':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"}"}'"""%container_namenetwork_old_result=eval(((subprocess.Popen(network_check_command,shell=True,stdout=subprocess.PIPE)).stdout.readlines()[0]).strip('\n'))time.sleep(1)network_new_result=eval(((subprocess.Popen(network_check_command,shell=True,stdout=subprocess.PIPE)).stdout.readlines()[0]).strip('\n'))result=int(network_new_result['tx'])?-?int(network_old_result['tx'])return?result if?__name__?==?"__main__":docker_client?=?Client(base_url='unix://var/run/docker.sock',?version='1.17')container_name=sys.argv[1]collect_item=sys.argv[2]print?check_container_stats(container_name,collect_item)

C.監控內容的json化

下面在是我的json監控docker容器的json展示

[root@ip-10-10-125-6?~]#?sh?/usr/local/zabbix/bin/zabbix_low_discovery.sh?docker {"data":[{"{#CONTAINERNAME}":"nodeA"},{"{#CONTAINERNAME}":"xiaotg-mesos.5"},{"{#CONTAINERNAME}":"xiaotg-mesos.4"},{"{#CONTAINERNAME}":"xiaotg-mesos.3"},{"{#CONTAINERNAME}":"xiaotg-mesos.2"},{"{#CONTAINERNAME}":"xiaotg-mesos.1"},{"{#CONTAINERNAME}":"xiaotg-mesos.0"},{"{#CONTAINERNAME}":"ulimit_test.1"},{"{#CONTAINERNAME}":"ulimit_test.0"}] }

腳本內容如下:

[root@ip-10-10-125-6?tmp]#?cat?zabbix_low_discovery.sh #!/bin/bash #Fucation:zabbix?low-level?discovery docker()?{port=($(sudo?docker?ps?-a|grep?-v?"CONTAINER?ID"|awk?'{print?$NF}'))printf?'{\n'printf?'\t"data":[\n'for?key?in?${!port[@]}doif?[[?"${#port[@]}"?-gt?1?&&?"${key}"?-ne?"$((${#port[@]}-1))"?]];thenprintf?'\t?{\n'printf?"\t\t\t\"{#CONTAINERNAME}\":\"${port[${key}]}\"},\n"else?[[?"${key}"?-eq?"((${#port[@]}-1))"?]]printf?'\t?{\n'printf?"\t\t\t\"{#CONTAINERNAME}\":\"${port[${key}]}\"}\n"fidoneprintf?'\t?]\n'printf?'}\n' } case?$1?in docker) docker ;; *) echo?"Usage:`basename?$0`?{docker}" ;; esac

把此文件存放到/usr/local/zabbix/bin里,然后給與755權限,并修改用戶與組為zabbix,同時允許zabbix用戶無密碼運行docker

echo?"zabbix?ALL=(root)?NOPASSWD:/bin/docker,?/usr/local/zabbix/bin/zabbix_monitor_docker.py">>/etc/sudoers

D.重啟zabbix服務

ps?-ef|grep?zabbix|grep?-v?grep|awk?'{print?$2}'|xargs?kill?-9 /usr/local/zabbix/sbin/zabbix_agentd?-c?/usr/local/zabbix/conf/zabbix_agentd.conf

3、服務端部署

A、模板導入

把Template Docker Auto Discovery導入到zabbix里(模板在附件),具體操作不介紹。

B.主機關聯模板

把需要監控docker容器的主機管理模板即可監控,默認是60秒后自動更新,如下圖

由于在zabbix里監控docker只是為了查看方便,所以報警就沒有做,有需求可以自己來修改。

轉載于:https://blog.51cto.com/dl528888/1660844

總結

以上是生活随笔為你收集整理的zabbix企业应用之监控docker容器资源情况的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久国产精品波多野结衣 | 影音先锋男人资源网站 | 色老二导航 | 自拍视频第一页 | 伊人成人在线 | 免费成人在线观看视频 | 免费色视频 | 国产精选久久久 | 日韩大胆视频 | 自拍欧美亚洲 | 人妻无码一区二区三区 | 视频在线播| av高潮 | 色综合天天色综合 | 中字幕一区二区三区乱码 | 看片免费黄在线观看入口 | 天天看视频 | 欧美精品一区二区三区久久久竹菊 | 先锋影音av资源站 | 国产乱人 | 在线播放中文字幕 | 黄色免费在线观看视频 | 久久精品视频一区二区三区 | 午夜偷拍视频 | 北岛玲在线 | 天堂中文在线8 | 日本一区中文字幕 | 亚洲你我色 | 丰满双乳秘书被老板狂揉捏 | 婷婷开心激情 | 国产美女永久无遮挡 | 五月婷婷视频在线观看 | 琪琪女色窝窝777777 | 欧美yyy | 美女一区二区三区视频 | 色四月 | 天天干天天干天天 | 欧美变态口味重另类 | 亚洲 美腿 欧美 偷拍 | 欧美与黑人午夜性猛交久久久 | 男女无遮挡网站 | 亚洲日本网站 | 亚洲成人精品久久久 | 黄污视频网站 | 91免费小视频 | aa视频在线观看 | www.亚洲 | 秋霞视频在线 | 国产一区二区三区免费 | 亚洲欧美日韩中文字幕在线观看 | 亚洲欧美激情视频 | 豆花av在线 | www.youjizz.com国产 | 人妻激情文学 | 无码人妻丰满熟妇区五十路百度 | 91精品国自产 | 美女福利在线 | 久久在线一区二区 | 蜜桃一区二区三区 | 欧美插插视频 | 秋霞黄色网 | 亚洲五十路 | 天天撸在线视频 | 久久久国产片 | 就爱av| 91九色成人 | 国产一区二区三区四区三区四 | 成人影片在线 | 麻豆日韩 | 白嫩白嫩国产精品 | 欧美脚交 | 台湾性生生活1 | 黄色永久免费网站 | 中文在线视频 | 黄网站在线免费 | eeuss国产一区二区三区 | 草草影院在线播放 | 强侵犯の奶水授乳羞羞漫虐 | 日韩精品一区二区在线视频 | 中文字幕第23页 | 亚洲精品成人无码熟妇在线 | 日韩午夜精品视频 | 人操人人| 右手影院亚洲欧美 | 银杏av | 精品久久久久中文慕人妻 | 男女插插视频 | 日韩中文字幕视频 | 人妻少妇久久中文字幕 | 生活片一级片 | 97精品人妻一区二区 | 欧美综合色区 | 天堂中文在线官网 | 中国色视频| 欧美老司机 | 亚洲一区二区三区在线视频 | 40一50一60老女人毛片 | 国产一级二级三级精品 | 亚洲自拍第三页 |