亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

zabbix監控docker容器狀態【推薦】

2024-09-01 13:55:03
字體:
來源:轉載
供稿:網友

前言:前段時間在部署zabbix,有個需求就是需要監控容器的狀態 也就是cpu 內存 io的占用,于是就自己寫了一個腳本,以及模板,在這里分享一下 嘿嘿 : )

廢話我也就不多說,直接開始

首選,zabbix_agentd 配置  vim /usr/local/zabbix/etc/zabbix_agentd.conf

UserParameter=docker.discovery,/usr/local/zabbix/script/docker.pyUserParameter=docker.[*],/usr/local/zabbix/script/docker.py $1 $2

下面是docker.py 腳本,采用自動發現規則來發現容器,然后指定容器獲取狀態信息

#!/usr/bin/pythonimport sysimport osimport jsondef discover(): d = {} d['data'] = [] with os.popen("docker ps -a --format {{.Names}}") as pipe:  for line in pipe:   info = {}   info['{#CONTAINERNAME}'] = line.replace("/n","")   d['data'].append(info) print json.dumps(d)def status(name,action): if action == "ping":  cmd = 'docker inspect --format="{{.State.Running}}" %s' %name  result = os.popen(cmd).read().replace("/n","")  if result == "true":   print 1  else:   print 0 else:  cmd = 'docker stats %s --no-stream --format "{{.%s}}"' % (name,action)  result = os.popen(cmd).read().replace("/n","")  if "%" in result:   print float(result.replace("%",""))  else:   print resultif __name__ == '__main__':  try:    name, action = sys.argv[1], sys.argv[2]    status(name,action)  except IndexError:    discover()

這里說一下自動發現規則的坑。。。我被坑了好久才找出來.....一是必須返回json格式內容,二是 info['{#CONTAINERNAME}' ]  這個key一定要這么寫{#CONTAINERNAME}......

返回結果如下,一定要是這樣的層級關系....

{"data": [{"{#CONTAINERNAME}": "node-3"}, {"{#CONTAINERNAME}": "node-2"}, {"{#CONTAINERNAME}": "node-1"}, {"{#CONTAINERNAME}": "web"}, {"{#CONTAINERNAME}": "cadvisor"}, {"{#CONTAINERNAME}": "updatol"}, {"{#CONTAINERNAME}": "research"}, {"{#CONTAINERNAME}": "services"}, {"{#CONTAINERNAME}": "data"}, {"{#CONTAINERNAME}": "rabbitmq"}, {"{#CONTAINERNAME}": "redis"}, {"{#CONTAINERNAME}": "mysql"}, {"{#CONTAINERNAME}": "ssdb"}]}

另外那個函數的很簡單了,就是調用docker 命令在獲取數據的。

自動發現規則呢 也就是這樣

只監控的這幾個狀態,以及還有一個觸發器就是ping 來檢測當前這個容器狀態是否運行,如果不是就報警。

模板如下

<?xml version="1.0" encoding="UTF-8"?><zabbix_export> <version>3.2</version> <date>2018-06-04T04:12:36Z</date> <groups>  <group>   <name>Templates</name>  </group> </groups> <templates>  <template>   <template>docker-status</template>   <name>docker-status</name>   <description/>   <groups>    <group>     <name>Templates</name>    </group>   </groups>   <applications>    <application>     <name>docker_test</name>    </application>   </applications>   <items/>   <discovery_rules>    <discovery_rule>     <name>docker.discovery</name>     <type>0</type>     <snmp_community/>     <snmp_oid/>     <key>docker.discovery</key>     <delay>60</delay>     <status>0</status>     <allowed_hosts/>     <snmpv3_contextname/>     <snmpv3_securityname/>     <snmpv3_securitylevel>0</snmpv3_securitylevel>     <snmpv3_authprotocol>0</snmpv3_authprotocol>     <snmpv3_authpassphrase/>     <snmpv3_privprotocol>0</snmpv3_privprotocol>     <snmpv3_privpassphrase/>     <delay_flex/>     <params/>     <ipmi_sensor/>     <authtype>0</authtype>     <username/>     <password/>     <publickey/>     <privatekey/>     <port/>     <filter>      <evaltype>0</evaltype>      <formula/>      <conditions>       <condition>        <macro>{#CONTAINERNAME}</macro>        <value>@ CONTAINER NAME</value>        <operator>8</operator>        <formulaid>A</formulaid>       </condition>      </conditions>     </filter>     <lifetime>30</lifetime>     <description/>     <item_prototypes>      <item_prototype>       <name>Container {#CONTAINERNAME} Diskio usage:</name>       <type>0</type>       <snmp_community/>       <multiplier>0</multiplier>       <snmp_oid/>       <key>docker.[{#CONTAINERNAME} ,BlockIO]</key>       <delay>60</delay>       <history>90</history>       <trends>0</trends>       <status>0</status>       <value_type>1</value_type>       <allowed_hosts/>       <units/>       <delta>0</delta>       <snmpv3_contextname/>       <snmpv3_securityname/>       <snmpv3_securitylevel>0</snmpv3_securitylevel>       <snmpv3_authprotocol>0</snmpv3_authprotocol>       <snmpv3_authpassphrase/>       <snmpv3_privprotocol>0</snmpv3_privprotocol>       <snmpv3_privpassphrase/>       <formula>1</formula>       <delay_flex/>       <params/>       <ipmi_sensor/>       <data_type>0</data_type>       <authtype>0</authtype>       <username/>       <password/>       <publickey/>       <privatekey/>       <port/>       <description/>       <inventory_link>0</inventory_link>       <applications>        <application>         <name>docker_test</name>        </application>       </applications>       <valuemap/>       <logtimefmt/>       <application_prototypes/>      </item_prototype>      <item_prototype>       <name>Container{#CONTAINERNAME} CPU usage:</name>       <type>0</type>       <snmp_community/>       <multiplier>0</multiplier>       <snmp_oid/>       <key>docker.[{#CONTAINERNAME},CPUPerc]</key>       <delay>60</delay>       <history>90</history>       <trends>365</trends>       <status>0</status>       <value_type>0</value_type>       <allowed_hosts/>       <units>%</units>       <delta>0</delta>       <snmpv3_contextname/>       <snmpv3_securityname/>       <snmpv3_securitylevel>0</snmpv3_securitylevel>       <snmpv3_authprotocol>0</snmpv3_authprotocol>       <snmpv3_authpassphrase/>       <snmpv3_privprotocol>0</snmpv3_privprotocol>       <snmpv3_privpassphrase/>       <formula>1</formula>       <delay_flex/>       <params/>       <ipmi_sensor/>       <data_type>0</data_type>       <authtype>0</authtype>       <username/>       <password/>       <publickey/>       <privatekey/>       <port/>       <description/>       <inventory_link>0</inventory_link>       <applications>        <application>         <name>docker_test</name>        </application>       </applications>       <valuemap/>       <logtimefmt/>       <application_prototypes/>      </item_prototype>      <item_prototype>       <name>Container {#CONTAINERNAME} mem usage:</name>       <type>0</type>       <snmp_community/>       <multiplier>0</multiplier>       <snmp_oid/>       <key>docker.[{#CONTAINERNAME},MemPerc]</key>       <delay>60</delay>       <history>90</history>       <trends>365</trends>       <status>0</status>       <value_type>0</value_type>       <allowed_hosts/>       <units>%</units>       <delta>0</delta>       <snmpv3_contextname/>       <snmpv3_securityname/>       <snmpv3_securitylevel>0</snmpv3_securitylevel>       <snmpv3_authprotocol>0</snmpv3_authprotocol>       <snmpv3_authpassphrase/>       <snmpv3_privprotocol>0</snmpv3_privprotocol>       <snmpv3_privpassphrase/>       <formula>1</formula>       <delay_flex/>       <params/>       <ipmi_sensor/>       <data_type>0</data_type>       <authtype>0</authtype>       <username/>       <password/>       <publickey/>       <privatekey/>       <port/>       <description/>       <inventory_link>0</inventory_link>       <applications>        <application>         <name>docker_test</name>        </application>       </applications>       <valuemap/>       <logtimefmt/>       <application_prototypes/>      </item_prototype>      <item_prototype>       <name>Container {#CONTAINERNAME} NETio usage:</name>       <type>0</type>       <snmp_community/>       <multiplier>0</multiplier>       <snmp_oid/>       <key>docker.[{#CONTAINERNAME},NetIO]</key>       <delay>60</delay>       <history>90</history>       <trends>0</trends>       <status>0</status>       <value_type>1</value_type>       <allowed_hosts/>       <units/>       <delta>0</delta>       <snmpv3_contextname/>       <snmpv3_securityname/>       <snmpv3_securitylevel>0</snmpv3_securitylevel>       <snmpv3_authprotocol>0</snmpv3_authprotocol>       <snmpv3_authpassphrase/>       <snmpv3_privprotocol>0</snmpv3_privprotocol>       <snmpv3_privpassphrase/>       <formula>1</formula>       <delay_flex/>       <params/>       <ipmi_sensor/>       <data_type>0</data_type>       <authtype>0</authtype>       <username/>       <password/>       <publickey/>       <privatekey/>       <port/>       <description/>       <inventory_link>0</inventory_link>       <applications>        <application>         <name>docker_test</name>        </application>       </applications>       <valuemap/>       <logtimefmt/>       <application_prototypes/>      </item_prototype>      <item_prototype>       <name>Container{#CONTAINERNAME} is_run :</name>       <type>0</type>       <snmp_community/>       <multiplier>0</multiplier>       <snmp_oid/>       <key>docker.[{#CONTAINERNAME} ,ping]</key>       <delay>30</delay>       <history>90</history>       <trends>365</trends>       <status>0</status>       <value_type>3</value_type>       <allowed_hosts/>       <units/>       <delta>0</delta>       <snmpv3_contextname/>       <snmpv3_securityname/>       <snmpv3_securitylevel>0</snmpv3_securitylevel>       <snmpv3_authprotocol>0</snmpv3_authprotocol>       <snmpv3_authpassphrase/>       <snmpv3_privprotocol>0</snmpv3_privprotocol>       <snmpv3_privpassphrase/>       <formula>1</formula>       <delay_flex/>       <params/>       <ipmi_sensor/>       <data_type>0</data_type>       <authtype>0</authtype>       <username/>       <password/>       <publickey/>       <privatekey/>       <port/>       <description/>       <inventory_link>0</inventory_link>       <applications>        <application>         <name>docker_test</name>        </application>       </applications>       <valuemap/>       <logtimefmt/>       <application_prototypes/>      </item_prototype>     </item_prototypes>     <trigger_prototypes>      <trigger_prototype>       <expression>{docker-status:docker.[{#CONTAINERNAME} ,ping].last()}=0</expression>       <recovery_mode>0</recovery_mode>       <recovery_expression/>       <name>docker_{#CONTAINERNAME}_down</name>       <correlation_mode>0</correlation_mode>       <correlation_tag/>       <url/>       <status>0</status>       <priority>5</priority>       <description/>       <type>0</type>       <manual_close>0</manual_close>       <dependencies/>       <tags/>      </trigger_prototype>     </trigger_prototypes>     <graph_prototypes/>     <host_prototypes/>    </discovery_rule>   </discovery_rules>   <httptests/>   <macros/>   <templates/>   <screens/>  </template> </templates></zabbix_export>

修改Zabbix_agentd 配置,docker.py腳本放在指定路徑下,不要忘了給權限,導入模板,能獲取數據就沒問題。獲取不了的,可以zabbix_get 來調試 找到問題出在哪去解決。

總結

以上所述是小編給大家介紹的zabbix監控docker容器狀態,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线免费看av不卡| 国模精品视频一区二区三区| 一区二区欧美久久| 欧美日韩成人黄色| 亚洲精品美女在线| 欧美在线视频播放| 宅男66日本亚洲欧美视频| 国产精品www网站| 日韩精品日韩在线观看| 欧美国产日韩一区二区| 日韩电影中文 亚洲精品乱码| 亚洲国产美女精品久久久久∴| 一区二区在线免费视频| 欧美精品在线看| 久久久精品国产| 欧美精品激情在线| 精品国产一区久久久| 欧美自拍大量在线观看| 国产91精品最新在线播放| 日韩有码视频在线| 国产精品女人久久久久久| 亚洲欧洲在线看| 日韩成人在线视频| 97热在线精品视频在线观看| 国产精品嫩草影院久久久| 欧美野外wwwxxx| 午夜精品福利电影| 久久免费精品日本久久中文字幕| 欧美成人免费va影院高清| 国产mv免费观看入口亚洲| 热久久免费视频精品| 午夜精品久久久久久久99热| 亚洲色图17p| 91成人福利在线| 亚洲精品在线观看www| 国产精品久久久久久久久影视| 青草青草久热精品视频在线观看| 福利视频导航一区| 欧美激情精品久久久久久| 国产精品美女www爽爽爽视频| 欧美日韩国产123| 亚洲第一网站男人都懂| 国产精品尤物福利片在线观看| 国产精品丝袜一区二区三区| 国产欧美一区二区白浆黑人| 最新日韩中文字幕| 91免费视频网站| 日韩在线视频免费观看高清中文| 97视频人免费观看| 久久99国产综合精品女同| 欧美激情啊啊啊| 欧美刺激性大交免费视频| 福利二区91精品bt7086| 欧美成年人网站| 国外色69视频在线观看| 久久久久久国产精品久久| 日本一本a高清免费不卡| 久久久国产精品亚洲一区| 一区二区亚洲欧洲国产日韩| 欧美丝袜美女中出在线| 日本久久久久久久久久久| 欧洲永久精品大片ww免费漫画| 91成人精品网站| 国产z一区二区三区| 丰满岳妇乱一区二区三区| 久久综合88中文色鬼| 97欧美精品一区二区三区| 欧美精品在线视频观看| 亚洲精品狠狠操| 一区二区三区亚洲| 国产精品v片在线观看不卡| 91精品国产777在线观看| 国产精品扒开腿做爽爽爽的视频| 久久久久久久久久久人体| 国内精品久久久久伊人av| 久99久在线视频| 亚洲二区在线播放视频| 亚洲欧美日韩中文视频| 欧美日韩国产精品一区| 午夜免费久久久久| 亚洲欧美国产一本综合首页| 久久久综合免费视频| 国产欧美精品一区二区三区-老狼| 中日韩美女免费视频网址在线观看| 亚洲娇小xxxx欧美娇小| 国产精品情侣自拍| 国产精品自拍小视频| 丝袜情趣国产精品| 亚洲午夜久久久久久久| 精品国产乱码久久久久酒店| 日韩av观看网址| 久久91超碰青草是什么| 中文字幕亚洲无线码a| 中文字幕亚洲自拍| 大量国产精品视频| 亚洲网站在线观看| 久久精品人人爽| 亚洲精品免费一区二区三区| 亚洲人成毛片在线播放| 欧美一区二区三区免费视| 中文字幕日韩综合av| 亚洲综合精品一区二区| 久久久精品影院| 91精品久久久久久久久中文字幕| 国产精品免费一区| 欧美激情精品久久久久久久变态| 亚洲激情视频在线观看| 日韩网站在线观看| 国产免费一区视频观看免费| 久久精品91久久久久久再现| 欧美黑人巨大xxx极品| 色偷偷偷亚洲综合网另类| 91麻豆桃色免费看| 亚洲精品一区在线观看香蕉| 色综合导航网站| 成人免费高清完整版在线观看| 国产成人精品视频| 久久久久久久久电影| 欧美精品videosex性欧美| 日韩av在线免费观看一区| 亚洲自拍另类欧美丝袜| xvideos成人免费中文版| 亚洲最大的网站| 国产日韩精品一区二区| 欧美高清videos高潮hd| 成人精品久久久| 国模视频一区二区| 日韩在线视频观看正片免费网站| 亚洲电影免费观看高清| 欧美一级电影在线| 69**夜色精品国产69乱| 中文字幕日韩电影| 日本精品一区二区三区在线| 成人精品视频99在线观看免费| 性色av一区二区三区红粉影视| 国色天香2019中文字幕在线观看| 日韩欧美在线视频日韩欧美在线视频| 国产精品免费一区二区三区都可以| 91国偷自产一区二区三区的观看方式| 国产亚洲精品综合一区91| 2025国产精品视频| 久久手机免费视频| 奇米成人av国产一区二区三区| 亚洲xxxx3d| 国产精品久久久av| 亚洲欧美三级伦理| 欧美日韩亚洲视频一区| 欧美日本高清视频| 久久精品视频99| 日韩av成人在线观看| 日韩av黄色在线观看| 久久久亚洲福利精品午夜| 九九精品在线视频| 久久久999国产精品| 欧美黑人巨大精品一区二区| 97免费中文视频在线观看| 久久久精品视频在线观看| 欧美激情精品久久久久久蜜臀| 欧美性高潮床叫视频| 亚洲色图狂野欧美| 精品久久久久久久久久国产| 亚洲国产成人精品久久| 亚洲专区国产精品| 欧美一级高清免费|