fix: lint
This commit is contained in:
parent
b103033103
commit
31d697701e
@ -1,6 +1,7 @@
|
|||||||
# Installing the Zabbix server
|
# Installing the Zabbix server
|
||||||
|
|
||||||
Change default passwords, ports and set listen IP (ports `8080/tcp` and `10051/tcp` will be open on all interfaces, use a firewall or specify the address of the required interface), then run:
|
Change default passwords, ports and set listen IP (ports `8080/tcp` and `10051/tcp` will be open on all interfaces, use a firewall or specify the address of the required interface), then run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
wget https://github.com/tornadocash/tornado-relayer/raw/master/monitoring/zabbix.tar.gz
|
wget https://github.com/tornadocash/tornado-relayer/raw/master/monitoring/zabbix.tar.gz
|
||||||
mkdir $HOME/monitoring/
|
mkdir $HOME/monitoring/
|
||||||
@ -12,18 +13,21 @@ docker-compose up -d
|
|||||||
# Installing the Zabbix agent
|
# Installing the Zabbix agent
|
||||||
|
|
||||||
Download package from repository [https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix/](https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix/) and run:
|
Download package from repository [https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix/](https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix/) and run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dpkg -i zabbix-agent_5.2.*.deb
|
sudo dpkg -i zabbix-agent_5.2.*.deb
|
||||||
sudo usermod -aG docker zabbix
|
sudo usermod -aG docker zabbix
|
||||||
```
|
```
|
||||||
|
|
||||||
Change default values in `/etc/zabbix/zabbix_agent2.conf`:
|
Change default values in `/etc/zabbix/zabbix_agent2.conf`:
|
||||||
|
|
||||||
* `Hostname` the same as in the zabbix-server web interface;
|
- `Hostname` the same as in the zabbix-server web interface;
|
||||||
* `Server` and `ServerActive` set zabbix server IP or DNS name;
|
- `Server` and `ServerActive` set zabbix server IP or DNS name;
|
||||||
* `ListenIP` to local network IP available from zabbix server or set firewall rules to restrict access to port `10050`;
|
- `ListenIP` to local network IP available from zabbix server or set firewall rules to restrict access to port `10050`;
|
||||||
* uncomment `Plugins.Docker.Endpoint=unix:///var/run/docker.sock`.
|
- uncomment `Plugins.Docker.Endpoint=unix:///var/run/docker.sock`.
|
||||||
|
|
||||||
Then run:
|
Then run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo systemctl enable zabbix-agent2.service
|
sudo systemctl enable zabbix-agent2.service
|
||||||
sudo systemctl restart zabbix-agent2.service
|
sudo systemctl restart zabbix-agent2.service
|
||||||
@ -36,14 +40,16 @@ Log into your Zabbix server (defaul login and passord: `Admin` - `zabbix`) and c
|
|||||||
# Import templates
|
# Import templates
|
||||||
|
|
||||||
Import templates using the WebUI:
|
Import templates using the WebUI:
|
||||||
* [Docker-template.yaml](/monitoring/templates/Docker-template.yaml);
|
|
||||||
* [Tornado-relayer-template.yaml](/monitoring/templates/Tornado-relayer-template.yaml).
|
- [Docker-template.yaml](/monitoring/templates/Docker-template.yaml);
|
||||||
|
- [Tornado-relayer-template.yaml](/monitoring/templates/Tornado-relayer-template.yaml).
|
||||||
|
|
||||||
Link templates with added host. It is also recommended to link `Linux CPU by Zabbix agent`, `Linux filesystems by Zabbix agent` and `Linux memory by Zabbix agent` templates to the host.
|
Link templates with added host. It is also recommended to link `Linux CPU by Zabbix agent`, `Linux filesystems by Zabbix agent` and `Linux memory by Zabbix agent` templates to the host.
|
||||||
|
|
||||||
# Alerts
|
# Alerts
|
||||||
|
|
||||||
In WebUI - Administration -> Media types -> Telegram:
|
In WebUI - Administration -> Media types -> Telegram:
|
||||||
|
|
||||||
```
|
```
|
||||||
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/telegram
|
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/telegram
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ services:
|
|||||||
image: zabbix/zabbix-server-pgsql:alpine-5.2-latest
|
image: zabbix/zabbix-server-pgsql:alpine-5.2-latest
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- "10051:10051"
|
- '10051:10051'
|
||||||
volumes:
|
volumes:
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
@ -54,17 +54,17 @@ services:
|
|||||||
- net.ipv4.conf.all.secure_redirects=0
|
- net.ipv4.conf.all.secure_redirects=0
|
||||||
- net.ipv4.conf.all.send_redirects=0
|
- net.ipv4.conf.all.send_redirects=0
|
||||||
labels:
|
labels:
|
||||||
com.zabbix.description: "Zabbix server with PostgreSQL database support"
|
com.zabbix.description: 'Zabbix server with PostgreSQL database support'
|
||||||
com.zabbix.company: "Zabbix LLC"
|
com.zabbix.company: 'Zabbix LLC'
|
||||||
com.zabbix.component: "zabbix-server"
|
com.zabbix.component: 'zabbix-server'
|
||||||
com.zabbix.dbtype: "pgsql"
|
com.zabbix.dbtype: 'pgsql'
|
||||||
com.zabbix.os: "alpine"
|
com.zabbix.os: 'alpine'
|
||||||
|
|
||||||
zabbix-web:
|
zabbix-web:
|
||||||
image: zabbix/zabbix-web-nginx-pgsql:alpine-5.2-latest
|
image: zabbix/zabbix-web-nginx-pgsql:alpine-5.2-latest
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- '8080:8080'
|
||||||
volumes:
|
volumes:
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
@ -88,7 +88,7 @@ services:
|
|||||||
- postgres-server
|
- postgres-server
|
||||||
- zabbix-server
|
- zabbix-server
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:8080/"]
|
test: ['CMD', 'curl', '-f', 'http://localhost:8080/']
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
@ -103,12 +103,12 @@ services:
|
|||||||
sysctls:
|
sysctls:
|
||||||
- net.core.somaxconn=65535
|
- net.core.somaxconn=65535
|
||||||
labels:
|
labels:
|
||||||
com.zabbix.description: "Zabbix frontend on Nginx web-server with PostgreSQL database support"
|
com.zabbix.description: 'Zabbix frontend on Nginx web-server with PostgreSQL database support'
|
||||||
com.zabbix.company: "Zabbix LLC"
|
com.zabbix.company: 'Zabbix LLC'
|
||||||
com.zabbix.component: "zabbix-frontend"
|
com.zabbix.component: 'zabbix-frontend'
|
||||||
com.zabbix.webserver: "nginx"
|
com.zabbix.webserver: 'nginx'
|
||||||
com.zabbix.dbtype: "pgsql"
|
com.zabbix.dbtype: 'pgsql'
|
||||||
com.zabbix.os: "alpine"
|
com.zabbix.os: 'alpine'
|
||||||
|
|
||||||
zabbix-agent:
|
zabbix-agent:
|
||||||
image: zabbix/zabbix-agent2:alpine-5.2-latest
|
image: zabbix/zabbix-agent2:alpine-5.2-latest
|
||||||
@ -121,7 +121,7 @@ services:
|
|||||||
- .env_agent
|
- .env_agent
|
||||||
privileged: true
|
privileged: true
|
||||||
user: root
|
user: root
|
||||||
pid: "host"
|
pid: 'host'
|
||||||
networks:
|
networks:
|
||||||
zbx_net_backend:
|
zbx_net_backend:
|
||||||
aliases:
|
aliases:
|
||||||
@ -152,7 +152,7 @@ services:
|
|||||||
image: portainer/portainer:latest
|
image: portainer/portainer:latest
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- "9000:9000"
|
- '9000:9000'
|
||||||
volumes:
|
volumes:
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- portainer-data:/data
|
- portainer-data:/data
|
||||||
@ -161,7 +161,7 @@ networks:
|
|||||||
zbx_net_frontend:
|
zbx_net_frontend:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
driver_opts:
|
driver_opts:
|
||||||
com.docker.network.enable_ipv6: "false"
|
com.docker.network.enable_ipv6: 'false'
|
||||||
ipam:
|
ipam:
|
||||||
driver: default
|
driver: default
|
||||||
config:
|
config:
|
||||||
@ -169,7 +169,7 @@ networks:
|
|||||||
zbx_net_backend:
|
zbx_net_backend:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
driver_opts:
|
driver_opts:
|
||||||
com.docker.network.enable_ipv6: "false"
|
com.docker.network.enable_ipv6: 'false'
|
||||||
internal: true
|
internal: true
|
||||||
ipam:
|
ipam:
|
||||||
driver: default
|
driver: default
|
||||||
|
@ -2,11 +2,9 @@ zabbix_export:
|
|||||||
version: '5.2'
|
version: '5.2'
|
||||||
date: '2021-11-29T12:29:17Z'
|
date: '2021-11-29T12:29:17Z'
|
||||||
groups:
|
groups:
|
||||||
-
|
- name: Docker
|
||||||
name: Docker
|
|
||||||
templates:
|
templates:
|
||||||
-
|
- template: Docker
|
||||||
template: Docker
|
|
||||||
name: Docker
|
name: Docker
|
||||||
description: |
|
description: |
|
||||||
Get Docker engine metrics from plugin for the New Zabbix Agent (zabbix-agent2).
|
Get Docker engine metrics from plugin for the New Zabbix Agent (zabbix-agent2).
|
||||||
@ -15,117 +13,94 @@ zabbix_export:
|
|||||||
|
|
||||||
Template tooling version used: 0.38
|
Template tooling version used: 0.38
|
||||||
groups:
|
groups:
|
||||||
-
|
- name: Docker
|
||||||
name: Docker
|
|
||||||
applications:
|
applications:
|
||||||
-
|
- name: Docker
|
||||||
name: Docker
|
- name: 'Zabbix raw items'
|
||||||
-
|
|
||||||
name: 'Zabbix raw items'
|
|
||||||
items:
|
items:
|
||||||
-
|
- name: 'Docker: Get containers'
|
||||||
name: 'Docker: Get containers'
|
|
||||||
key: docker.containers
|
key: docker.containers
|
||||||
history: '0'
|
history: '0'
|
||||||
trends: '0'
|
trends: '0'
|
||||||
value_type: TEXT
|
value_type: TEXT
|
||||||
applications:
|
applications:
|
||||||
-
|
- name: 'Zabbix raw items'
|
||||||
name: 'Zabbix raw items'
|
- name: 'Docker: Containers paused'
|
||||||
-
|
|
||||||
name: 'Docker: Containers paused'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: docker.containers.paused
|
key: docker.containers.paused
|
||||||
delay: '0'
|
delay: '0'
|
||||||
history: 7d
|
history: 7d
|
||||||
description: 'Total number of containers paused on this host'
|
description: 'Total number of containers paused on this host'
|
||||||
applications:
|
applications:
|
||||||
-
|
- name: Docker
|
||||||
name: Docker
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.ContainersPaused
|
- $.ContainersPaused
|
||||||
master_item:
|
master_item:
|
||||||
key: docker.info
|
key: docker.info
|
||||||
-
|
- name: 'Docker: Containers running'
|
||||||
name: 'Docker: Containers running'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: docker.containers.running
|
key: docker.containers.running
|
||||||
delay: '0'
|
delay: '0'
|
||||||
history: 7d
|
history: 7d
|
||||||
description: 'Total number of containers running on this host'
|
description: 'Total number of containers running on this host'
|
||||||
applications:
|
applications:
|
||||||
-
|
- name: Docker
|
||||||
name: Docker
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.ContainersRunning
|
- $.ContainersRunning
|
||||||
master_item:
|
master_item:
|
||||||
key: docker.info
|
key: docker.info
|
||||||
-
|
- name: 'Docker: Containers stopped'
|
||||||
name: 'Docker: Containers stopped'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: docker.containers.stopped
|
key: docker.containers.stopped
|
||||||
delay: '0'
|
delay: '0'
|
||||||
history: 7d
|
history: 7d
|
||||||
description: 'Total number of containers stopped on this host'
|
description: 'Total number of containers stopped on this host'
|
||||||
applications:
|
applications:
|
||||||
-
|
- name: Docker
|
||||||
name: Docker
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.ContainersStopped
|
- $.ContainersStopped
|
||||||
master_item:
|
master_item:
|
||||||
key: docker.info
|
key: docker.info
|
||||||
triggers:
|
triggers:
|
||||||
-
|
- expression: '{avg(5m)}>=1'
|
||||||
expression: '{avg(5m)}>=1'
|
|
||||||
name: 'Docker: containers is stopped'
|
name: 'Docker: containers is stopped'
|
||||||
priority: HIGH
|
priority: HIGH
|
||||||
-
|
- name: 'Docker: Containers total'
|
||||||
name: 'Docker: Containers total'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: docker.containers.total
|
key: docker.containers.total
|
||||||
delay: '0'
|
delay: '0'
|
||||||
history: 7d
|
history: 7d
|
||||||
description: 'Total number of containers on this host'
|
description: 'Total number of containers on this host'
|
||||||
applications:
|
applications:
|
||||||
-
|
- name: Docker
|
||||||
name: Docker
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.Containers
|
- $.Containers
|
||||||
master_item:
|
master_item:
|
||||||
key: docker.info
|
key: docker.info
|
||||||
-
|
- name: 'Docker: Get images'
|
||||||
name: 'Docker: Get images'
|
|
||||||
key: docker.images
|
key: docker.images
|
||||||
history: '0'
|
history: '0'
|
||||||
trends: '0'
|
trends: '0'
|
||||||
status: DISABLED
|
status: DISABLED
|
||||||
value_type: TEXT
|
value_type: TEXT
|
||||||
applications:
|
applications:
|
||||||
-
|
- name: 'Zabbix raw items'
|
||||||
name: 'Zabbix raw items'
|
- name: 'Docker: Get info'
|
||||||
-
|
|
||||||
name: 'Docker: Get info'
|
|
||||||
key: docker.info
|
key: docker.info
|
||||||
history: '0'
|
history: '0'
|
||||||
trends: '0'
|
trends: '0'
|
||||||
value_type: TEXT
|
value_type: TEXT
|
||||||
applications:
|
applications:
|
||||||
-
|
- name: 'Zabbix raw items'
|
||||||
name: 'Zabbix raw items'
|
- name: 'Docker: Memory total'
|
||||||
-
|
|
||||||
name: 'Docker: Memory total'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: docker.mem.total
|
key: docker.mem.total
|
||||||
delay: '0'
|
delay: '0'
|
||||||
@ -133,49 +108,40 @@ zabbix_export:
|
|||||||
status: DISABLED
|
status: DISABLED
|
||||||
units: B
|
units: B
|
||||||
applications:
|
applications:
|
||||||
-
|
- name: Docker
|
||||||
name: Docker
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.MemTotal
|
- $.MemTotal
|
||||||
master_item:
|
master_item:
|
||||||
key: docker.info
|
key: docker.info
|
||||||
-
|
- name: 'Docker: Ping'
|
||||||
name: 'Docker: Ping'
|
|
||||||
key: docker.ping
|
key: docker.ping
|
||||||
history: 7h
|
history: 7h
|
||||||
applications:
|
applications:
|
||||||
-
|
- name: Docker
|
||||||
name: Docker
|
|
||||||
valuemap:
|
valuemap:
|
||||||
name: 'Service state'
|
name: 'Service state'
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
||||||
type: DISCARD_UNCHANGED_HEARTBEAT
|
|
||||||
parameters:
|
parameters:
|
||||||
- 10m
|
- 10m
|
||||||
triggers:
|
triggers:
|
||||||
-
|
- expression: '{last()}=0'
|
||||||
expression: '{last()}=0'
|
|
||||||
name: 'Docker: Service is down'
|
name: 'Docker: Service is down'
|
||||||
priority: AVERAGE
|
priority: AVERAGE
|
||||||
manual_close: 'YES'
|
manual_close: 'YES'
|
||||||
discovery_rules:
|
discovery_rules:
|
||||||
-
|
- name: 'Containers discovery'
|
||||||
name: 'Containers discovery'
|
|
||||||
key: 'docker.containers.discovery[true]'
|
key: 'docker.containers.discovery[true]'
|
||||||
delay: 15m
|
delay: 15m
|
||||||
filter:
|
filter:
|
||||||
evaltype: AND
|
evaltype: AND
|
||||||
conditions:
|
conditions:
|
||||||
-
|
- macro: '{#NAME}'
|
||||||
macro: '{#NAME}'
|
|
||||||
value: '{$DOCKER.LLD.FILTER.CONTAINER.MATCHES}'
|
value: '{$DOCKER.LLD.FILTER.CONTAINER.MATCHES}'
|
||||||
formulaid: A
|
formulaid: A
|
||||||
-
|
- macro: '{#NAME}'
|
||||||
macro: '{#NAME}'
|
|
||||||
value: '{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES}'
|
value: '{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES}'
|
||||||
operator: NOT_MATCHES_REGEX
|
operator: NOT_MATCHES_REGEX
|
||||||
formulaid: B
|
formulaid: B
|
||||||
@ -186,8 +152,7 @@ zabbix_export:
|
|||||||
true - Returns all containers
|
true - Returns all containers
|
||||||
false - Returns only running containers
|
false - Returns only running containers
|
||||||
item_prototypes:
|
item_prototypes:
|
||||||
-
|
- name: 'Container {#NAME}: Finished at'
|
||||||
name: 'Container {#NAME}: Finished at'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: 'docker.container_info.finished["{#NAME}"]'
|
key: 'docker.container_info.finished["{#NAME}"]'
|
||||||
delay: '0'
|
delay: '0'
|
||||||
@ -195,43 +160,35 @@ zabbix_export:
|
|||||||
value_type: FLOAT
|
value_type: FLOAT
|
||||||
units: unixtime
|
units: unixtime
|
||||||
application_prototypes:
|
application_prototypes:
|
||||||
-
|
- name: 'Docker: Container {#NAME}'
|
||||||
name: 'Docker: Container {#NAME}'
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.State.FinishedAt
|
- $.State.FinishedAt
|
||||||
-
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
||||||
type: DISCARD_UNCHANGED_HEARTBEAT
|
|
||||||
parameters:
|
parameters:
|
||||||
- 1d
|
- 1d
|
||||||
master_item:
|
master_item:
|
||||||
key: 'docker.container_info["{#NAME}"]'
|
key: 'docker.container_info["{#NAME}"]'
|
||||||
-
|
- name: 'Container {#NAME}: Restart count'
|
||||||
name: 'Container {#NAME}: Restart count'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: 'docker.container_info.restart_count["{#NAME}"]'
|
key: 'docker.container_info.restart_count["{#NAME}"]'
|
||||||
delay: '0'
|
delay: '0'
|
||||||
history: 7d
|
history: 7d
|
||||||
application_prototypes:
|
application_prototypes:
|
||||||
-
|
- name: 'Docker: Container {#NAME}'
|
||||||
name: 'Docker: Container {#NAME}'
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.RestartCount
|
- $.RestartCount
|
||||||
master_item:
|
master_item:
|
||||||
key: 'docker.container_info["{#NAME}"]'
|
key: 'docker.container_info["{#NAME}"]'
|
||||||
trigger_prototypes:
|
trigger_prototypes:
|
||||||
-
|
- expression: '{last()}>5'
|
||||||
expression: '{last()}>5'
|
|
||||||
name: 'Container {#NAME}: restarting constantly'
|
name: 'Container {#NAME}: restarting constantly'
|
||||||
opdata: '{ITEM.VALUE}'
|
opdata: '{ITEM.VALUE}'
|
||||||
priority: HIGH
|
priority: HIGH
|
||||||
-
|
- name: 'Container {#NAME}: Started at'
|
||||||
name: 'Container {#NAME}: Started at'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: 'docker.container_info.started["{#NAME}"]'
|
key: 'docker.container_info.started["{#NAME}"]'
|
||||||
delay: '0'
|
delay: '0'
|
||||||
@ -239,21 +196,17 @@ zabbix_export:
|
|||||||
value_type: FLOAT
|
value_type: FLOAT
|
||||||
units: unixtime
|
units: unixtime
|
||||||
application_prototypes:
|
application_prototypes:
|
||||||
-
|
- name: 'Docker: Container {#NAME}'
|
||||||
name: 'Docker: Container {#NAME}'
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.State.StartedAt
|
- $.State.StartedAt
|
||||||
-
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
||||||
type: DISCARD_UNCHANGED_HEARTBEAT
|
|
||||||
parameters:
|
parameters:
|
||||||
- 1d
|
- 1d
|
||||||
master_item:
|
master_item:
|
||||||
key: 'docker.container_info["{#NAME}"]'
|
key: 'docker.container_info["{#NAME}"]'
|
||||||
-
|
- name: 'Container {#NAME}: Error'
|
||||||
name: 'Container {#NAME}: Error'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: 'docker.container_info.state.error["{#NAME}"]'
|
key: 'docker.container_info.state.error["{#NAME}"]'
|
||||||
delay: '0'
|
delay: '0'
|
||||||
@ -261,114 +214,93 @@ zabbix_export:
|
|||||||
trends: '0'
|
trends: '0'
|
||||||
value_type: CHAR
|
value_type: CHAR
|
||||||
application_prototypes:
|
application_prototypes:
|
||||||
-
|
- name: 'Docker: Container {#NAME}'
|
||||||
name: 'Docker: Container {#NAME}'
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.State.Error
|
- $.State.Error
|
||||||
-
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
||||||
type: DISCARD_UNCHANGED_HEARTBEAT
|
|
||||||
parameters:
|
parameters:
|
||||||
- 1d
|
- 1d
|
||||||
master_item:
|
master_item:
|
||||||
key: 'docker.container_info["{#NAME}"]'
|
key: 'docker.container_info["{#NAME}"]'
|
||||||
trigger_prototypes:
|
trigger_prototypes:
|
||||||
-
|
- expression: '{diff()}=1 and {strlen()}>0'
|
||||||
expression: '{diff()}=1 and {strlen()}>0'
|
|
||||||
name: 'Container {#NAME}: An error has occurred in the container'
|
name: 'Container {#NAME}: An error has occurred in the container'
|
||||||
priority: WARNING
|
priority: WARNING
|
||||||
description: 'Container {#NAME} has an error. Ack to close.'
|
description: 'Container {#NAME} has an error. Ack to close.'
|
||||||
manual_close: 'YES'
|
manual_close: 'YES'
|
||||||
-
|
- name: 'Container {#NAME}: Exit code'
|
||||||
name: 'Container {#NAME}: Exit code'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: 'docker.container_info.state.exitcode["{#NAME}"]'
|
key: 'docker.container_info.state.exitcode["{#NAME}"]'
|
||||||
delay: '0'
|
delay: '0'
|
||||||
history: 7d
|
history: 7d
|
||||||
application_prototypes:
|
application_prototypes:
|
||||||
-
|
- name: 'Docker: Container {#NAME}'
|
||||||
name: 'Docker: Container {#NAME}'
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.State.ExitCode
|
- $.State.ExitCode
|
||||||
-
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
||||||
type: DISCARD_UNCHANGED_HEARTBEAT
|
|
||||||
parameters:
|
parameters:
|
||||||
- 1d
|
- 1d
|
||||||
master_item:
|
master_item:
|
||||||
key: 'docker.container_info["{#NAME}"]'
|
key: 'docker.container_info["{#NAME}"]'
|
||||||
-
|
- name: 'Container {#NAME}: Paused'
|
||||||
name: 'Container {#NAME}: Paused'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: 'docker.container_info.state.paused["{#NAME}"]'
|
key: 'docker.container_info.state.paused["{#NAME}"]'
|
||||||
delay: '0'
|
delay: '0'
|
||||||
history: 7d
|
history: 7d
|
||||||
application_prototypes:
|
application_prototypes:
|
||||||
-
|
- name: 'Docker: Container {#NAME}'
|
||||||
name: 'Docker: Container {#NAME}'
|
|
||||||
valuemap:
|
valuemap:
|
||||||
name: 'Docker flag'
|
name: 'Docker flag'
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.State.Paused
|
- $.State.Paused
|
||||||
-
|
- type: BOOL_TO_DECIMAL
|
||||||
type: BOOL_TO_DECIMAL
|
|
||||||
parameters:
|
parameters:
|
||||||
- ''
|
- ''
|
||||||
master_item:
|
master_item:
|
||||||
key: 'docker.container_info["{#NAME}"]'
|
key: 'docker.container_info["{#NAME}"]'
|
||||||
-
|
- name: 'Container {#NAME}: Restarting'
|
||||||
name: 'Container {#NAME}: Restarting'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: 'docker.container_info.state.restarting["{#NAME}"]'
|
key: 'docker.container_info.state.restarting["{#NAME}"]'
|
||||||
delay: '0'
|
delay: '0'
|
||||||
history: 7d
|
history: 7d
|
||||||
application_prototypes:
|
application_prototypes:
|
||||||
-
|
- name: 'Docker: Container {#NAME}'
|
||||||
name: 'Docker: Container {#NAME}'
|
|
||||||
valuemap:
|
valuemap:
|
||||||
name: 'Docker flag'
|
name: 'Docker flag'
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.State.Restarting
|
- $.State.Restarting
|
||||||
-
|
- type: BOOL_TO_DECIMAL
|
||||||
type: BOOL_TO_DECIMAL
|
|
||||||
parameters:
|
parameters:
|
||||||
- ''
|
- ''
|
||||||
master_item:
|
master_item:
|
||||||
key: 'docker.container_info["{#NAME}"]'
|
key: 'docker.container_info["{#NAME}"]'
|
||||||
-
|
- name: 'Container {#NAME}: Running'
|
||||||
name: 'Container {#NAME}: Running'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: 'docker.container_info.state.running["{#NAME}"]'
|
key: 'docker.container_info.state.running["{#NAME}"]'
|
||||||
delay: '0'
|
delay: '0'
|
||||||
history: 7d
|
history: 7d
|
||||||
application_prototypes:
|
application_prototypes:
|
||||||
-
|
- name: 'Docker: Container {#NAME}'
|
||||||
name: 'Docker: Container {#NAME}'
|
|
||||||
valuemap:
|
valuemap:
|
||||||
name: 'Docker flag'
|
name: 'Docker flag'
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.State.Running
|
- $.State.Running
|
||||||
-
|
- type: BOOL_TO_DECIMAL
|
||||||
type: BOOL_TO_DECIMAL
|
|
||||||
parameters:
|
parameters:
|
||||||
- ''
|
- ''
|
||||||
master_item:
|
master_item:
|
||||||
key: 'docker.container_info["{#NAME}"]'
|
key: 'docker.container_info["{#NAME}"]'
|
||||||
-
|
- name: 'Container {#NAME}: Status'
|
||||||
name: 'Container {#NAME}: Status'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: 'docker.container_info.state.status["{#NAME}"]'
|
key: 'docker.container_info.state.status["{#NAME}"]'
|
||||||
delay: '0'
|
delay: '0'
|
||||||
@ -376,109 +308,86 @@ zabbix_export:
|
|||||||
trends: '0'
|
trends: '0'
|
||||||
value_type: CHAR
|
value_type: CHAR
|
||||||
application_prototypes:
|
application_prototypes:
|
||||||
-
|
- name: 'Docker: Container {#NAME}'
|
||||||
name: 'Docker: Container {#NAME}'
|
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.State.Status
|
- $.State.Status
|
||||||
-
|
- type: DISCARD_UNCHANGED_HEARTBEAT
|
||||||
type: DISCARD_UNCHANGED_HEARTBEAT
|
|
||||||
parameters:
|
parameters:
|
||||||
- 1h
|
- 1h
|
||||||
master_item:
|
master_item:
|
||||||
key: 'docker.container_info["{#NAME}"]'
|
key: 'docker.container_info["{#NAME}"]'
|
||||||
-
|
- name: 'Container {#NAME}: Get info'
|
||||||
name: 'Container {#NAME}: Get info'
|
|
||||||
key: 'docker.container_info["{#NAME}"]'
|
key: 'docker.container_info["{#NAME}"]'
|
||||||
history: '0'
|
history: '0'
|
||||||
trends: '0'
|
trends: '0'
|
||||||
value_type: CHAR
|
value_type: CHAR
|
||||||
description: 'Return low-level information about a container'
|
description: 'Return low-level information about a container'
|
||||||
application_prototypes:
|
application_prototypes:
|
||||||
-
|
- name: 'Docker: Container {#NAME}'
|
||||||
name: 'Docker: Container {#NAME}'
|
|
||||||
trigger_prototypes:
|
trigger_prototypes:
|
||||||
-
|
- expression: '{Docker:docker.container_info.state.exitcode["{#NAME}"].last()}>0 and {Docker:docker.container_info.state.running["{#NAME}"].last()}=0'
|
||||||
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'
|
name: 'Container {#NAME}: Container has been stopped with error code'
|
||||||
opdata: 'Exit code: {ITEM.LASTVALUE1}'
|
opdata: 'Exit code: {ITEM.LASTVALUE1}'
|
||||||
priority: AVERAGE
|
priority: AVERAGE
|
||||||
manual_close: 'YES'
|
manual_close: 'YES'
|
||||||
macros:
|
macros:
|
||||||
-
|
- macro: '{$DOCKER.LLD.FILTER.CONTAINER.MATCHES}'
|
||||||
macro: '{$DOCKER.LLD.FILTER.CONTAINER.MATCHES}'
|
|
||||||
value: '.*'
|
value: '.*'
|
||||||
description: 'Filter of discoverable containers'
|
description: 'Filter of discoverable containers'
|
||||||
-
|
- macro: '{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES}'
|
||||||
macro: '{$DOCKER.LLD.FILTER.CONTAINER.NOT_MATCHES}'
|
|
||||||
value: CHANGE_IF_NEEDED
|
value: CHANGE_IF_NEEDED
|
||||||
description: 'Filter to exclude discovered containers'
|
description: 'Filter to exclude discovered containers'
|
||||||
-
|
- macro: '{$DOCKER.LLD.FILTER.IMAGE.MATCHES}'
|
||||||
macro: '{$DOCKER.LLD.FILTER.IMAGE.MATCHES}'
|
|
||||||
value: '.*'
|
value: '.*'
|
||||||
description: 'Filter of discoverable images'
|
description: 'Filter of discoverable images'
|
||||||
-
|
- macro: '{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES}'
|
||||||
macro: '{$DOCKER.LLD.FILTER.IMAGE.NOT_MATCHES}'
|
|
||||||
value: CHANGE_IF_NEEDED
|
value: CHANGE_IF_NEEDED
|
||||||
description: 'Filter to exclude discovered images'
|
description: 'Filter to exclude discovered images'
|
||||||
graphs:
|
graphs:
|
||||||
-
|
- name: 'Docker: Containers'
|
||||||
name: 'Docker: Containers'
|
|
||||||
graph_items:
|
graph_items:
|
||||||
-
|
- drawtype: GRADIENT_LINE
|
||||||
drawtype: GRADIENT_LINE
|
|
||||||
color: 1A7C11
|
color: 1A7C11
|
||||||
item:
|
item:
|
||||||
host: Docker
|
host: Docker
|
||||||
key: docker.containers.running
|
key: docker.containers.running
|
||||||
-
|
- sortorder: '1'
|
||||||
sortorder: '1'
|
|
||||||
drawtype: BOLD_LINE
|
drawtype: BOLD_LINE
|
||||||
color: 2774A4
|
color: 2774A4
|
||||||
item:
|
item:
|
||||||
host: Docker
|
host: Docker
|
||||||
key: docker.containers.paused
|
key: docker.containers.paused
|
||||||
-
|
- sortorder: '2'
|
||||||
sortorder: '2'
|
|
||||||
drawtype: BOLD_LINE
|
drawtype: BOLD_LINE
|
||||||
color: F63100
|
color: F63100
|
||||||
item:
|
item:
|
||||||
host: Docker
|
host: Docker
|
||||||
key: docker.containers.stopped
|
key: docker.containers.stopped
|
||||||
-
|
- sortorder: '3'
|
||||||
sortorder: '3'
|
|
||||||
drawtype: BOLD_LINE
|
drawtype: BOLD_LINE
|
||||||
color: A54F10
|
color: A54F10
|
||||||
item:
|
item:
|
||||||
host: Docker
|
host: Docker
|
||||||
key: docker.containers.total
|
key: docker.containers.total
|
||||||
-
|
- name: 'Docker: Memory total'
|
||||||
name: 'Docker: Memory total'
|
|
||||||
graph_items:
|
graph_items:
|
||||||
-
|
- drawtype: BOLD_LINE
|
||||||
drawtype: BOLD_LINE
|
|
||||||
color: 1A7C11
|
color: 1A7C11
|
||||||
item:
|
item:
|
||||||
host: Docker
|
host: Docker
|
||||||
key: docker.mem.total
|
key: docker.mem.total
|
||||||
value_maps:
|
value_maps:
|
||||||
-
|
- name: 'Docker flag'
|
||||||
name: 'Docker flag'
|
|
||||||
mappings:
|
mappings:
|
||||||
-
|
- value: '0'
|
||||||
value: '0'
|
|
||||||
newvalue: 'False'
|
newvalue: 'False'
|
||||||
-
|
- value: '1'
|
||||||
value: '1'
|
|
||||||
newvalue: 'True'
|
newvalue: 'True'
|
||||||
-
|
- name: 'Service state'
|
||||||
name: 'Service state'
|
|
||||||
mappings:
|
mappings:
|
||||||
-
|
- value: '0'
|
||||||
value: '0'
|
|
||||||
newvalue: Down
|
newvalue: Down
|
||||||
-
|
- value: '1'
|
||||||
value: '1'
|
|
||||||
newvalue: Up
|
newvalue: Up
|
||||||
|
@ -2,84 +2,69 @@ zabbix_export:
|
|||||||
version: '5.2'
|
version: '5.2'
|
||||||
date: '2021-12-01T13:26:59Z'
|
date: '2021-12-01T13:26:59Z'
|
||||||
groups:
|
groups:
|
||||||
-
|
- name: Templates/Applications
|
||||||
name: Templates/Applications
|
|
||||||
templates:
|
templates:
|
||||||
-
|
- template: Tornado-relayer
|
||||||
template: Tornado-relayer
|
|
||||||
name: Tornado-relayer
|
name: Tornado-relayer
|
||||||
groups:
|
groups:
|
||||||
-
|
- name: Templates/Applications
|
||||||
name: Templates/Applications
|
|
||||||
items:
|
items:
|
||||||
-
|
- name: 'tornado-relayer: health.error'
|
||||||
name: 'tornado-relayer: health.error'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: tornado-relayer.health.error
|
key: tornado-relayer.health.error
|
||||||
delay: '0'
|
delay: '0'
|
||||||
trends: '0'
|
trends: '0'
|
||||||
value_type: TEXT
|
value_type: TEXT
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.health.error
|
- $.health.error
|
||||||
master_item:
|
master_item:
|
||||||
key: 'web.page.get[{$URL}]'
|
key: 'web.page.get[{$URL}]'
|
||||||
triggers:
|
triggers:
|
||||||
-
|
- expression: '{last()}<>""'
|
||||||
expression: '{last()}<>""'
|
|
||||||
name: 'tornado-relayer: health error'
|
name: 'tornado-relayer: health error'
|
||||||
priority: AVERAGE
|
priority: AVERAGE
|
||||||
-
|
- name: 'tornado-relayer: health.status'
|
||||||
name: 'tornado-relayer: health.status'
|
|
||||||
type: DEPENDENT
|
type: DEPENDENT
|
||||||
key: tornado-relayer.health.status
|
key: tornado-relayer.health.status
|
||||||
delay: '0'
|
delay: '0'
|
||||||
trends: '0'
|
trends: '0'
|
||||||
value_type: TEXT
|
value_type: TEXT
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: JSONPATH
|
||||||
type: JSONPATH
|
|
||||||
parameters:
|
parameters:
|
||||||
- $.health.status
|
- $.health.status
|
||||||
master_item:
|
master_item:
|
||||||
key: 'web.page.get[{$URL}]'
|
key: 'web.page.get[{$URL}]'
|
||||||
triggers:
|
triggers:
|
||||||
-
|
- expression: '{last(#3)}<>"true"'
|
||||||
expression: '{last(#3)}<>"true"'
|
|
||||||
name: 'tornado-relayer: health status <> true'
|
name: 'tornado-relayer: health status <> true'
|
||||||
priority: HIGH
|
priority: HIGH
|
||||||
-
|
- name: 'tornado-relayer: data'
|
||||||
name: 'tornado-relayer: data'
|
|
||||||
type: ZABBIX_ACTIVE
|
type: ZABBIX_ACTIVE
|
||||||
key: 'web.page.get[{$URL}]'
|
key: 'web.page.get[{$URL}]'
|
||||||
history: '0'
|
history: '0'
|
||||||
trends: '0'
|
trends: '0'
|
||||||
value_type: TEXT
|
value_type: TEXT
|
||||||
preprocessing:
|
preprocessing:
|
||||||
-
|
- type: REGEX
|
||||||
type: REGEX
|
|
||||||
parameters:
|
parameters:
|
||||||
- '\n\s?\n([\s\S]*)'
|
- '\n\s?\n([\s\S]*)'
|
||||||
- \1
|
- \1
|
||||||
httptests:
|
httptests:
|
||||||
-
|
- name: 'tornado-relayer: status page'
|
||||||
name: 'tornado-relayer: status page'
|
|
||||||
agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/80.0.3987.87 Chrome/80.0.3987.87 Safari/537.36'
|
agent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/80.0.3987.87 Chrome/80.0.3987.87 Safari/537.36'
|
||||||
steps:
|
steps:
|
||||||
-
|
- name: 'status page'
|
||||||
name: 'status page'
|
|
||||||
url: '{$URL}'
|
url: '{$URL}'
|
||||||
follow_redirects: 'NO'
|
follow_redirects: 'NO'
|
||||||
required: status
|
required: status
|
||||||
status_codes: '200'
|
status_codes: '200'
|
||||||
triggers:
|
triggers:
|
||||||
-
|
- expression: '{Tornado-relayer:web.test.fail[tornado-relayer: status page].last()}>0'
|
||||||
expression: '{Tornado-relayer:web.test.fail[tornado-relayer: status page].last()}>0'
|
|
||||||
name: 'tornado-relayer: status page failed'
|
name: 'tornado-relayer: status page failed'
|
||||||
priority: AVERAGE
|
priority: AVERAGE
|
||||||
-
|
- expression: '{Tornado-relayer:web.test.rspcode[tornado-relayer: status page,status page].last(#3)}<>200'
|
||||||
expression: '{Tornado-relayer:web.test.rspcode[tornado-relayer: status page,status page].last(#3)}<>200'
|
|
||||||
name: 'tornado-relayer: status page rspcode <>200'
|
name: 'tornado-relayer: status page rspcode <>200'
|
||||||
priority: HIGH
|
priority: HIGH
|
||||||
|
Loading…
Reference in New Issue
Block a user