婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > zabbix監(jiān)控docker容器狀態(tài)【推薦】

zabbix監(jiān)控docker容器狀態(tài)【推薦】

熱門標(biāo)簽:威海人工智能電銷機器人系統(tǒng) 德州外呼系統(tǒng)排名 好看的地圖標(biāo)注圖標(biāo)下載 地圖標(biāo)注員怎么去做 貴州全自動外呼系統(tǒng)廠家 百度地圖標(biāo)注備注 機器人電銷有什么用 上海電銷卡外呼系統(tǒng)廠家 福州外呼系統(tǒng)中間件

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

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

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

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

下面是docker.py 腳本,采用自動發(fā)現(xiàn)規(guī)則來發(fā)現(xiàn)容器,然后指定容器獲取狀態(tài)信息

#!/usr/bin/python
import sys
import os
import json
def 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 result
if __name__ == '__main__':
  try:
    name, action = sys.argv[1], sys.argv[2]
    status(name,action)
  except IndexError:
    discover()

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

返回結(jié)果如下,一定要是這樣的層級關(guān)系....

{"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"}]}

另外那個函數(shù)的很簡單了,就是調(diào)用docker 命令在獲取數(shù)據(jù)的。

自動發(fā)現(xiàn)規(guī)則呢 也就是這樣

只監(jiān)控的這幾個狀態(tài),以及還有一個觸發(fā)器就是ping 來檢測當(dāng)前這個容器狀態(tài)是否運行,如果不是就報警。

模板如下

<?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腳本放在指定路徑下,不要忘了給權(quán)限,導(dǎo)入模板,能獲取數(shù)據(jù)就沒問題。獲取不了的,可以zabbix_get 來調(diào)試 找到問題出在哪去解決。

總結(jié)

以上所述是小編給大家介紹的zabbix監(jiān)控docker容器狀態(tài),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

標(biāo)簽:南陽 邵陽 岳陽 白城 泉州 南陽 撫州 葫蘆島

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《zabbix監(jiān)控docker容器狀態(tài)【推薦】》,本文關(guān)鍵詞  zabbix,監(jiān)控,docker,容器,狀態(tài),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《zabbix監(jiān)控docker容器狀態(tài)【推薦】》相關(guān)的同類信息!
  • 本頁收集關(guān)于zabbix監(jiān)控docker容器狀態(tài)【推薦】的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    ●精品国产综合乱码久久久久| 免费亚洲电影在线| 亚洲乱码国产乱码精品精的特点| 亚洲天堂成人在线观看| 亚洲超丰满肉感bbw| 亚洲精品网站在线观看| 91免费看视频| 在线播放视频一区| 国产亚洲午夜高清国产拍精品| 亚洲成人免费视频| 日韩电影免费一区| 成人免费高清在线观看| 色狠狠桃花综合| 精品免费视频一区二区| 中文字幕一区二区三区在线不卡 | 免费看精品久久片| 国产成人av资源| 欧美人与性动xxxx| 国产精品亲子伦对白| 久久精品久久99精品久久| 一本一本久久a久久精品综合麻豆| 欧美日韩一级二级| 亚洲一区二区精品视频| 国产盗摄精品一区二区三区在线 | 亚洲精品日韩专区silk| 成人黄色一级视频| 国产一区二区在线电影| 欧美va亚洲va国产综合| 成人av在线资源| 亚洲精品videosex极品| 欧美日韩另类国产亚洲欧美一级| 一二三区精品视频| 欧美日韩精品综合在线| 成人美女视频在线观看18| 欧美激情一区三区| 精品一区二区免费看| 成人激情视频网站| 欧美一级生活片| 日韩精品一区二区三区蜜臀| 欧美韩国日本一区| 免费在线观看一区二区三区| 国产揄拍国内精品对白| 男女男精品网站| 日本成人在线视频网站| 国产精品妹子av| 91麻豆自制传媒国产之光| 91黄色免费观看| 91成人免费在线视频| 欧美大尺度电影在线| 国产精品理伦片| 美女视频一区在线观看| 久久精品国产精品亚洲红杏 | 亚洲色图一区二区| 欧洲亚洲精品在线| 中文字幕av不卡| 91精品欧美一区二区三区综合在| 色香蕉久久蜜桃| 国产精选一区二区三区| 精品国产一区二区亚洲人成毛片 | 国产精品99久久久| 亚洲国产成人自拍| 欧美日韩国产电影| 另类小说欧美激情| 亚洲视频 欧洲视频| 欧美一级精品在线| 911精品国产一区二区在线| 国产美女视频91| 美女视频一区二区三区| 亚洲高清在线精品| 亚洲日本va在线观看| 国产精品情趣视频| 久久久www成人免费无遮挡大片| 91麻豆免费在线观看| 色婷婷激情综合| 91丨porny丨首页| 成人黄色电影在线| 成人av手机在线观看| 国产成人免费在线| 久久爱www久久做| 午夜激情一区二区三区| 亚洲国产乱码最新视频| 国产成人精品免费看| 欧美片网站yy| 最新国产成人在线观看| 亚洲综合久久久| 蜜臀精品一区二区三区在线观看| 亚洲成人你懂的| 久久久久亚洲综合| 欧美一级在线免费| 欧美中文字幕一区二区三区| 日本vs亚洲vs韩国一区三区 | 国产一区福利在线| 中文字幕一区二区在线观看| 在线日韩av片| 成人一区二区视频| 亚洲欧美一区二区久久| 国产精品不卡一区| 日本韩国欧美国产| 亚洲欧美另类小说| 欧美在线free| 另类专区欧美蜜桃臀第一页| 亚洲国产美女搞黄色| 日本va欧美va精品发布| 亚洲va天堂va国产va久| 国产精品1区二区.| 日韩欧美国产1| 蜜桃精品在线观看| 欧美天堂一区二区三区| 亚洲视频一区在线| 99麻豆久久久国产精品免费优播| 日韩视频一区二区| 热久久久久久久| 在线观看免费一区| 亚洲精品福利视频网站| 国内一区二区视频| 久久久久久亚洲综合| 麻豆成人免费电影| 日韩欧美二区三区| 琪琪一区二区三区| 欧美va亚洲va| 国产成人午夜片在线观看高清观看| 欧美一区二区福利视频| 三级影片在线观看欧美日韩一区二区| 在线观看亚洲专区| 亚洲影院免费观看| 综合亚洲深深色噜噜狠狠网站| 日韩一级片在线播放| 白白色 亚洲乱淫| 激情综合网av| 中文字幕亚洲欧美在线不卡| 欧美精品成人一区二区三区四区| 美国一区二区三区在线播放| 亚洲欧美视频一区| 久久夜色精品一区| 99久久精品免费观看| 国产精品高清亚洲| 国产电影精品久久禁18| 欧美videos中文字幕| 玉足女爽爽91| 欧美一级高清片在线观看| 成人欧美一区二区三区视频网页| 欧美a一区二区| jlzzjlzz国产精品久久| 欧美在线免费视屏| 一区二区三区精密机械公司| 美女视频网站久久| 日本韩国欧美一区二区三区| 亚洲美女少妇撒尿| 精品国产一区二区三区四区四 | 日韩美女一区二区三区四区| 亚洲精品乱码久久久久久黑人| 在线视频一区二区三| 九九九精品视频| 亚洲一区二区在线视频| 日韩欧美综合在线| 国产精品一区二区在线播放| 国产精品黄色在线观看| 欧美第一区第二区| 欧美一级久久久| 色综合久久久久| 国产馆精品极品| 日韩国产在线观看一区| 精品剧情v国产在线观看在线| 亚洲精品乱码久久久久| 日韩欧美在线观看一区二区三区| 日日夜夜免费精品| 国产suv一区二区三区88区| 国产精品色婷婷| 国产精品嫩草影院com| 欧美经典一区二区三区| 中文字幕制服丝袜一区二区三区 | 亚洲成人tv网| 丝袜美腿一区二区三区| 蜜臀a∨国产成人精品| 免费一级片91| 一本高清dvd不卡在线观看| 欧美高清你懂得| 中文字幕+乱码+中文字幕一区| 亚洲日本在线观看| 国产在线视频一区二区| 伊人开心综合网| 国产酒店精品激情| 欧美日韩精品系列| 一区视频在线播放| 久久国产综合精品| 欧美日产国产精品| 免费在线看成人av| 欧美日韩综合在线免费观看| 国产午夜精品一区二区三区嫩草 | 国产综合色精品一区二区三区| 国产精品综合二区| 欧美mv日韩mv国产网站app| 亚洲精品日韩专区silk| www.欧美.com| 国产精品视频第一区| 97se亚洲国产综合自在线观| 精品国产免费人成在线观看| 一区二区三区欧美激情| 老司机免费视频一区二区三区| 肉丝袜脚交视频一区二区|