zabbix_export: version: '5.2' date: '2021-11-29T12:29:17Z' groups: - name: Docker templates: - template: Docker name: Docker description: | Get Docker engine metrics from plugin for the New Zabbix Agent (zabbix-agent2). You can discuss this template or leave feedback on our forum Template tooling version used: 0.38 groups: - name: Docker applications: - name: Docker - name: 'Zabbix raw items' items: - name: 'Docker: Get containers' key: docker.containers history: '0' trends: '0' value_type: TEXT applications: - name: 'Zabbix raw items' - name: 'Docker: Containers paused' type: DEPENDENT key: docker.containers.paused delay: '0' history: 7d description: 'Total number of containers paused on this host' applications: - name: Docker preprocessing: - type: JSONPATH parameters: - $.ContainersPaused master_item: key: docker.info - name: 'Docker: Containers running' type: DEPENDENT key: docker.containers.running delay: '0' history: 7d description: 'Total number of containers running on this host' applications: - name: Docker preprocessing: - type: JSONPATH parameters: - $.ContainersRunning master_item: key: docker.info - name: 'Docker: Containers stopped' type: DEPENDENT key: docker.containers.stopped delay: '0' history: 7d description: 'Total number of containers stopped on this host' applications: - name: Docker preprocessing: - type: JSONPATH parameters: - $.ContainersStopped master_item: key: docker.info triggers: - expression: '{avg(5m)}>=1' name: 'Docker: containers is stopped' priority: HIGH - name: 'Docker: Containers total' type: DEPENDENT key: docker.containers.total delay: '0' history: 7d description: 'Total number of containers on this host' applications: - name: Docker preprocessing: - type: JSONPATH parameters: - $.Containers master_item: key: docker.info - name: 'Docker: Get images' key: docker.images history: '0' trends: '0' status: DISABLED value_type: TEXT applications: - name: 'Zabbix raw items' - name: 'Docker: Get info' key: docker.info history: '0' trends: '0' value_type: TEXT applications: - name: 'Zabbix raw items' - name: 'Docker: Memory total' type: DEPENDENT key: docker.mem.total delay: '0' history: 7d status: DISABLED units: B applications: - name: Docker preprocessing: - type: JSONPATH parameters: - $.MemTotal master_item: key: docker.info - name: 'Docker: Ping' key: docker.ping history: 7h applications: - name: Docker valuemap: name: 'Service state' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 10m triggers: - expression: '{last()}=0' name: 'Docker: Service is down' priority: AVERAGE manual_close: 'YES' discovery_rules: - name: 'Containers discovery' key: 'docker.containers.discovery[true]' delay: 15m filter: evaltype: AND conditions: - macro: '{#NAME}' value: '{$DOCKER.LLD.FILTER.CONTAINER.MATCHES}' formulaid: A - macro: '{#NAME}' value: '{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: B description: | Discovery for containers metrics Parameter: true - Returns all containers false - Returns only running containers item_prototypes: - name: 'Container {#NAME}: Finished at' type: DEPENDENT key: 'docker.container_info.finished["{#NAME}"]' delay: '0' history: 7d value_type: FLOAT units: unixtime application_prototypes: - name: 'Docker: Container {#NAME}' preprocessing: - type: JSONPATH parameters: - $.State.FinishedAt - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: 'docker.container_info["{#NAME}"]' - name: 'Container {#NAME}: Restart count' type: DEPENDENT key: 'docker.container_info.restart_count["{#NAME}"]' delay: '0' history: 7d application_prototypes: - name: 'Docker: Container {#NAME}' preprocessing: - type: JSONPATH parameters: - $.RestartCount master_item: key: 'docker.container_info["{#NAME}"]' trigger_prototypes: - expression: '{last()}>5' name: 'Container {#NAME}: restarting constantly' opdata: '{ITEM.VALUE}' priority: HIGH - name: 'Container {#NAME}: Started at' type: DEPENDENT key: 'docker.container_info.started["{#NAME}"]' delay: '0' history: 7d value_type: FLOAT units: unixtime application_prototypes: - name: 'Docker: Container {#NAME}' preprocessing: - type: JSONPATH parameters: - $.State.StartedAt - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: 'docker.container_info["{#NAME}"]' - name: 'Container {#NAME}: Error' type: DEPENDENT key: 'docker.container_info.state.error["{#NAME}"]' delay: '0' history: 7d trends: '0' value_type: CHAR application_prototypes: - name: 'Docker: Container {#NAME}' preprocessing: - type: JSONPATH parameters: - $.State.Error - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: 'docker.container_info["{#NAME}"]' trigger_prototypes: - expression: '{diff()}=1 and {strlen()}>0' name: 'Container {#NAME}: An error has occurred in the container' priority: WARNING description: 'Container {#NAME} has an error. Ack to close.' manual_close: 'YES' - name: 'Container {#NAME}: Exit code' type: DEPENDENT key: 'docker.container_info.state.exitcode["{#NAME}"]' delay: '0' history: 7d application_prototypes: - name: 'Docker: Container {#NAME}' preprocessing: - type: JSONPATH parameters: - $.State.ExitCode - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: 'docker.container_info["{#NAME}"]' - name: 'Container {#NAME}: Paused' type: DEPENDENT key: 'docker.container_info.state.paused["{#NAME}"]' delay: '0' history: 7d application_prototypes: - name: 'Docker: Container {#NAME}' valuemap: name: 'Docker flag' preprocessing: - type: JSONPATH parameters: - $.State.Paused - type: BOOL_TO_DECIMAL parameters: - '' master_item: key: 'docker.container_info["{#NAME}"]' - name: 'Container {#NAME}: Restarting' type: DEPENDENT key: 'docker.container_info.state.restarting["{#NAME}"]' delay: '0' history: 7d application_prototypes: - name: 'Docker: Container {#NAME}' valuemap: name: 'Docker flag' preprocessing: - type: JSONPATH parameters: - $.State.Restarting - type: BOOL_TO_DECIMAL parameters: - '' master_item: key: 'docker.container_info["{#NAME}"]' - name: 'Container {#NAME}: Running' type: DEPENDENT key: 'docker.container_info.state.running["{#NAME}"]' delay: '0' history: 7d application_prototypes: - name: 'Docker: Container {#NAME}' valuemap: name: 'Docker flag' preprocessing: - type: JSONPATH parameters: - $.State.Running - type: BOOL_TO_DECIMAL parameters: - '' master_item: key: 'docker.container_info["{#NAME}"]' - name: 'Container {#NAME}: Status' type: DEPENDENT key: 'docker.container_info.state.status["{#NAME}"]' delay: '0' history: 7d trends: '0' value_type: CHAR application_prototypes: - name: 'Docker: Container {#NAME}' preprocessing: - type: JSONPATH parameters: - $.State.Status - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'docker.container_info["{#NAME}"]' - name: 'Container {#NAME}: Get info' key: 'docker.container_info["{#NAME}"]' history: '0' trends: '0' value_type: CHAR description: 'Return low-level information about a container' application_prototypes: - name: 'Docker: Container {#NAME}' trigger_prototypes: - expression: '{Docker:docker.container_info.state.exitcode["{#NAME}"].last()}>0 and {Docker:docker.container_info.state.running["{#NAME}"].last()}=0' name: 'Container {#NAME}: Container has been stopped with error code' opdata: 'Exit code: {ITEM.LASTVALUE1}' priority: AVERAGE manual_close: 'YES' macros: - macro: '{$DOCKER.LLD.FILTER.CONTAINER.MATCHES}' value: '.*' description: 'Filter of discoverable containers' - macro: '{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES}' value: CHANGE_IF_NEEDED description: 'Filter to exclude discovered containers' - macro: '{$DOCKER.LLD.FILTER.IMAGE.MATCHES}' value: '.*' description: 'Filter of discoverable images' - macro: '{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES}' value: CHANGE_IF_NEEDED description: 'Filter to exclude discovered images' graphs: - name: 'Docker: Containers' graph_items: - drawtype: GRADIENT_LINE color: 1A7C11 item: host: Docker key: docker.containers.running - sortorder: '1' drawtype: BOLD_LINE color: 2774A4 item: host: Docker key: docker.containers.paused - sortorder: '2' drawtype: BOLD_LINE color: F63100 item: host: Docker key: docker.containers.stopped - sortorder: '3' drawtype: BOLD_LINE color: A54F10 item: host: Docker key: docker.containers.total - name: 'Docker: Memory total' graph_items: - drawtype: BOLD_LINE color: 1A7C11 item: host: Docker key: docker.mem.total value_maps: - name: 'Docker flag' mappings: - value: '0' newvalue: 'False' - value: '1' newvalue: 'True' - name: 'Service state' mappings: - value: '0' newvalue: Down - value: '1' newvalue: Up