Zabbix Docker Monitoring
用Zabbbix监控Docker容器的CPU,men,blkio等资源使用,并获取容器的IP,name等详细信息,Zabbix Docker模块支持对Dcoker容器的监控功能。
Please donate to author, so he can continue to publish other awesome projects for free:
下载并安装
Download latest build (RHEL 7, CentOS 7, Ubuntu 14, ...) #.so文件下载
If provided build doesn't work on your system, please see section Compilation. Or you can check folder dockerfiles, where Dockerfiles for different OS/Zabbix versions are prepared.
https://github.com/monitoringartist/Zabbix-Docker-Monitoring/archive/master.zip #源码下载
监控信息配置
Note: cid - container ID, two options are available:
-
full container ID (fid - 64 character string), e.g.2599a1d88f75ea2de7283cbf469ea00f0e5d42aaace95f90ffff615c16e8fade
-
(human) name or short container ID - prefix "/" must be used, e.g. /zabbix-server or /2599a1d88f75
Key | Description |
---|---|
docker.discovery[<par1>,<par2>,<par3>] | LLD discovering: Only running containers are discovered. Additional Docker permissions are needed, when you want to see container name (human name) in metrics/graphs instead of short container ID. Optional parameters are used for definition of HCONTAINERID - docker.inspect function will be used in this case. For example: docker.discovery[Config,Env,MESOS_TASK_ID=] is recommended for Mesos monitoring Note: docker.discovery is faster version of docker.discovery[Name] |
docker.mem[cid,mmetric] | Memory metrics: mmetric - any available memory metric in the pseudo-file memory.stat, e.g.:cache, rss, mapped_file, pgpgin, pgpgout, swap, pgfault, pgmajfault, inactive_anon, active_anon, inactive_file, active_file, unevictable, hierarchical_memory_limit, hierarchical_memsw_limit, total_cache, total_rss, total_mapped_file, total_pgpgin, total_pgpgout, total_swap, total_pgfault, total_pgmajfault, total_inactive_anon, total_active_anon, total_inactive_file, total_active_file, total_unevictable |
docker.cpu[cid,cmetric] | CPU metrics: cmetric - any available CPU metric in the pseudo-file cpuacct.stat, e.g.: system, user Jiffy CPU counter is recalculated to % value by Zabbix. |
docker.dev[cid,bfile,bmetric] | Blk IO metrics: bfile - container blkio pseudo-file, e.g.: blkio.io_merged, blkio.io_queued, blkio.io_service_bytes, blkio.io_serviced, blkio.io_service_time, blkio.io_wait_time, blkio.sectors, blkio.time, blkio.avg_queue_size, blkio.idle_time, blkio.dequeue, ... bmetric - any available blkio metric in selected pseudo-file, e.g.: Total. Option for selected block device only is also available e.g. '8:0 Sync' (quotes must be used in key parameter in this case) Note: Some pseudo blkio files are available only if kernel configCONFIG_DEBUG_BLK_CGROUP=y, see recommended docs. |
docker.inspect[cid,par1,<par2>,<par3>] | Docker inspection: Requested value from Docker inspect JSON object (e.g. API v1.21) is returned. par1 - name of 1st level JSON property par2 - optional name of 2nd level JSON property par3 - optional name of 3rd level JSON property or selector of item in the JSON array For example: docker.inspect[cid,NetworkSettings,IPAddress], docker.inspect[cid,Config,Env,MESOS_TASK_ID=], docker.inspect[cid,State,StartedAt], docker.inspect[cid,Name] Note 1: Requested value must be plain text/numeric value. JSON objects and booleans are not supported. Note 2: Additional Docker permissions are needed. Note 3: If you use selector for selecting value in array, then selector string is removed from returned value. |
docker.info[info] | Docker information: Requested value from Docker info JSON object (e.g. API v1.21) is returned. info - name of requested information, e.g. Containers, Images, NCPU, ... Note: Additional Docker permissions are needed. |
docker.stats[cid,par1,<par2>,<par3>] | Docker container resource usage statistics: Docker version 1.5+ is required Requested value from Docker stats JSON object (e.g. API v1.21) is returned. par1 - name of 1st level JSON property par2 - optional name of 2nd level JSON property par3 - optional name of 3rd level JSON property For example: docker.stats[cid,memory_stats,usage], docker.stats[cid,network,rx_bytes], docker.stats[cid,cpu_stats,cpu_usage,total_usage] Note 1: Requested value must be plain text/numeric value. JSON objects/arrays are not supported. Note 2: Additional Docker permissions are needed. Note 3: The most accurate way to get Docker container stats, but it's also the slowest (0.3-0.7s), because data are readed from on demand container stats stream. |
docker.cstatus[status] | Count of Docker containers in defined status: status - status of container, available statuses: All - count of all containers Up - count of running containers (Paused included) Exited - count of exited containers Crashed - count of crashed containers (exit code != 0) Paused - count of paused containers Note: Additional Docker permissions are needed. |
docker.up[cid] | Running state check: 1 if container is running, otherwise 0 |
docker.xnet[cid,interface,nmetric] | Network metrics (experimental): interface - name of interface, e.g. eth0, if name is all, then sum of selected metric across all interfaces is returned (lo included) nmetric - any available network metric name from output of command netstat -i: MTU, Met, RX-OK, RX-ERR, RX-DRP, RX-OVR, TX-OK, TX-ERR, TX-DRP, TX-OVR For example: docker.xnet[cid,eth0,TX-OK] docker.xnet[cid,all,RX-ERR] Note: Root permissions (AllowRoot=1) are required, because net namespaces (/var/run/netns/) are created/used |
原文链接:Zabbix监控Docker容器,转载请注明来源!