一.前言

前文中讲述了Zabbix对服务器硬件方面的监控功能,本文将讲述利用Zabbix监控Docker容器中的Java Web服务,并通过自定义监控项,监控JVM老年代使用情况以及GC信息。Zabbix其实提供了

 

四.创建自定义Docker模板

我们可以定义一个比较通用的Docker模板,有服务需要被监控时,直接链接该模板即可。

  1. 创建群组

    点击【配置】-【主机群组】-【创建主机群组】

    定义一个组名 Docker Group

    配置项
    * 组名 Docker Group

  2. 创建模板

    创建一个自定义模板,模板名称Docker Template,选择上步骤创建的Docker Group群组

    配置项
    * 模板名称 Docker Template
    * 群组 Docker Group

 

五.编写脚本与自定义监控参数

我们需要编写一个脚本,用于发现当前正在运行的docker容器(这里使用容器名称)。

  1. 在Server-A编写发现运行容器的python脚本

    创建脚本

    # cd /data/zabbix # touch find_container.py # chmod a+x find_container.py # vim find_container.py

    脚本内容:

    #!/usr/bin/env python import os import json  # 查看当前运行的docker容器 t=os.popen(""" docker ps  |grep -v 'CONTAINER ID'|awk {'print $NF'} """) container_name = [] for container in  t.readlines():         r = os.path.basename(container.strip())         container_name += [{'{#CONTAINERNAME}':r}] # 转换成json数据 print json.dumps({'data':container_name},sort_keys=True,indent=4,separators=(',',':'))
    运行脚本,查看一下json数据格式:
    {     "data":[         {             "{#CONTAINERNAME}":"tomcat"         }     ] }
  2. 在Server-A自定义容器发现参数

    我们需要自定义一个键值对的配置类型,以便Zabbix可以通过键读取到值。

    增加自定义参数

    # cd /etc/zabbix/zabbix_agentd.d # vim userparameter_find_container.conf