Zabbix-(五)监控Docker容器与自定义jvm监控项
一.前言
前文中讲述了Zabbix对服务器硬件方面的监控功能,本文将讲述利用Zabbix监控Docker容器中的Java Web服务,并通过自定义监控项,监控JVM老年代使用情况以及GC信息。Zabbix其实提供了
四.创建自定义Docker模板
我们可以定义一个比较通用的Docker模板,有服务需要被监控时,直接链接该模板即可。
-
创建群组
点击【配置】-【主机群组】-【创建主机群组】
定义一个组名 Docker Group
配置项 值 * 组名 Docker Group - 创建模板
创建一个自定义模板,模板名称Docker Template,选择上步骤创建的Docker Group群组
配置项 值 * 模板名称 Docker Template * 群组 Docker Group
五.编写脚本与自定义监控参数
我们需要编写一个脚本,用于发现当前正在运行的docker容器(这里使用容器名称)。
-
在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" } ] }
- 在Server-A自定义容器发现参数
我们需要自定义一个键值对的配置类型,以便Zabbix可以通过键读取到值。
增加自定义参数
# cd /etc/zabbix/zabbix_agentd.d # vim userparameter_find_container.conf
键 值