Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/docker?at=release/7.4
Docker by Zabbix agent 2
Overview
The template to monitor Docker engine by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Docker by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
Requirements
Zabbix version: 7.4 and higher.
Tested versions
This template has been tested on:
- Docker 23.0.3
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Setup and configure Zabbix agent 2 compiled with the Docker monitoring plugin. The user by which the Zabbix agent 2 is running should have access permissions to the Docker socket.
Test availability: zabbix_get -s docker-host -k docker.info
Macros used
Name | Description | Default |
---|---|---|
{$DOCKER.LLD.FILTER.CONTAINER.MATCHES} | Filter of discoverable containers. |
.* |
{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES} | Filter to exclude discovered containers. |
CHANGE_IF_NEEDED |
{$DOCKER.LLD.FILTER.IMAGE.MATCHES} | Filter of discoverable images. |
.* |
{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES} | Filter to exclude discovered images. |
CHANGE_IF_NEEDED |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
Ping | Zabbix agent | docker.ping Preprocessing
|
|
Get info | Zabbix agent | docker.info | |
Get containers | Zabbix agent | docker.containers | |
Get images | Zabbix agent | docker.images | |
Get data_usage | Zabbix agent | docker.data_usage | |
Containers total | Total number of containers on this host. |
Dependent item | docker.containers.total Preprocessing
|
Containers running | Total number of containers running on this host. |
Dependent item | docker.containers.running Preprocessing
|
Containers stopped | Total number of containers stopped on this host. |
Dependent item | docker.containers.stopped Preprocessing
|
Containers paused | Total number of containers paused on this host. |
Dependent item | docker.containers.paused Preprocessing
|
Images total | Number of images with intermediate image layers. |
Dependent item | docker.images.total Preprocessing
|
Storage driver | Docker storage driver. https://docs.docker.com/storage/storagedriver/ |
Dependent item | docker.driver Preprocessing
|
Memory limit enabled | Dependent item | docker.mem_limit.enabled Preprocessing
|
|
Swap limit enabled | Dependent item | docker.swap_limit.enabled Preprocessing
|
|
Kernel memory enabled | Dependent item | docker.kernel_mem.enabled Preprocessing
|
|
Kernel memory TCP enabled | Dependent item | docker.kernel_mem_tcp.enabled Preprocessing
|
|
CPU CFS Period enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_cfs_period.enabled Preprocessing
|
CPU CFS Quota enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_cfs_quota.enabled Preprocessing
|
CPU Shares enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_shares.enabled Preprocessing
|
CPU Set enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_set.enabled Preprocessing
|
Pids limit enabled | Dependent item | docker.pids_limit.enabled Preprocessing
|
|
IPv4 Forwarding enabled | Dependent item | docker.ipv4_forwarding.enabled Preprocessing
|
|
Debug enabled | Dependent item | docker.debug.enabled Preprocessing
|
|
Nfd | Number of used File Descriptors. |
Dependent item | docker.nfd Preprocessing
|
OomKill disabled | Dependent item | docker.oomkill.disabled Preprocessing
|
|
Goroutines | Number of goroutines. |
Dependent item | docker.goroutines Preprocessing
|
Logging driver | Dependent item | docker.logging_driver Preprocessing
|
|
Cgroup driver | Dependent item | docker.cgroup_driver Preprocessing
|
|
NEvents listener | Dependent item | docker.nevents_listener Preprocessing
|
|
Kernel version | Dependent item | docker.kernel_version Preprocessing
|
|
Operating system | Dependent item | docker.operating_system Preprocessing
|
|
OS type | Dependent item | docker.os_type Preprocessing
|
|
Architecture | Dependent item | docker.architecture Preprocessing
|
|
NCPU | Dependent item | docker.ncpu Preprocessing
|
|
Memory total | Dependent item | docker.mem.total Preprocessing
|
|
Docker root dir | Dependent item | docker.root_dir Preprocessing
|
|
Name | Dependent item | docker.name Preprocessing
|
|
Server version | Dependent item | docker.server_version Preprocessing
|
|
Default runtime | Dependent item | docker.default_runtime Preprocessing
|
|
Live restore enabled | Dependent item | docker.live_restore.enabled Preprocessing
|
|
Layers size | Dependent item | docker.layers_size Preprocessing
|
|
Images size | Dependent item | docker.images_size Preprocessing
|
|
Containers size | Dependent item | docker.containers_size Preprocessing
|
|
Volumes size | Dependent item | docker.volumes_size Preprocessing
|
|
Images available | Number of top-level images. |
Dependent item | docker.images.top_level Preprocessing
|
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Service is down | last(/Docker by Zabbix agent 2/docker.ping)=0 |
Average | Manual close: Yes | |
Docker: Failed to fetch info data | Zabbix has not received data for items for the last 30 minutes. |
nodata(/Docker by Zabbix agent 2/docker.name,30m)=1 |
Warning | Manual close: Yes Depends on:
|
Docker: Version has changed | Docker version has changed. Acknowledge to close the problem manually. |
last(/Docker by Zabbix agent 2/docker.server_version,#1)<>last(/Docker by Zabbix agent 2/docker.server_version,#2) and length(last(/Docker by Zabbix agent 2/docker.server_version))>0 |
Info | Manual close: Yes |
LLD rule Images discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Images discovery | Discovery of images metrics. |
Zabbix agent | docker.images.discovery |
Item prototypes for Images discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Image {#NAME}: Created | Dependent item | docker.image.created["{#ID}"] Preprocessing
|
|
Image {#NAME}: Size | Dependent item | docker.image.size["{#ID}"] Preprocessing
|
LLD rule Containers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Containers discovery | Discovery of containers metrics. Parameter: true - Returns all containers false - Returns only running containers |
Zabbix agent | docker.containers.discovery[false] |
Item prototypes for Containers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Container {#NAME}: Get stats | Get container stats based on resource usage. |
Zabbix agent | docker.container_stats["{#NAME}"] |
Container {#NAME}: CPU total usage per second | Dependent item | docker.container_stats.cpu_usage.total.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU percent usage | Dependent item | docker.container_stats.cpu_pct_usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU kernelmode usage per second | Dependent item | docker.container_stats.cpu_usage.kernel.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU usermode usage per second | Dependent item | docker.container_stats.cpu_usage.user.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Online CPUs | Dependent item | docker.container_stats.online_cpus["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Throttling periods | Number of periods with throttling active. |
Dependent item | docker.container_stats.cpu_usage.throttling_periods["{#NAME}"] Preprocessing
|
Container {#NAME}: Throttled periods | Number of periods when the container hits its throttling limit. |
Dependent item | docker.container_stats.cpu_usage.throttled_periods["{#NAME}"] Preprocessing
|
Container {#NAME}: Throttled time | Aggregate time the container was throttled for in nanoseconds. |
Dependent item | docker.container_stats.cpu_usage.throttled_time["{#NAME}"] Preprocessing
|
Container {#NAME}: Memory usage | Dependent item | docker.container_stats.memory.usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory maximum usage | Dependent item | docker.container_stats.memory.max_usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory commit bytes | Dependent item | docker.container_stats.memory.commit_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory commit peak bytes | Dependent item | docker.container_stats.memory.commit_peak_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory private working set | Dependent item | docker.container_stats.memory.private_working_set["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Current PIDs count | Current number of PIDs the container has created. |
Dependent item | docker.container_stats.pids_stats.current["{#NAME}"] Preprocessing
|
Container {#NAME}: Networks bytes received per second | Dependent item | docker.networks.rx_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks packets received per second | Dependent item | docker.networks.rx_packets["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks errors received per second | Dependent item | docker.networks.rx_errors["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks incoming packets dropped per second | Dependent item | docker.networks.rx_dropped["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks bytes sent per second | Dependent item | docker.networks.tx_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks packets sent per second | Dependent item | docker.networks.tx_packets["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks errors sent per second | Dependent item | docker.networks.tx_errors["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks outgoing packets dropped per second | Dependent item | docker.networks.tx_dropped["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Get info | Return low-level information about a container. |
Zabbix agent | docker.container_info["{#NAME}",full] |
Container {#NAME}: Created | Dependent item | docker.container_info.created["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Image | Dependent item | docker.container_info.image["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Restart count | Dependent item | docker.container_info.restart_count["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Status | Dependent item | docker.container_info.state.status["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Health status | Container's |
Dependent item | docker.container_info.state.health["{#NAME}"] Preprocessing
|
Container {#NAME}: Health failing streak | Dependent item | docker.container_info.state.health.failing["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Running | Dependent item | docker.container_info.state.running["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Paused | Dependent item | docker.container_info.state.paused["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Restarting | Dependent item | docker.container_info.state.restarting["{#NAME}"] Preprocessing
|
|
Container {#NAME}: OOMKilled | Dependent item | docker.container_info.state.oomkilled["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Dead | Dependent item | docker.container_info.state.dead["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Pid | Dependent item | docker.container_info.state.pid["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Exit code | Dependent item | docker.container_info.state.exitcode["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Error | Dependent item | docker.container_info.state.error["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Started at | Dependent item | docker.container_info.started["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Finished at | Time at which the container last terminated. |
Dependent item | docker.container_info.finished["{#NAME}"] Preprocessing
|
Trigger prototypes for Containers discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Container {#NAME}: Health state container is unhealthy | Container health state is unhealthy. |
count(/Docker by Zabbix agent 2/docker.container_info.state.health["{#NAME}"],2m,,2)>=2 |
High | |
Docker: Container {#NAME}: Container has been stopped with error code | last(/Docker by Zabbix agent 2/docker.container_info.state.exitcode["{#NAME}"])>0 and last(/Docker by Zabbix agent 2/docker.container_info.state.running["{#NAME}"])=0 |
Average | Manual close: Yes | |
Docker: Container {#NAME}: An error has occurred in the container | Container {#NAME} has an error. Acknowledge to close the problem manually. |
last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#1)<>last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#2) and length(last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"]))>0 |
Warning | Manual close: Yes |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/docker?at=release/7.2
Docker by Zabbix agent 2
Overview
The template to monitor Docker engine by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Docker by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
Requirements
Zabbix version: 7.2 and higher.
Tested versions
This template has been tested on:
- Docker 23.0.3
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Setup and configure Zabbix agent 2 compiled with the Docker monitoring plugin. The user by which the Zabbix agent 2 is running should have access permissions to the Docker socket.
Test availability: zabbix_get -s docker-host -k docker.info
Macros used
Name | Description | Default |
---|---|---|
{$DOCKER.LLD.FILTER.CONTAINER.MATCHES} | Filter of discoverable containers. |
.* |
{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES} | Filter to exclude discovered containers. |
CHANGE_IF_NEEDED |
{$DOCKER.LLD.FILTER.IMAGE.MATCHES} | Filter of discoverable images. |
.* |
{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES} | Filter to exclude discovered images. |
CHANGE_IF_NEEDED |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
Ping | Zabbix agent | docker.ping Preprocessing
|
|
Get info | Zabbix agent | docker.info | |
Get containers | Zabbix agent | docker.containers | |
Get images | Zabbix agent | docker.images | |
Get data_usage | Zabbix agent | docker.data_usage | |
Containers total | Total number of containers on this host. |
Dependent item | docker.containers.total Preprocessing
|
Containers running | Total number of containers running on this host. |
Dependent item | docker.containers.running Preprocessing
|
Containers stopped | Total number of containers stopped on this host. |
Dependent item | docker.containers.stopped Preprocessing
|
Containers paused | Total number of containers paused on this host. |
Dependent item | docker.containers.paused Preprocessing
|
Images total | Number of images with intermediate image layers. |
Dependent item | docker.images.total Preprocessing
|
Storage driver | Docker storage driver. https://docs.docker.com/storage/storagedriver/ |
Dependent item | docker.driver Preprocessing
|
Memory limit enabled | Dependent item | docker.mem_limit.enabled Preprocessing
|
|
Swap limit enabled | Dependent item | docker.swap_limit.enabled Preprocessing
|
|
Kernel memory enabled | Dependent item | docker.kernel_mem.enabled Preprocessing
|
|
Kernel memory TCP enabled | Dependent item | docker.kernel_mem_tcp.enabled Preprocessing
|
|
CPU CFS Period enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_cfs_period.enabled Preprocessing
|
CPU CFS Quota enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_cfs_quota.enabled Preprocessing
|
CPU Shares enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_shares.enabled Preprocessing
|
CPU Set enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_set.enabled Preprocessing
|
Pids limit enabled | Dependent item | docker.pids_limit.enabled Preprocessing
|
|
IPv4 Forwarding enabled | Dependent item | docker.ipv4_forwarding.enabled Preprocessing
|
|
Debug enabled | Dependent item | docker.debug.enabled Preprocessing
|
|
Nfd | Number of used File Descriptors. |
Dependent item | docker.nfd Preprocessing
|
OomKill disabled | Dependent item | docker.oomkill.disabled Preprocessing
|
|
Goroutines | Number of goroutines. |
Dependent item | docker.goroutines Preprocessing
|
Logging driver | Dependent item | docker.logging_driver Preprocessing
|
|
Cgroup driver | Dependent item | docker.cgroup_driver Preprocessing
|
|
NEvents listener | Dependent item | docker.nevents_listener Preprocessing
|
|
Kernel version | Dependent item | docker.kernel_version Preprocessing
|
|
Operating system | Dependent item | docker.operating_system Preprocessing
|
|
OS type | Dependent item | docker.os_type Preprocessing
|
|
Architecture | Dependent item | docker.architecture Preprocessing
|
|
NCPU | Dependent item | docker.ncpu Preprocessing
|
|
Memory total | Dependent item | docker.mem.total Preprocessing
|
|
Docker root dir | Dependent item | docker.root_dir Preprocessing
|
|
Name | Dependent item | docker.name Preprocessing
|
|
Server version | Dependent item | docker.server_version Preprocessing
|
|
Default runtime | Dependent item | docker.default_runtime Preprocessing
|
|
Live restore enabled | Dependent item | docker.live_restore.enabled Preprocessing
|
|
Layers size | Dependent item | docker.layers_size Preprocessing
|
|
Images size | Dependent item | docker.images_size Preprocessing
|
|
Containers size | Dependent item | docker.containers_size Preprocessing
|
|
Volumes size | Dependent item | docker.volumes_size Preprocessing
|
|
Images available | Number of top-level images. |
Dependent item | docker.images.top_level Preprocessing
|
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Service is down | last(/Docker by Zabbix agent 2/docker.ping)=0 |
Average | Manual close: Yes | |
Docker: Failed to fetch info data | Zabbix has not received data for items for the last 30 minutes. |
nodata(/Docker by Zabbix agent 2/docker.name,30m)=1 |
Warning | Manual close: Yes Depends on:
|
Docker: Version has changed | Docker version has changed. Acknowledge to close the problem manually. |
last(/Docker by Zabbix agent 2/docker.server_version,#1)<>last(/Docker by Zabbix agent 2/docker.server_version,#2) and length(last(/Docker by Zabbix agent 2/docker.server_version))>0 |
Info | Manual close: Yes |
LLD rule Images discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Images discovery | Discovery of images metrics. |
Zabbix agent | docker.images.discovery |
Item prototypes for Images discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Image {#NAME}: Created | Dependent item | docker.image.created["{#ID}"] Preprocessing
|
|
Image {#NAME}: Size | Dependent item | docker.image.size["{#ID}"] Preprocessing
|
LLD rule Containers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Containers discovery | Discovery of containers metrics. Parameter: true - Returns all containers false - Returns only running containers |
Zabbix agent | docker.containers.discovery[false] |
Item prototypes for Containers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Container {#NAME}: Get stats | Get container stats based on resource usage. |
Zabbix agent | docker.container_stats["{#NAME}"] |
Container {#NAME}: CPU total usage per second | Dependent item | docker.container_stats.cpu_usage.total.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU percent usage | Dependent item | docker.container_stats.cpu_pct_usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU kernelmode usage per second | Dependent item | docker.container_stats.cpu_usage.kernel.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU usermode usage per second | Dependent item | docker.container_stats.cpu_usage.user.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Online CPUs | Dependent item | docker.container_stats.online_cpus["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Throttling periods | Number of periods with throttling active. |
Dependent item | docker.container_stats.cpu_usage.throttling_periods["{#NAME}"] Preprocessing
|
Container {#NAME}: Throttled periods | Number of periods when the container hits its throttling limit. |
Dependent item | docker.container_stats.cpu_usage.throttled_periods["{#NAME}"] Preprocessing
|
Container {#NAME}: Throttled time | Aggregate time the container was throttled for in nanoseconds. |
Dependent item | docker.container_stats.cpu_usage.throttled_time["{#NAME}"] Preprocessing
|
Container {#NAME}: Memory usage | Dependent item | docker.container_stats.memory.usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory maximum usage | Dependent item | docker.container_stats.memory.max_usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory commit bytes | Dependent item | docker.container_stats.memory.commit_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory commit peak bytes | Dependent item | docker.container_stats.memory.commit_peak_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory private working set | Dependent item | docker.container_stats.memory.private_working_set["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Current PIDs count | Current number of PIDs the container has created. |
Dependent item | docker.container_stats.pids_stats.current["{#NAME}"] Preprocessing
|
Container {#NAME}: Networks bytes received per second | Dependent item | docker.networks.rx_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks packets received per second | Dependent item | docker.networks.rx_packets["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks errors received per second | Dependent item | docker.networks.rx_errors["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks incoming packets dropped per second | Dependent item | docker.networks.rx_dropped["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks bytes sent per second | Dependent item | docker.networks.tx_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks packets sent per second | Dependent item | docker.networks.tx_packets["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks errors sent per second | Dependent item | docker.networks.tx_errors["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks outgoing packets dropped per second | Dependent item | docker.networks.tx_dropped["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Get info | Return low-level information about a container. |
Zabbix agent | docker.container_info["{#NAME}",full] |
Container {#NAME}: Created | Dependent item | docker.container_info.created["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Image | Dependent item | docker.container_info.image["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Restart count | Dependent item | docker.container_info.restart_count["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Status | Dependent item | docker.container_info.state.status["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Health status | Container's |
Dependent item | docker.container_info.state.health["{#NAME}"] Preprocessing
|
Container {#NAME}: Health failing streak | Dependent item | docker.container_info.state.health.failing["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Running | Dependent item | docker.container_info.state.running["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Paused | Dependent item | docker.container_info.state.paused["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Restarting | Dependent item | docker.container_info.state.restarting["{#NAME}"] Preprocessing
|
|
Container {#NAME}: OOMKilled | Dependent item | docker.container_info.state.oomkilled["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Dead | Dependent item | docker.container_info.state.dead["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Pid | Dependent item | docker.container_info.state.pid["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Exit code | Dependent item | docker.container_info.state.exitcode["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Error | Dependent item | docker.container_info.state.error["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Started at | Dependent item | docker.container_info.started["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Finished at | Time at which the container last terminated. |
Dependent item | docker.container_info.finished["{#NAME}"] Preprocessing
|
Trigger prototypes for Containers discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Container {#NAME}: Health state container is unhealthy | Container health state is unhealthy. |
count(/Docker by Zabbix agent 2/docker.container_info.state.health["{#NAME}"],2m,,2)>=2 |
High | |
Docker: Container {#NAME}: Container has been stopped with error code | last(/Docker by Zabbix agent 2/docker.container_info.state.exitcode["{#NAME}"])>0 and last(/Docker by Zabbix agent 2/docker.container_info.state.running["{#NAME}"])=0 |
Average | Manual close: Yes | |
Docker: Container {#NAME}: An error has occurred in the container | Container {#NAME} has an error. Acknowledge to close the problem manually. |
last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#1)<>last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#2) and length(last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"]))>0 |
Warning | Manual close: Yes |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/docker?at=release/7.0
Docker by Zabbix agent 2
Overview
The template to monitor Docker engine by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Docker by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- Docker 23.0.3
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Setup and configure Zabbix agent 2 compiled with the Docker monitoring plugin. The user by which the Zabbix agent 2 is running should have access permissions to the Docker socket.
Test availability: zabbix_get -s docker-host -k docker.info
Macros used
Name | Description | Default |
---|---|---|
{$DOCKER.LLD.FILTER.CONTAINER.MATCHES} | Filter of discoverable containers. |
.* |
{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES} | Filter to exclude discovered containers. |
CHANGE_IF_NEEDED |
{$DOCKER.LLD.FILTER.IMAGE.MATCHES} | Filter of discoverable images. |
.* |
{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES} | Filter to exclude discovered images. |
CHANGE_IF_NEEDED |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
Ping | Zabbix agent | docker.ping Preprocessing
|
|
Get info | Zabbix agent | docker.info | |
Get containers | Zabbix agent | docker.containers | |
Get images | Zabbix agent | docker.images | |
Get data_usage | Zabbix agent | docker.data_usage | |
Containers total | Total number of containers on this host. |
Dependent item | docker.containers.total Preprocessing
|
Containers running | Total number of containers running on this host. |
Dependent item | docker.containers.running Preprocessing
|
Containers stopped | Total number of containers stopped on this host. |
Dependent item | docker.containers.stopped Preprocessing
|
Containers paused | Total number of containers paused on this host. |
Dependent item | docker.containers.paused Preprocessing
|
Images total | Number of images with intermediate image layers. |
Dependent item | docker.images.total Preprocessing
|
Storage driver | Docker storage driver. https://docs.docker.com/storage/storagedriver/ |
Dependent item | docker.driver Preprocessing
|
Memory limit enabled | Dependent item | docker.mem_limit.enabled Preprocessing
|
|
Swap limit enabled | Dependent item | docker.swap_limit.enabled Preprocessing
|
|
Kernel memory enabled | Dependent item | docker.kernel_mem.enabled Preprocessing
|
|
Kernel memory TCP enabled | Dependent item | docker.kernel_mem_tcp.enabled Preprocessing
|
|
CPU CFS Period enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_cfs_period.enabled Preprocessing
|
CPU CFS Quota enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_cfs_quota.enabled Preprocessing
|
CPU Shares enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_shares.enabled Preprocessing
|
CPU Set enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_set.enabled Preprocessing
|
Pids limit enabled | Dependent item | docker.pids_limit.enabled Preprocessing
|
|
IPv4 Forwarding enabled | Dependent item | docker.ipv4_forwarding.enabled Preprocessing
|
|
Debug enabled | Dependent item | docker.debug.enabled Preprocessing
|
|
Nfd | Number of used File Descriptors. |
Dependent item | docker.nfd Preprocessing
|
OomKill disabled | Dependent item | docker.oomkill.disabled Preprocessing
|
|
Goroutines | Number of goroutines. |
Dependent item | docker.goroutines Preprocessing
|
Logging driver | Dependent item | docker.logging_driver Preprocessing
|
|
Cgroup driver | Dependent item | docker.cgroup_driver Preprocessing
|
|
NEvents listener | Dependent item | docker.nevents_listener Preprocessing
|
|
Kernel version | Dependent item | docker.kernel_version Preprocessing
|
|
Operating system | Dependent item | docker.operating_system Preprocessing
|
|
OS type | Dependent item | docker.os_type Preprocessing
|
|
Architecture | Dependent item | docker.architecture Preprocessing
|
|
NCPU | Dependent item | docker.ncpu Preprocessing
|
|
Memory total | Dependent item | docker.mem.total Preprocessing
|
|
Docker root dir | Dependent item | docker.root_dir Preprocessing
|
|
Name | Dependent item | docker.name Preprocessing
|
|
Server version | Dependent item | docker.server_version Preprocessing
|
|
Default runtime | Dependent item | docker.default_runtime Preprocessing
|
|
Live restore enabled | Dependent item | docker.live_restore.enabled Preprocessing
|
|
Layers size | Dependent item | docker.layers_size Preprocessing
|
|
Images size | Dependent item | docker.images_size Preprocessing
|
|
Containers size | Dependent item | docker.containers_size Preprocessing
|
|
Volumes size | Dependent item | docker.volumes_size Preprocessing
|
|
Images available | Number of top-level images. |
Dependent item | docker.images.top_level Preprocessing
|
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Service is down | last(/Docker by Zabbix agent 2/docker.ping)=0 |
Average | Manual close: Yes | |
Docker: Failed to fetch info data | Zabbix has not received data for items for the last 30 minutes. |
nodata(/Docker by Zabbix agent 2/docker.name,30m)=1 |
Warning | Manual close: Yes Depends on:
|
Docker: Version has changed | Docker version has changed. Acknowledge to close the problem manually. |
last(/Docker by Zabbix agent 2/docker.server_version,#1)<>last(/Docker by Zabbix agent 2/docker.server_version,#2) and length(last(/Docker by Zabbix agent 2/docker.server_version))>0 |
Info | Manual close: Yes |
LLD rule Images discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Images discovery | Discovery of images metrics. |
Zabbix agent | docker.images.discovery |
Item prototypes for Images discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Image {#NAME}: Created | Dependent item | docker.image.created["{#ID}"] Preprocessing
|
|
Image {#NAME}: Size | Dependent item | docker.image.size["{#ID}"] Preprocessing
|
LLD rule Containers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Containers discovery | Discovery of containers metrics. Parameter: true - Returns all containers false - Returns only running containers |
Zabbix agent | docker.containers.discovery[false] |
Item prototypes for Containers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Container {#NAME}: Get stats | Get container stats based on resource usage. |
Zabbix agent | docker.container_stats["{#NAME}"] |
Container {#NAME}: CPU total usage per second | Dependent item | docker.container_stats.cpu_usage.total.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU percent usage | Dependent item | docker.container_stats.cpu_pct_usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU kernelmode usage per second | Dependent item | docker.container_stats.cpu_usage.kernel.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU usermode usage per second | Dependent item | docker.container_stats.cpu_usage.user.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Online CPUs | Dependent item | docker.container_stats.online_cpus["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Throttling periods | Number of periods with throttling active. |
Dependent item | docker.container_stats.cpu_usage.throttling_periods["{#NAME}"] Preprocessing
|
Container {#NAME}: Throttled periods | Number of periods when the container hits its throttling limit. |
Dependent item | docker.container_stats.cpu_usage.throttled_periods["{#NAME}"] Preprocessing
|
Container {#NAME}: Throttled time | Aggregate time the container was throttled for in nanoseconds. |
Dependent item | docker.container_stats.cpu_usage.throttled_time["{#NAME}"] Preprocessing
|
Container {#NAME}: Memory usage | Dependent item | docker.container_stats.memory.usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory maximum usage | Dependent item | docker.container_stats.memory.max_usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory commit bytes | Dependent item | docker.container_stats.memory.commit_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory commit peak bytes | Dependent item | docker.container_stats.memory.commit_peak_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory private working set | Dependent item | docker.container_stats.memory.private_working_set["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Current PIDs count | Current number of PIDs the container has created. |
Dependent item | docker.container_stats.pids_stats.current["{#NAME}"] Preprocessing
|
Container {#NAME}: Networks bytes received per second | Dependent item | docker.networks.rx_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks packets received per second | Dependent item | docker.networks.rx_packets["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks errors received per second | Dependent item | docker.networks.rx_errors["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks incoming packets dropped per second | Dependent item | docker.networks.rx_dropped["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks bytes sent per second | Dependent item | docker.networks.tx_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks packets sent per second | Dependent item | docker.networks.tx_packets["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks errors sent per second | Dependent item | docker.networks.tx_errors["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks outgoing packets dropped per second | Dependent item | docker.networks.tx_dropped["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Get info | Return low-level information about a container. |
Zabbix agent | docker.container_info["{#NAME}",full] |
Container {#NAME}: Created | Dependent item | docker.container_info.created["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Image | Dependent item | docker.container_info.image["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Restart count | Dependent item | docker.container_info.restart_count["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Status | Dependent item | docker.container_info.state.status["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Health status | Container's |
Dependent item | docker.container_info.state.health["{#NAME}"] Preprocessing
|
Container {#NAME}: Health failing streak | Dependent item | docker.container_info.state.health.failing["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Running | Dependent item | docker.container_info.state.running["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Paused | Dependent item | docker.container_info.state.paused["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Restarting | Dependent item | docker.container_info.state.restarting["{#NAME}"] Preprocessing
|
|
Container {#NAME}: OOMKilled | Dependent item | docker.container_info.state.oomkilled["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Dead | Dependent item | docker.container_info.state.dead["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Pid | Dependent item | docker.container_info.state.pid["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Exit code | Dependent item | docker.container_info.state.exitcode["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Error | Dependent item | docker.container_info.state.error["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Started at | Dependent item | docker.container_info.started["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Finished at | Time at which the container last terminated. |
Dependent item | docker.container_info.finished["{#NAME}"] Preprocessing
|
Trigger prototypes for Containers discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Container {#NAME}: Health state container is unhealthy | Container health state is unhealthy. |
count(/Docker by Zabbix agent 2/docker.container_info.state.health["{#NAME}"],2m,,2)>=2 |
High | |
Docker: Container {#NAME}: Container has been stopped with error code | last(/Docker by Zabbix agent 2/docker.container_info.state.exitcode["{#NAME}"])>0 and last(/Docker by Zabbix agent 2/docker.container_info.state.running["{#NAME}"])=0 |
Average | Manual close: Yes | |
Docker: Container {#NAME}: An error has occurred in the container | Container {#NAME} has an error. Acknowledge to close the problem manually. |
last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#1)<>last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#2) and length(last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"]))>0 |
Warning | Manual close: Yes |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/docker?at=release/6.4
Docker by Zabbix agent 2
Overview
The template to monitor Docker engine by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Docker by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
Requirements
Zabbix version: 6.4 and higher.
Tested versions
This template has been tested on:
- Docker 23.0.3
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Setup and configure Zabbix agent 2 compiled with the Docker monitoring plugin. The user by which the Zabbix agent 2 is running should have access permissions to the Docker socket.
Test availability: zabbix_get -s docker-host -k docker.info
Macros used
Name | Description | Default |
---|---|---|
{$DOCKER.LLD.FILTER.CONTAINER.MATCHES} | Filter of discoverable containers. |
.* |
{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES} | Filter to exclude discovered containers. |
CHANGE_IF_NEEDED |
{$DOCKER.LLD.FILTER.IMAGE.MATCHES} | Filter of discoverable images. |
.* |
{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES} | Filter to exclude discovered images. |
CHANGE_IF_NEEDED |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
Docker: Ping | Zabbix agent | docker.ping Preprocessing
|
|
Docker: Get info | Zabbix agent | docker.info | |
Docker: Get containers | Zabbix agent | docker.containers | |
Docker: Get images | Zabbix agent | docker.images | |
Docker: Get data_usage | Zabbix agent | docker.data_usage | |
Docker: Containers total | Total number of containers on this host. |
Dependent item | docker.containers.total Preprocessing
|
Docker: Containers running | Total number of containers running on this host. |
Dependent item | docker.containers.running Preprocessing
|
Docker: Containers stopped | Total number of containers stopped on this host. |
Dependent item | docker.containers.stopped Preprocessing
|
Docker: Containers paused | Total number of containers paused on this host. |
Dependent item | docker.containers.paused Preprocessing
|
Docker: Images total | Number of images with intermediate image layers. |
Dependent item | docker.images.total Preprocessing
|
Docker: Storage driver | Docker storage driver. https://docs.docker.com/storage/storagedriver/ |
Dependent item | docker.driver Preprocessing
|
Docker: Memory limit enabled | Dependent item | docker.mem_limit.enabled Preprocessing
|
|
Docker: Swap limit enabled | Dependent item | docker.swap_limit.enabled Preprocessing
|
|
Docker: Kernel memory enabled | Dependent item | docker.kernel_mem.enabled Preprocessing
|
|
Docker: Kernel memory TCP enabled | Dependent item | docker.kernel_mem_tcp.enabled Preprocessing
|
|
Docker: CPU CFS Period enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_cfs_period.enabled Preprocessing
|
Docker: CPU CFS Quota enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_cfs_quota.enabled Preprocessing
|
Docker: CPU Shares enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_shares.enabled Preprocessing
|
Docker: CPU Set enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_set.enabled Preprocessing
|
Docker: Pids limit enabled | Dependent item | docker.pids_limit.enabled Preprocessing
|
|
Docker: IPv4 Forwarding enabled | Dependent item | docker.ipv4_forwarding.enabled Preprocessing
|
|
Docker: Debug enabled | Dependent item | docker.debug.enabled Preprocessing
|
|
Docker: Nfd | Number of used File Descriptors. |
Dependent item | docker.nfd Preprocessing
|
Docker: OomKill disabled | Dependent item | docker.oomkill.disabled Preprocessing
|
|
Docker: Goroutines | Number of goroutines. |
Dependent item | docker.goroutines Preprocessing
|
Docker: Logging driver | Dependent item | docker.logging_driver Preprocessing
|
|
Docker: Cgroup driver | Dependent item | docker.cgroup_driver Preprocessing
|
|
Docker: NEvents listener | Dependent item | docker.nevents_listener Preprocessing
|
|
Docker: Kernel version | Dependent item | docker.kernel_version Preprocessing
|
|
Docker: Operating system | Dependent item | docker.operating_system Preprocessing
|
|
Docker: OS type | Dependent item | docker.os_type Preprocessing
|
|
Docker: Architecture | Dependent item | docker.architecture Preprocessing
|
|
Docker: NCPU | Dependent item | docker.ncpu Preprocessing
|
|
Docker: Memory total | Dependent item | docker.mem.total Preprocessing
|
|
Docker: Docker root dir | Dependent item | docker.root_dir Preprocessing
|
|
Docker: Name | Dependent item | docker.name Preprocessing
|
|
Docker: Server version | Dependent item | docker.server_version Preprocessing
|
|
Docker: Default runtime | Dependent item | docker.default_runtime Preprocessing
|
|
Docker: Live restore enabled | Dependent item | docker.live_restore.enabled Preprocessing
|
|
Docker: Layers size | Dependent item | docker.layers_size Preprocessing
|
|
Docker: Images size | Dependent item | docker.images_size Preprocessing
|
|
Docker: Containers size | Dependent item | docker.containers_size Preprocessing
|
|
Docker: Volumes size | Dependent item | docker.volumes_size Preprocessing
|
|
Docker: Images available | Number of top-level images. |
Dependent item | docker.images.top_level Preprocessing
|
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Service is down | last(/Docker by Zabbix agent 2/docker.ping)=0 |
Average | Manual close: Yes | |
Docker: Failed to fetch info data | Zabbix has not received data for items for the last 30 minutes. |
nodata(/Docker by Zabbix agent 2/docker.name,30m)=1 |
Warning | Manual close: Yes Depends on:
|
Docker: Version has changed | Docker version has changed. Acknowledge to close the problem manually. |
last(/Docker by Zabbix agent 2/docker.server_version,#1)<>last(/Docker by Zabbix agent 2/docker.server_version,#2) and length(last(/Docker by Zabbix agent 2/docker.server_version))>0 |
Info | Manual close: Yes |
LLD rule Images discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Images discovery | Discovery of images metrics. |
Zabbix agent | docker.images.discovery |
Item prototypes for Images discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Image {#NAME}: Created | Dependent item | docker.image.created["{#ID}"] Preprocessing
|
|
Image {#NAME}: Size | Dependent item | docker.image.size["{#ID}"] Preprocessing
|
LLD rule Containers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Containers discovery | Discovery of containers metrics. Parameter: true - Returns all containers false - Returns only running containers |
Zabbix agent | docker.containers.discovery[false] |
Item prototypes for Containers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Container {#NAME}: Get stats | Get container stats based on resource usage. |
Zabbix agent | docker.container_stats["{#NAME}"] |
Container {#NAME}: CPU total usage per second | Dependent item | docker.container_stats.cpu_usage.total.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU percent usage | Dependent item | docker.container_stats.cpu_pct_usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU kernelmode usage per second | Dependent item | docker.container_stats.cpu_usage.kernel.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU usermode usage per second | Dependent item | docker.container_stats.cpu_usage.user.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Online CPUs | Dependent item | docker.container_stats.online_cpus["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Throttling periods | Number of periods with throttling active. |
Dependent item | docker.container_stats.cpu_usage.throttling_periods["{#NAME}"] Preprocessing
|
Container {#NAME}: Throttled periods | Number of periods when the container hits its throttling limit. |
Dependent item | docker.container_stats.cpu_usage.throttled_periods["{#NAME}"] Preprocessing
|
Container {#NAME}: Throttled time | Aggregate time the container was throttled for in nanoseconds. |
Dependent item | docker.container_stats.cpu_usage.throttled_time["{#NAME}"] Preprocessing
|
Container {#NAME}: Memory usage | Dependent item | docker.container_stats.memory.usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory maximum usage | Dependent item | docker.container_stats.memory.max_usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory commit bytes | Dependent item | docker.container_stats.memory.commit_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory commit peak bytes | Dependent item | docker.container_stats.memory.commit_peak_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory private working set | Dependent item | docker.container_stats.memory.private_working_set["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Current PIDs count | Current number of PIDs the container has created. |
Dependent item | docker.container_stats.pids_stats.current["{#NAME}"] Preprocessing
|
Container {#NAME}: Networks bytes received per second | Dependent item | docker.networks.rx_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks packets received per second | Dependent item | docker.networks.rx_packets["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks errors received per second | Dependent item | docker.networks.rx_errors["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks incoming packets dropped per second | Dependent item | docker.networks.rx_dropped["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks bytes sent per second | Dependent item | docker.networks.tx_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks packets sent per second | Dependent item | docker.networks.tx_packets["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks errors sent per second | Dependent item | docker.networks.tx_errors["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks outgoing packets dropped per second | Dependent item | docker.networks.tx_dropped["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Get info | Return low-level information about a container. |
Zabbix agent | docker.container_info["{#NAME}",full] |
Container {#NAME}: Created | Dependent item | docker.container_info.created["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Image | Dependent item | docker.container_info.image["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Restart count | Dependent item | docker.container_info.restart_count["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Status | Dependent item | docker.container_info.state.status["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Health status | Container's |
Dependent item | docker.container_info.state.health["{#NAME}"] Preprocessing
|
Container {#NAME}: Health failing streak | Dependent item | docker.container_info.state.health.failing["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Running | Dependent item | docker.container_info.state.running["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Paused | Dependent item | docker.container_info.state.paused["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Restarting | Dependent item | docker.container_info.state.restarting["{#NAME}"] Preprocessing
|
|
Container {#NAME}: OOMKilled | Dependent item | docker.container_info.state.oomkilled["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Dead | Dependent item | docker.container_info.state.dead["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Pid | Dependent item | docker.container_info.state.pid["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Exit code | Dependent item | docker.container_info.state.exitcode["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Error | Dependent item | docker.container_info.state.error["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Started at | Dependent item | docker.container_info.started["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Finished at | Time at which the container last terminated. |
Dependent item | docker.container_info.finished["{#NAME}"] Preprocessing
|
Trigger prototypes for Containers discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Container {#NAME}: Health state container is unhealthy | Container health state is unhealthy. |
count(/Docker by Zabbix agent 2/docker.container_info.state.health["{#NAME}"],2m,,2)>=2 |
High | |
Container {#NAME}: Container has been stopped with error code | last(/Docker by Zabbix agent 2/docker.container_info.state.exitcode["{#NAME}"])>0 and last(/Docker by Zabbix agent 2/docker.container_info.state.running["{#NAME}"])=0 |
Average | Manual close: Yes | |
Container {#NAME}: An error has occurred in the container | Container {#NAME} has an error. Acknowledge to close the problem manually. |
last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#1)<>last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#2) and length(last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"]))>0 |
Warning | Manual close: Yes |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/docker?at=release/6.2
Docker by Zabbix agent 2
Overview
For Zabbix version: 6.2 and higher
The template to monitor Docker engine by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Docker by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
This template was tested on:
- Docker, version 19.03.5
Setup
See Zabbix template operation for basic instructions.
Setup and configure zabbix-agent2 compiled with the Docker monitoring plugin.
Test availability: zabbix_get -s docker-host -k docker.info
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$DOCKER.LLD.FILTER.CONTAINER.MATCHES} | Filter of discoverable containers |
.* |
{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES} | Filter to exclude discovered containers |
CHANGE_IF_NEEDED |
{$DOCKER.LLD.FILTER.IMAGE.MATCHES} | Filter of discoverable images |
.* |
{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES} | Filter to exclude discovered images |
CHANGE_IF_NEEDED |
Template links
There are no template links in this template.
Discovery rules
Name | Description | Type | Key and additional info |
---|---|---|---|
Containers discovery | Discovery for containers metrics Parameter: true - Returns all containers false - Returns only running containers |
ZABBIX_PASSIVE | docker.containers.discovery[false] Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
Images discovery | Discovery for images metrics |
ZABBIX_PASSIVE | docker.images.discovery Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Docker | Docker: Ping | ZABBIX_PASSIVE | docker.ping Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
|
Docker | Docker: Containers total | Total number of containers on this host |
DEPENDENT | docker.containers.total Preprocessing: - JSONPATH: |
Docker | Docker: Containers running | Total number of containers running on this host |
DEPENDENT | docker.containers.running Preprocessing: - JSONPATH: |
Docker | Docker: Containers stopped | Total number of containers stopped on this host |
DEPENDENT | docker.containers.stopped Preprocessing: - JSONPATH: |
Docker | Docker: Containers paused | Total number of containers paused on this host |
DEPENDENT | docker.containers.paused Preprocessing: - JSONPATH: |
Docker | Docker: Images total | Number of images with intermediate image layers |
DEPENDENT | docker.images.total Preprocessing: - JSONPATH: |
Docker | Docker: Storage driver | Docker storage driver |
DEPENDENT | docker.driver Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Memory limit enabled | - |
DEPENDENT | docker.mem_limit.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Swap limit enabled | - |
DEPENDENT | docker.swap_limit.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Kernel memory enabled | - |
DEPENDENT | docker.kernel_mem.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Kernel memory TCP enabled | - |
DEPENDENT | docker.kernel_mem_tcp.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU CFS Period enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_cfs_period.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU CFS Quota enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_cfs_quota.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU Shares enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_shares.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU Set enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_set.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Pids limit enabled | - |
DEPENDENT | docker.pids_limit.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: IPv4 Forwarding enabled | - |
DEPENDENT | docker.ipv4_forwarding.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Debug enabled | - |
DEPENDENT | docker.debug.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Nfd | Number of used File Descriptors |
DEPENDENT | docker.nfd Preprocessing: - JSONPATH: |
Docker | Docker: OomKill disabled | - |
DEPENDENT | docker.oomkill.disabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Goroutines | Number of goroutines |
DEPENDENT | docker.goroutines Preprocessing: - JSONPATH: |
Docker | Docker: Logging driver | - |
DEPENDENT | docker.logging_driver Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Cgroup driver | - |
DEPENDENT | docker.cgroup_driver Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: NEvents listener | - |
DEPENDENT | docker.nevents_listener Preprocessing: - JSONPATH: |
Docker | Docker: Kernel version | - |
DEPENDENT | docker.kernel_version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Operating system | - |
DEPENDENT | docker.operating_system Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: OS type | - |
DEPENDENT | docker.os_type Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Architecture | - |
DEPENDENT | docker.architecture Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: NCPU | - |
DEPENDENT | docker.ncpu Preprocessing: - JSONPATH: |
Docker | Docker: Memory total | - |
DEPENDENT | docker.mem.total Preprocessing: - JSONPATH: |
Docker | Docker: Docker root dir | - |
DEPENDENT | docker.root_dir Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Name | - |
DEPENDENT | docker.name Preprocessing: - JSONPATH: |
Docker | Docker: Server version | - |
DEPENDENT | docker.server_version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Default runtime | - |
DEPENDENT | docker.default_runtime Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Live restore enabled | - |
DEPENDENT | docker.live_restore.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Layers size | - |
DEPENDENT | docker.layers_size Preprocessing: - JSONPATH: |
Docker | Docker: Images size | - |
DEPENDENT | docker.images_size Preprocessing: - JSONPATH: |
Docker | Docker: Containers size | - |
DEPENDENT | docker.containers_size Preprocessing: - JSONPATH: |
Docker | Docker: Volumes size | - |
DEPENDENT | docker.volumes_size Preprocessing: - JSONPATH: |
Docker | Docker: Images available | Number of top-level images |
DEPENDENT | docker.images.top_level Preprocessing: - JSONPATH: |
Docker | Image {#NAME}: Created | - |
DEPENDENT | docker.image.created["{#ID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Image {#NAME}: Size | - |
DEPENDENT | docker.image.size["{#ID}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Get stats | Get container stats based on resource usage |
ZABBIX_PASSIVE | docker.container_stats["{#NAME}"] |
Docker | Container {#NAME}: CPU total usage per second | - |
DEPENDENT | docker.container_stats.cpu_usage.total.rate["{#NAME}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
Docker | Container {#NAME}: CPU percent usage | - |
DEPENDENT | docker.container_stats.cpu_pct_usage["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: CPU kernelmode usage per second | - |
DEPENDENT | docker.container_stats.cpu_usage.kernel.rate["{#NAME}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
Docker | Container {#NAME}: CPU usermode usage per second | - |
DEPENDENT | docker.container_stats.cpu_usage.user.rate["{#NAME}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
Docker | Container {#NAME}: Online CPUs | - |
DEPENDENT | docker.container_stats.online_cpus["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Throttling periods | Number of periods with throttling active |
DEPENDENT | docker.container_stats.cpu_usage.throttling_periods["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Throttled periods | Number of periods when the container hits its throttling limit |
DEPENDENT | docker.container_stats.cpu_usage.throttled_periods["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Throttled time | Aggregate time the container was throttled for in nanoseconds |
DEPENDENT | docker.container_stats.cpu_usage.throttled_time["{#NAME}"] Preprocessing: - JSONPATH: - MULTIPLIER: |
Docker | Container {#NAME}: Memory usage | - |
DEPENDENT | docker.container_stats.memory.usage["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory maximum usage | - |
DEPENDENT | docker.container_stats.memory.max_usage["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory commit bytes | - |
DEPENDENT | docker.container_stats.memory.commit_bytes["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory commit peak bytes | - |
DEPENDENT | docker.container_stats.memory.commit_peak_bytes["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory private working set | - |
DEPENDENT | docker.container_stats.memory.private_working_set["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Networks bytes received per second | - |
DEPENDENT | docker.networks.rx_bytes["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks packets received per second | - |
DEPENDENT | docker.networks.rx_packets["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks errors received per second | - |
DEPENDENT | docker.networks.rx_errors["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks incoming packets dropped per second | - |
DEPENDENT | docker.networks.rx_dropped["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks bytes sent per second | - |
DEPENDENT | docker.networks.tx_bytes["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks packets sent per second | - |
DEPENDENT | docker.networks.tx_packets["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks errors sent per second | - |
DEPENDENT | docker.networks.tx_errors["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks outgoing packets dropped per second | - |
DEPENDENT | docker.networks.tx_dropped["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Get info | Return low-level information about a container |
ZABBIX_PASSIVE | docker.container_info["{#NAME}"] |
Docker | Container {#NAME}: Created | - |
DEPENDENT | docker.container_info.created["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Image | - |
DEPENDENT | docker.container_info.image["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Restart count | - |
DEPENDENT | docker.container_info.restart_count["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Status | - |
DEPENDENT | docker.container_info.state.status["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Running | - |
DEPENDENT | docker.container_info.state.running["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Paused | - |
DEPENDENT | docker.container_info.state.paused["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Restarting | - |
DEPENDENT | docker.container_info.state.restarting["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: OOMKilled | - |
DEPENDENT | docker.container_info.state.oomkilled["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Dead | - |
DEPENDENT | docker.container_info.state.dead["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Pid | - |
DEPENDENT | docker.container_info.state.pid["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Exit code | - |
DEPENDENT | docker.container_info.state.exitcode["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Error | - |
DEPENDENT | docker.container_info.state.error["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Started at | - |
DEPENDENT | docker.container_info.started["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Finished at | - |
DEPENDENT | docker.container_info.finished["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Zabbix raw items | Docker: Get info | ZABBIX_PASSIVE | docker.info | |
Zabbix raw items | Docker: Get containers | ZABBIX_PASSIVE | docker.containers | |
Zabbix raw items | Docker: Get images | ZABBIX_PASSIVE | docker.images | |
Zabbix raw items | Docker: Get data_usage | ZABBIX_PASSIVE | docker.data_usage |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Service is down | - |
last(/Docker by Zabbix agent 2/docker.ping)=0 |
AVERAGE | Manual close: YES |
Docker: Failed to fetch info data | Zabbix has not received data for items for the last 30 minutes |
nodata(/Docker by Zabbix agent 2/docker.name,30m)=1 |
WARNING | Manual close: YES Depends on: - Docker: Service is down |
Docker: Version has changed | Docker version has changed. Ack to close. |
last(/Docker by Zabbix agent 2/docker.server_version,#1)<>last(/Docker by Zabbix agent 2/docker.server_version,#2) and length(last(/Docker by Zabbix agent 2/docker.server_version))>0 |
INFO | Manual close: YES |
Container {#NAME}: Container has been stopped with error code | - |
last(/Docker by Zabbix agent 2/docker.container_info.state.exitcode["{#NAME}"])>0 and last(/Docker by Zabbix agent 2/docker.container_info.state.running["{#NAME}"])=0 |
AVERAGE | Manual close: YES |
Container {#NAME}: An error has occurred in the container | Container {#NAME} has an error. Ack to close. |
last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#1)<>last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#2) and length(last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"]))>0 |
WARNING | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/docker?at=release/6.0
Docker by Zabbix agent 2
Overview
The template to monitor Docker engine by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Docker by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
Requirements
Zabbix version: 6.0 and higher.
Tested versions
This template has been tested on:
- Docker 23.0.3
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Setup and configure Zabbix agent 2 compiled with the Docker monitoring plugin. The user by which the Zabbix agent 2 is running should have access permissions to the Docker socket.
Test availability: zabbix_get -s docker-host -k docker.info
Macros used
Name | Description | Default |
---|---|---|
{$DOCKER.LLD.FILTER.CONTAINER.MATCHES} | Filter of discoverable containers. |
.* |
{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES} | Filter to exclude discovered containers. |
CHANGE_IF_NEEDED |
{$DOCKER.LLD.FILTER.IMAGE.MATCHES} | Filter of discoverable images. |
.* |
{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES} | Filter to exclude discovered images. |
CHANGE_IF_NEEDED |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
Docker: Ping | Zabbix agent | docker.ping Preprocessing
|
|
Docker: Get info | Zabbix agent | docker.info | |
Docker: Get containers | Zabbix agent | docker.containers | |
Docker: Get images | Zabbix agent | docker.images | |
Docker: Get data_usage | Zabbix agent | docker.data_usage | |
Docker: Containers total | Total number of containers on this host. |
Dependent item | docker.containers.total Preprocessing
|
Docker: Containers running | Total number of containers running on this host. |
Dependent item | docker.containers.running Preprocessing
|
Docker: Containers stopped | Total number of containers stopped on this host. |
Dependent item | docker.containers.stopped Preprocessing
|
Docker: Containers paused | Total number of containers paused on this host. |
Dependent item | docker.containers.paused Preprocessing
|
Docker: Images total | Number of images with intermediate image layers. |
Dependent item | docker.images.total Preprocessing
|
Docker: Storage driver | Docker storage driver. https://docs.docker.com/storage/storagedriver/ |
Dependent item | docker.driver Preprocessing
|
Docker: Memory limit enabled | Dependent item | docker.mem_limit.enabled Preprocessing
|
|
Docker: Swap limit enabled | Dependent item | docker.swap_limit.enabled Preprocessing
|
|
Docker: Kernel memory enabled | Dependent item | docker.kernel_mem.enabled Preprocessing
|
|
Docker: Kernel memory TCP enabled | Dependent item | docker.kernel_mem_tcp.enabled Preprocessing
|
|
Docker: CPU CFS Period enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_cfs_period.enabled Preprocessing
|
Docker: CPU CFS Quota enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_cfs_quota.enabled Preprocessing
|
Docker: CPU Shares enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_shares.enabled Preprocessing
|
Docker: CPU Set enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
Dependent item | docker.cpu_set.enabled Preprocessing
|
Docker: Pids limit enabled | Dependent item | docker.pids_limit.enabled Preprocessing
|
|
Docker: IPv4 Forwarding enabled | Dependent item | docker.ipv4_forwarding.enabled Preprocessing
|
|
Docker: Debug enabled | Dependent item | docker.debug.enabled Preprocessing
|
|
Docker: Nfd | Number of used File Descriptors. |
Dependent item | docker.nfd Preprocessing
|
Docker: OomKill disabled | Dependent item | docker.oomkill.disabled Preprocessing
|
|
Docker: Goroutines | Number of goroutines. |
Dependent item | docker.goroutines Preprocessing
|
Docker: Logging driver | Dependent item | docker.logging_driver Preprocessing
|
|
Docker: Cgroup driver | Dependent item | docker.cgroup_driver Preprocessing
|
|
Docker: NEvents listener | Dependent item | docker.nevents_listener Preprocessing
|
|
Docker: Kernel version | Dependent item | docker.kernel_version Preprocessing
|
|
Docker: Operating system | Dependent item | docker.operating_system Preprocessing
|
|
Docker: OS type | Dependent item | docker.os_type Preprocessing
|
|
Docker: Architecture | Dependent item | docker.architecture Preprocessing
|
|
Docker: NCPU | Dependent item | docker.ncpu Preprocessing
|
|
Docker: Memory total | Dependent item | docker.mem.total Preprocessing
|
|
Docker: Docker root dir | Dependent item | docker.root_dir Preprocessing
|
|
Docker: Name | Dependent item | docker.name Preprocessing
|
|
Docker: Server version | Dependent item | docker.server_version Preprocessing
|
|
Docker: Default runtime | Dependent item | docker.default_runtime Preprocessing
|
|
Docker: Live restore enabled | Dependent item | docker.live_restore.enabled Preprocessing
|
|
Docker: Layers size | Dependent item | docker.layers_size Preprocessing
|
|
Docker: Images size | Dependent item | docker.images_size Preprocessing
|
|
Docker: Containers size | Dependent item | docker.containers_size Preprocessing
|
|
Docker: Volumes size | Dependent item | docker.volumes_size Preprocessing
|
|
Docker: Images available | Number of top-level images. |
Dependent item | docker.images.top_level Preprocessing
|
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Service is down | last(/Docker by Zabbix agent 2/docker.ping)=0 |
Average | Manual close: Yes | |
Docker: Failed to fetch info data | Zabbix has not received any data for items for the last 30 minutes. |
nodata(/Docker by Zabbix agent 2/docker.name,30m)=1 |
Warning | Manual close: Yes Depends on:
|
Docker: Version has changed | Docker version has changed. Acknowledge to close the problem manually. |
last(/Docker by Zabbix agent 2/docker.server_version,#1)<>last(/Docker by Zabbix agent 2/docker.server_version,#2) and length(last(/Docker by Zabbix agent 2/docker.server_version))>0 |
Info | Manual close: Yes |
LLD rule Images discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Images discovery | Discovery of images metrics. |
Zabbix agent | docker.images.discovery |
Item prototypes for Images discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Image {#NAME}: Created | Dependent item | docker.image.created["{#ID}"] Preprocessing
|
|
Image {#NAME}: Size | Dependent item | docker.image.size["{#ID}"] Preprocessing
|
LLD rule Containers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Containers discovery | Discovery of containers metrics. Parameter: true - Returns all containers false - Returns only running containers |
Zabbix agent | docker.containers.discovery[false] |
Item prototypes for Containers discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Container {#NAME}: Get stats | Get container stats based on resource usage. |
Zabbix agent | docker.container_stats["{#NAME}"] |
Container {#NAME}: CPU total usage per second | Dependent item | docker.container_stats.cpu_usage.total.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU percent usage | Dependent item | docker.container_stats.cpu_pct_usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU kernelmode usage per second | Dependent item | docker.container_stats.cpu_usage.kernel.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: CPU usermode usage per second | Dependent item | docker.container_stats.cpu_usage.user.rate["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Online CPUs | Dependent item | docker.container_stats.online_cpus["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Throttling periods | Number of periods with throttling active. |
Dependent item | docker.container_stats.cpu_usage.throttling_periods["{#NAME}"] Preprocessing
|
Container {#NAME}: Throttled periods | Number of periods when the container hits its throttling limit. |
Dependent item | docker.container_stats.cpu_usage.throttled_periods["{#NAME}"] Preprocessing
|
Container {#NAME}: Throttled time | Aggregate time the container was throttled for in nanoseconds. |
Dependent item | docker.container_stats.cpu_usage.throttled_time["{#NAME}"] Preprocessing
|
Container {#NAME}: Memory usage | Dependent item | docker.container_stats.memory.usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory maximum usage | Dependent item | docker.container_stats.memory.max_usage["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory commit bytes | Dependent item | docker.container_stats.memory.commit_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory commit peak bytes | Dependent item | docker.container_stats.memory.commit_peak_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Memory private working set | Dependent item | docker.container_stats.memory.private_working_set["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Current PIDs count | Current number of PIDs the container has created. |
Dependent item | docker.container_stats.pids_stats.current["{#NAME}"] Preprocessing
|
Container {#NAME}: Networks bytes received per second | Dependent item | docker.networks.rx_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks packets received per second | Dependent item | docker.networks.rx_packets["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks errors received per second | Dependent item | docker.networks.rx_errors["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks incoming packets dropped per second | Dependent item | docker.networks.rx_dropped["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks bytes sent per second | Dependent item | docker.networks.tx_bytes["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks packets sent per second | Dependent item | docker.networks.tx_packets["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks errors sent per second | Dependent item | docker.networks.tx_errors["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Networks outgoing packets dropped per second | Dependent item | docker.networks.tx_dropped["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Get info | Return low-level information about a container. |
Zabbix agent | docker.container_info["{#NAME}",full] |
Container {#NAME}: Created | Dependent item | docker.container_info.created["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Image | Dependent item | docker.container_info.image["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Restart count | Dependent item | docker.container_info.restart_count["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Status | Dependent item | docker.container_info.state.status["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Health status | Container's |
Dependent item | docker.container_info.state.health["{#NAME}"] Preprocessing
|
Container {#NAME}: Health failing streak | Dependent item | docker.container_info.state.health.failing["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Running | Dependent item | docker.container_info.state.running["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Paused | Dependent item | docker.container_info.state.paused["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Restarting | Dependent item | docker.container_info.state.restarting["{#NAME}"] Preprocessing
|
|
Container {#NAME}: OOMKilled | Dependent item | docker.container_info.state.oomkilled["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Dead | Dependent item | docker.container_info.state.dead["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Pid | Dependent item | docker.container_info.state.pid["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Exit code | Dependent item | docker.container_info.state.exitcode["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Error | Dependent item | docker.container_info.state.error["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Started at | Dependent item | docker.container_info.started["{#NAME}"] Preprocessing
|
|
Container {#NAME}: Finished at | Time at which the container last terminated. |
Dependent item | docker.container_info.finished["{#NAME}"] Preprocessing
|
Trigger prototypes for Containers discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Container {#NAME}: Health state container is unhealthy | Container health state is unhealthy. |
count(/Docker by Zabbix agent 2/docker.container_info.state.health["{#NAME}"],2m,,2)>=2 |
High | |
Container {#NAME}: Container has been stopped with error code | last(/Docker by Zabbix agent 2/docker.container_info.state.exitcode["{#NAME}"])>0 and last(/Docker by Zabbix agent 2/docker.container_info.state.running["{#NAME}"])=0 |
Average | Manual close: Yes | |
Container {#NAME}: An error has occurred in the container | Container {#NAME} has an error. Acknowledge to close the problem manually. |
last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#1)<>last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#2) and length(last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"]))>0 |
Warning | Manual close: Yes |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/docker?at=release/5.4
Docker by Zabbix agent 2
Overview
For Zabbix version: 5.4 and higher
The template to monitor Docker engine by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Docker by Zabbix agent 2
— collects metrics by polling zabbix-agent2.
This template was tested on:
- Docker, version 19.03.5
Setup
See Zabbix template operation for basic instructions.
Setup and configure zabbix-agent2 compiled with the Docker monitoring plugin.
Test availability: zabbix_get -s docker-host -k docker.info
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$DOCKER.LLD.FILTER.CONTAINER.MATCHES} | Filter of discoverable containers |
.* |
{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES} | Filter to exclude discovered containers |
CHANGE_IF_NEEDED |
{$DOCKER.LLD.FILTER.IMAGE.MATCHES} | Filter of discoverable images |
.* |
{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES} | Filter to exclude discovered images |
CHANGE_IF_NEEDED |
Template links
There are no template links in this template.
Discovery rules
Name | Description | Type | Key and additional info |
---|---|---|---|
Images discovery | Discovery for images metrics |
ZABBIX_PASSIVE | docker.images.discovery Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
Containers discovery | Discovery for containers metrics Parameter: true - Returns all containers false - Returns only running containers |
ZABBIX_PASSIVE | docker.containers.discovery[false] Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Docker | Docker: Ping | ZABBIX_PASSIVE | docker.ping Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
|
Docker | Docker: Containers total | Total number of containers on this host |
DEPENDENT | docker.containers.total Preprocessing: - JSONPATH: |
Docker | Docker: Containers running | Total number of containers running on this host |
DEPENDENT | docker.containers.running Preprocessing: - JSONPATH: |
Docker | Docker: Containers stopped | Total number of containers stopped on this host |
DEPENDENT | docker.containers.stopped Preprocessing: - JSONPATH: |
Docker | Docker: Containers paused | Total number of containers paused on this host |
DEPENDENT | docker.containers.paused Preprocessing: - JSONPATH: |
Docker | Docker: Images total | Number of images with intermediate image layers |
DEPENDENT | docker.images.total Preprocessing: - JSONPATH: |
Docker | Docker: Storage driver | Docker storage driver |
DEPENDENT | docker.driver Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Memory limit enabled | - |
DEPENDENT | docker.mem_limit.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Swap limit enabled | - |
DEPENDENT | docker.swap_limit.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Kernel memory enabled | - |
DEPENDENT | docker.kernel_mem.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Kernel memory TCP enabled | - |
DEPENDENT | docker.kernel_mem_tcp.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU CFS Period enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_cfs_period.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU CFS Quota enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_cfs_quota.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU Shares enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_shares.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU Set enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_set.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Pids limit enabled | - |
DEPENDENT | docker.pids_limit.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: IPv4 Forwarding enabled | - |
DEPENDENT | docker.ipv4_forwarding.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Debug enabled | - |
DEPENDENT | docker.debug.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Nfd | Number of used File Descriptors |
DEPENDENT | docker.nfd Preprocessing: - JSONPATH: |
Docker | Docker: OomKill disabled | - |
DEPENDENT | docker.oomkill.disabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Goroutines | Number of goroutines |
DEPENDENT | docker.goroutines Preprocessing: - JSONPATH: |
Docker | Docker: Logging driver | - |
DEPENDENT | docker.logging_driver Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Cgroup driver | - |
DEPENDENT | docker.cgroup_driver Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: NEvents listener | - |
DEPENDENT | docker.nevents_listener Preprocessing: - JSONPATH: |
Docker | Docker: Kernel version | - |
DEPENDENT | docker.kernel_version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Operating system | - |
DEPENDENT | docker.operating_system Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: OS type | - |
DEPENDENT | docker.os_type Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Architecture | - |
DEPENDENT | docker.architecture Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: NCPU | - |
DEPENDENT | docker.ncpu Preprocessing: - JSONPATH: |
Docker | Docker: Memory total | - |
DEPENDENT | docker.mem.total Preprocessing: - JSONPATH: |
Docker | Docker: Docker root dir | - |
DEPENDENT | docker.root_dir Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Name | - |
DEPENDENT | docker.name Preprocessing: - JSONPATH: |
Docker | Docker: Server version | - |
DEPENDENT | docker.server_version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Default runtime | - |
DEPENDENT | docker.default_runtime Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Live restore enabled | - |
DEPENDENT | docker.live_restore.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Layers size | - |
DEPENDENT | docker.layers_size Preprocessing: - JSONPATH: |
Docker | Docker: Images size | - |
DEPENDENT | docker.images_size Preprocessing: - JSONPATH: |
Docker | Docker: Containers size | - |
DEPENDENT | docker.containers_size Preprocessing: - JSONPATH: |
Docker | Docker: Volumes size | - |
DEPENDENT | docker.volumes_size Preprocessing: - JSONPATH: |
Docker | Docker: Images available | Number of top-level images |
DEPENDENT | docker.images.top_level Preprocessing: - JSONPATH: |
Docker | Image {#NAME}: Created | - |
DEPENDENT | docker.image.created["{#ID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Image {#NAME}: Size | - |
DEPENDENT | docker.image.size["{#ID}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Get stats | Get container stats based on resource usage |
ZABBIX_PASSIVE | docker.container_stats["{#NAME}"] |
Docker | Container {#NAME}: CPU total usage per second | - |
DEPENDENT | docker.container_stats.cpu_usage.total.rate["{#NAME}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
Docker | Container {#NAME}: CPU percent usage | - |
DEPENDENT | docker.container_stats.cpu_pct_usage["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: CPU kernelmode usage per second | - |
DEPENDENT | docker.container_stats.cpu_usage.kernel.rate["{#NAME}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
Docker | Container {#NAME}: CPU usermode usage per second | - |
DEPENDENT | docker.container_stats.cpu_usage.user.rate["{#NAME}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
Docker | Container {#NAME}: Online CPUs | - |
DEPENDENT | docker.container_stats.online_cpus["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Throttling periods | Number of periods with throttling active |
DEPENDENT | docker.container_stats.cpu_usage.throttling_periods["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Throttled periods | Number of periods when the container hits its throttling limit |
DEPENDENT | docker.container_stats.cpu_usage.throttled_periods["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Throttled time | Aggregate time the container was throttled for in nanoseconds |
DEPENDENT | docker.container_stats.cpu_usage.throttled_time["{#NAME}"] Preprocessing: - JSONPATH: - MULTIPLIER: |
Docker | Container {#NAME}: Memory usage | - |
DEPENDENT | docker.container_stats.memory.usage["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory maximum usage | - |
DEPENDENT | docker.container_stats.memory.max_usage["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory commit bytes | - |
DEPENDENT | docker.container_stats.memory.commit_bytes["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory commit peak bytes | - |
DEPENDENT | docker.container_stats.memory.commit_peak_bytes["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory private working set | - |
DEPENDENT | docker.container_stats.memory.private_working_set["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Networks bytes received per second | - |
DEPENDENT | docker.networks.rx_bytes["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks packets received per second | - |
DEPENDENT | docker.networks.rx_packets["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks errors received per second | - |
DEPENDENT | docker.networks.rx_errors["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks incoming packets dropped per second | - |
DEPENDENT | docker.networks.rx_dropped["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks bytes sent per second | - |
DEPENDENT | docker.networks.tx_bytes["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks packets sent per second | - |
DEPENDENT | docker.networks.tx_packets["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks errors sent per second | - |
DEPENDENT | docker.networks.tx_errors["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks outgoing packets dropped per second | - |
DEPENDENT | docker.networks.tx_dropped["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Get info | Return low-level information about a container |
ZABBIX_PASSIVE | docker.container_info["{#NAME}"] |
Docker | Container {#NAME}: Created | - |
DEPENDENT | docker.container_info.created["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Image | - |
DEPENDENT | docker.container_info.image["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Restart count | - |
DEPENDENT | docker.container_info.restart_count["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Status | - |
DEPENDENT | docker.container_info.state.status["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Running | - |
DEPENDENT | docker.container_info.state.running["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Paused | - |
DEPENDENT | docker.container_info.state.paused["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Restarting | - |
DEPENDENT | docker.container_info.state.restarting["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: OOMKilled | - |
DEPENDENT | docker.container_info.state.oomkilled["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Dead | - |
DEPENDENT | docker.container_info.state.dead["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Pid | - |
DEPENDENT | docker.container_info.state.pid["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Exit code | - |
DEPENDENT | docker.container_info.state.exitcode["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Error | - |
DEPENDENT | docker.container_info.state.error["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Started at | - |
DEPENDENT | docker.container_info.started["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Finished at | - |
DEPENDENT | docker.container_info.finished["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Zabbix_raw_items | Docker: Get info | ZABBIX_PASSIVE | docker.info | |
Zabbix_raw_items | Docker: Get containers | ZABBIX_PASSIVE | docker.containers | |
Zabbix_raw_items | Docker: Get images | ZABBIX_PASSIVE | docker.images | |
Zabbix_raw_items | Docker: Get data_usage | ZABBIX_PASSIVE | docker.data_usage |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Service is down | - |
last(/Docker by Zabbix agent 2/docker.ping)=0 |
AVERAGE | Manual close: YES |
Docker: Failed to fetch info data (or no data for 30m) | Zabbix has not received data for items for the last 30 minutes |
nodata(/Docker by Zabbix agent 2/docker.name,30m)=1 |
WARNING | Manual close: YES Depends on: - Docker: Service is down |
Docker: Version has changed (new version: {ITEM.VALUE}) | Docker version has changed. Ack to close. |
last(/Docker by Zabbix agent 2/docker.server_version,#1)<>last(/Docker by Zabbix agent 2/docker.server_version,#2) and length(last(/Docker by Zabbix agent 2/docker.server_version))>0 |
INFO | Manual close: YES |
Container {#NAME}: Container has been stopped with error code | - |
last(/Docker by Zabbix agent 2/docker.container_info.state.exitcode["{#NAME}"])>0 and last(/Docker by Zabbix agent 2/docker.container_info.state.running["{#NAME}"])=0 |
AVERAGE | Manual close: YES |
Container {#NAME}: An error has occurred in the container | Container {#NAME} has an error. Ack to close. |
last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#1)<>last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"],#2) and length(last(/Docker by Zabbix agent 2/docker.container_info.state.error["{#NAME}"]))>0 |
WARNING | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/docker?at=release/5.0
Template App Docker
Overview
For Zabbix version: 5.0 and higher
The template to monitor Docker engine by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Docker
— collects metrics by polling zabbix-agent2.
This template was tested on:
- Docker, version 19.03.5
Setup
See Zabbix template operation for basic instructions.
Setup and configure zabbix-agent2 compiled with the Docker monitoring plugin.
Test availability: zabbix_get -s docker-host -k docker.info
Zabbix configuration
No specific Zabbix configuration is required.
Macros used
Name | Description | Default |
---|---|---|
{$DOCKER.LLD.FILTER.CONTAINER.MATCHES} | Filter of discoverable containers |
.* |
{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES} | Filter to exclude discovered containers |
CHANGE_IF_NEEDED |
{$DOCKER.LLD.FILTER.IMAGE.MATCHES} | Filter of discoverable images |
.* |
{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES} | Filter to exclude discovered images |
CHANGE_IF_NEEDED |
Template links
There are no template links in this template.
Discovery rules
Name | Description | Type | Key and additional info |
---|---|---|---|
Images discovery | Discovery for images metrics |
ZABBIX_PASSIVE | docker.images.discovery Filter: AND- A: {#NAME} MATCHES_REGEX - B: {#NAME} NOT_MATCHES_REGEX |
Containers discovery | Discovery for containers metrics Parameter: true - Returns all containers false - Returns only running containers |
ZABBIX_PASSIVE | docker.containers.discovery[false] Filter: AND- A: {#NAME} MATCHES_REGEX - B: {#NAME} NOT_MATCHES_REGEX |
Items collected
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Docker | Docker: Ping | ZABBIX_PASSIVE | docker.ping Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
|
Docker | Docker: Containers total | Total number of containers on this host |
DEPENDENT | docker.containers.total Preprocessing: - JSONPATH: |
Docker | Docker: Containers running | Total number of containers running on this host |
DEPENDENT | docker.containers.running Preprocessing: - JSONPATH: |
Docker | Docker: Containers stopped | Total number of containers stopped on this host |
DEPENDENT | docker.containers.stopped Preprocessing: - JSONPATH: |
Docker | Docker: Containers paused | Total number of containers paused on this host |
DEPENDENT | docker.containers.paused Preprocessing: - JSONPATH: |
Docker | Docker: Images total | Number of images with intermediate image layers |
DEPENDENT | docker.images.total Preprocessing: - JSONPATH: |
Docker | Docker: Storage driver | Docker storage driver |
DEPENDENT | docker.driver Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Memory limit enabled | - |
DEPENDENT | docker.mem_limit.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Swap limit enabled | - |
DEPENDENT | docker.swap_limit.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Kernel memory enabled | - |
DEPENDENT | docker.kernel_mem.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Kernel memory TCP enabled | - |
DEPENDENT | docker.kernel_mem_tcp.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU CFS Period enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_cfs_period.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU CFS Quota enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_cfs_quota.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU Shares enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_shares.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: CPU Set enabled | https://docs.docker.com/config/containers/resource_constraints/#configure-the-default-cfs-scheduler |
DEPENDENT | docker.cpu_set.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Pids limit enabled | - |
DEPENDENT | docker.pids_limit.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: IPv4 Forwarding enabled | - |
DEPENDENT | docker.ipv4_forwarding.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Debug enabled | - |
DEPENDENT | docker.debug.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Nfd | Number of used File Descriptors |
DEPENDENT | docker.nfd Preprocessing: - JSONPATH: |
Docker | Docker: OomKill disabled | - |
DEPENDENT | docker.oomkill.disabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Goroutines | Number of goroutines |
DEPENDENT | docker.goroutines Preprocessing: - JSONPATH: |
Docker | Docker: Logging driver | - |
DEPENDENT | docker.logging_driver Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Cgroup driver | - |
DEPENDENT | docker.cgroup_driver Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: NEvents listener | - |
DEPENDENT | docker.nevents_listener Preprocessing: - JSONPATH: |
Docker | Docker: Kernel version | - |
DEPENDENT | docker.kernel_version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Operating system | - |
DEPENDENT | docker.operating_system Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: OS type | - |
DEPENDENT | docker.os_type Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Architecture | - |
DEPENDENT | docker.architecture Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: NCPU | - |
DEPENDENT | docker.ncpu Preprocessing: - JSONPATH: |
Docker | Docker: Memory total | - |
DEPENDENT | docker.mem.total Preprocessing: - JSONPATH: |
Docker | Docker: Docker root dir | - |
DEPENDENT | docker.root_dir Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Name | - |
DEPENDENT | docker.name Preprocessing: - JSONPATH: |
Docker | Docker: Server version | - |
DEPENDENT | docker.server_version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Default runtime | - |
DEPENDENT | docker.default_runtime Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Live restore enabled | - |
DEPENDENT | docker.live_restore.enabled Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Docker: Layers size | - |
DEPENDENT | docker.layers_size Preprocessing: - JSONPATH: |
Docker | Docker: Images size | - |
DEPENDENT | docker.images_size Preprocessing: - JSONPATH: |
Docker | Docker: Containers size | - |
DEPENDENT | docker.containers_size Preprocessing: - JSONPATH: |
Docker | Docker: Volumes size | - |
DEPENDENT | docker.volumes_size Preprocessing: - JSONPATH: |
Docker | Docker: Images available | Number of top-level images |
DEPENDENT | docker.images.top_level Preprocessing: - JSONPATH: |
Docker | Image {#NAME}: Created | - |
DEPENDENT | docker.image.created["{#ID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Image {#NAME}: Size | - |
DEPENDENT | docker.image.size["{#ID}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Get stats | Get container stats based on resource usage |
ZABBIX_PASSIVE | docker.container_stats["{#NAME}"] |
Docker | Container {#NAME}: CPU total usage per second | - |
DEPENDENT | docker.container_stats.cpu_usage.total.rate["{#NAME}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
Docker | Container {#NAME}: CPU percent usage | - |
DEPENDENT | docker.container_stats.cpu_pct_usage["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: CPU kernelmode usage per second | - |
DEPENDENT | docker.container_stats.cpu_usage.kernel.rate["{#NAME}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
Docker | Container {#NAME}: CPU usermode usage per second | - |
DEPENDENT | docker.container_stats.cpu_usage.user.rate["{#NAME}"] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
Docker | Container {#NAME}: Online CPUs | - |
DEPENDENT | docker.container_stats.online_cpus["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Throttling periods | Number of periods with throttling active |
DEPENDENT | docker.container_stats.cpu_usage.throttling_periods["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Throttled periods | Number of periods when the container hits its throttling limit |
DEPENDENT | docker.container_stats.cpu_usage.throttled_periods["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Throttled time | Aggregate time the container was throttled for in nanoseconds |
DEPENDENT | docker.container_stats.cpu_usage.throttled_time["{#NAME}"] Preprocessing: - JSONPATH: - MULTIPLIER: |
Docker | Container {#NAME}: Memory usage | - |
DEPENDENT | docker.container_stats.memory.usage["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory maximum usage | - |
DEPENDENT | docker.container_stats.memory.max_usage["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory commit bytes | - |
DEPENDENT | docker.container_stats.memory.commit_bytes["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory commit peak bytes | - |
DEPENDENT | docker.container_stats.memory.commit_peak_bytes["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Memory private working set | - |
DEPENDENT | docker.container_stats.memory.private_working_set["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Networks bytes received per second | - |
DEPENDENT | docker.networks.rx_bytes["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks packets received per second | - |
DEPENDENT | docker.networks.rx_packets["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks errors received per second | - |
DEPENDENT | docker.networks.rx_errors["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks incoming packets dropped per second | - |
DEPENDENT | docker.networks.rx_dropped["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks bytes sent per second | - |
DEPENDENT | docker.networks.tx_bytes["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks packets sent per second | - |
DEPENDENT | docker.networks.tx_packets["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks errors sent per second | - |
DEPENDENT | docker.networks.tx_errors["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Networks outgoing packets dropped per second | - |
DEPENDENT | docker.networks.tx_dropped["{#NAME}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - CHANGE_PER_SECOND |
Docker | Container {#NAME}: Get info | Return low-level information about a container |
ZABBIX_PASSIVE | docker.container_info["{#NAME}"] |
Docker | Container {#NAME}: Created | - |
DEPENDENT | docker.container_info.created["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Image | - |
DEPENDENT | docker.container_info.image["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Restart count | - |
DEPENDENT | docker.container_info.restart_count["{#NAME}"] Preprocessing: - JSONPATH: |
Docker | Container {#NAME}: Status | - |
DEPENDENT | docker.container_info.state.status["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Running | - |
DEPENDENT | docker.container_info.state.running["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Paused | - |
DEPENDENT | docker.container_info.state.paused["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Restarting | - |
DEPENDENT | docker.container_info.state.restarting["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: OOMKilled | - |
DEPENDENT | docker.container_info.state.oomkilled["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Dead | - |
DEPENDENT | docker.container_info.state.dead["{#NAME}"] Preprocessing: - JSONPATH: - BOOL_TO_DECIMAL |
Docker | Container {#NAME}: Pid | - |
DEPENDENT | docker.container_info.state.pid["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Exit code | - |
DEPENDENT | docker.container_info.state.exitcode["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Error | - |
DEPENDENT | docker.container_info.state.error["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Started at | - |
DEPENDENT | docker.container_info.started["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Docker | Container {#NAME}: Finished at | - |
DEPENDENT | docker.container_info.finished["{#NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
Zabbix_raw_items | Docker: Get info | ZABBIX_PASSIVE | docker.info | |
Zabbix_raw_items | Docker: Get containers | ZABBIX_PASSIVE | docker.containers | |
Zabbix_raw_items | Docker: Get images | ZABBIX_PASSIVE | docker.images | |
Zabbix_raw_items | Docker: Get data_usage | ZABBIX_PASSIVE | docker.data_usage |
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Docker: Service is down | - |
{TEMPLATE_NAME:docker.ping.last()}=0 |
AVERAGE | Manual close: YES |
Docker: Failed to fetch info data (or no data for 30m) | Zabbix has not received data for items for the last 30 minutes |
{TEMPLATE_NAME:docker.name.nodata(30m)}=1 |
WARNING | Manual close: YES Depends on: - Docker: Service is down |
Docker: Version has changed (new version: {ITEM.VALUE}) | Docker version has changed. Ack to close. |
{TEMPLATE_NAME:docker.server_version.diff()}=1 and {TEMPLATE_NAME:docker.server_version.strlen()}>0 |
INFO | Manual close: YES |
Container {#NAME}: Container has been stopped with error code | - |
{TEMPLATE_NAME:docker.container_info.state.exitcode["{#NAME}"].last()}>0 and {TEMPLATE_NAME:docker.container_info.state.running["{#NAME}"].last()}=0 |
AVERAGE | Manual close: YES |
Container {#NAME}: An error has occurred in the container | Container {#NAME} has an error. Ack to close. |
{TEMPLATE_NAME:docker.container_info.state.error["{#NAME}"].diff()}=1 and {TEMPLATE_NAME:docker.container_info.state.error["{#NAME}"].strlen()}>0 |
WARNING | Manual close: YES |
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.