zabbix_templates/Nginx by Zabbix agent.yaml

607 lines
25 KiB
YAML

zabbix_export:
version: '6.4'
template_groups:
- uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
name: Templates/Applications
templates:
- uuid: 27f6424905884dbb96ab9210d987a56c
template: 'Nginx by Zabbix agent'
name: 'Nginx by Zabbix agent'
description: |
Get metrics from stub status module using Zabbix agent running on Linux
https://nginx.ru/en/docs/http/ngx_http_stub_status_module.html
You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384765-discussion-thread-for-official-zabbix-template-nginx
Template tooling version used: 0.42
vendor:
name: Zabbix
version: 6.4-0
groups:
- name: Templates/Applications
items:
- uuid: 75a7795df3034835bcfd143f7c3e9b94
name: 'Nginx: Service response time'
key: 'net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"]'
history: 7d
value_type: FLOAT
units: s
tags:
- tag: component
value: application
- tag: component
value: health
- uuid: f06e76888f464e13b7cc4c3db33e8131
name: 'Nginx: Service status'
key: 'net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"]'
history: 7d
valuemap:
name: 'Service state'
preprocessing:
- type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 10m
tags:
- tag: component
value: application
- tag: component
value: health
- uuid: 9e2be446ac79491c8be1bcd789392066
name: 'Nginx: Connections accepted per second'
type: DEPENDENT
key: nginx.connections.accepted.rate
delay: '0'
history: 7d
value_type: FLOAT
description: 'The total number of accepted client connections.'
preprocessing:
- type: REGEX
parameters:
- 'server accepts handled requests\s+([0-9]+) ([0-9]+) ([0-9]+)'
- \1
- type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
tags:
- tag: component
value: connections
- uuid: 436f2dc87cda418eb8f19ed6910c7bd0
name: 'Nginx: Connections active'
type: DEPENDENT
key: nginx.connections.active
delay: '0'
history: 7d
description: 'The current number of active client connections including waiting connections.'
preprocessing:
- type: REGEX
parameters:
- 'Active connections: ([0-9]+)'
- \1
master_item:
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
tags:
- tag: component
value: connections
- uuid: 4027e6db5e024aff98056faa2d4b43cd
name: 'Nginx: Connections dropped per second'
type: DEPENDENT
key: nginx.connections.dropped.rate
delay: '0'
history: 7d
value_type: FLOAT
description: 'The total number of dropped client connections.'
preprocessing:
- type: JAVASCRIPT
parameters:
- |
var a = value.match(/server accepts handled requests\s+([0-9]+) ([0-9]+) ([0-9]+)/)
if (a) {
return a[1]-a[2]
}
- type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
tags:
- tag: component
value: connections
- uuid: 06191636a7104e1bb40d197493b80958
name: 'Nginx: Connections handled per second'
type: DEPENDENT
key: nginx.connections.handled.rate
delay: '0'
history: 7d
value_type: FLOAT
description: 'The total number of handled connections. Generally, the parameter value is the same as for the accepted connections, unless some resource limits have been reached (for example, the `worker_connections limit`).'
preprocessing:
- type: REGEX
parameters:
- 'server accepts handled requests\s+([0-9]+) ([0-9]+) ([0-9]+)'
- \2
- type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
tags:
- tag: component
value: connections
- uuid: f5925c78389143c7924432483a5c716c
name: 'Nginx: Connections reading'
type: DEPENDENT
key: nginx.connections.reading
delay: '0'
history: 7d
description: 'The current number of connections where Nginx is reading the request header.'
preprocessing:
- type: REGEX
parameters:
- 'Reading: ([0-9]+) Writing: ([0-9]+) Waiting: ([0-9]+)'
- \1
master_item:
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
tags:
- tag: component
value: connections
- uuid: d6cfa828ba344ffe948d8d985b849316
name: 'Nginx: Connections waiting'
type: DEPENDENT
key: nginx.connections.waiting
delay: '0'
history: 7d
description: 'The current number of idle client connections waiting for a request.'
preprocessing:
- type: REGEX
parameters:
- 'Reading: ([0-9]+) Writing: ([0-9]+) Waiting: ([0-9]+)'
- \3
master_item:
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
tags:
- tag: component
value: connections
- uuid: c038a572f73f4a418ddcc5aeb8b0a547
name: 'Nginx: Connections writing'
type: DEPENDENT
key: nginx.connections.writing
delay: '0'
history: 7d
description: 'The current number of connections where Nginx is writing a response back to the client.'
preprocessing:
- type: REGEX
parameters:
- 'Reading: ([0-9]+) Writing: ([0-9]+) Waiting: ([0-9]+)'
- \2
master_item:
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
tags:
- tag: component
value: connections
- uuid: b28444fb9b834d03a72036882c80b921
name: 'Nginx: Requests total'
type: DEPENDENT
key: nginx.requests.total
delay: '0'
history: 7d
description: 'The total number of client requests.'
preprocessing:
- type: REGEX
parameters:
- 'server accepts handled requests\s+([0-9]+) ([0-9]+) ([0-9]+)'
- \3
master_item:
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
tags:
- tag: component
value: requests
- uuid: 2600a696278f490f86cadd8c8836f269
name: 'Nginx: Requests per second'
type: DEPENDENT
key: nginx.requests.total.rate
delay: '0'
history: 7d
value_type: FLOAT
description: 'The total number of client requests.'
preprocessing:
- type: REGEX
parameters:
- 'server accepts handled requests\s+([0-9]+) ([0-9]+) ([0-9]+)'
- \3
- type: CHANGE_PER_SECOND
parameters:
- ''
master_item:
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
tags:
- tag: component
value: requests
- uuid: 3dcc81006977478f92be6dd040d66eb5
name: 'Nginx: Version'
type: DEPENDENT
key: nginx.version
delay: '0'
history: 7d
trends: '0'
status: DISABLED
value_type: CHAR
preprocessing:
- type: REGEX
parameters:
- 'Server: nginx\/(.+(?<!\r))'
- \1
- type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
tags:
- tag: component
value: application
triggers:
- uuid: 7ad80c508f2f48b59f7659c673db9f36
expression: 'last(/Nginx by Zabbix agent/nginx.version,#1)<>last(/Nginx by Zabbix agent/nginx.version,#2) and length(last(/Nginx by Zabbix agent/nginx.version))>0'
name: 'Nginx: Version has changed'
event_name: 'Nginx: Version has changed (new version: {ITEM.VALUE})'
priority: INFO
description: 'The Nginx version has changed. Acknowledge (Ack) to close manually.'
manual_close: 'YES'
tags:
- tag: scope
value: notice
- uuid: d43b4b99b6084076a4feb1fde51ecc40
name: 'Nginx: Get processes summary'
key: 'proc.get[,,,summary]'
history: 0d
trends: '0'
value_type: TEXT
description: 'The aggregated data of summary metrics for all processes.'
tags:
- tag: component
value: raw
- uuid: 52a23a9f6d60490c8f5565b938154f61
name: 'Nginx: Get stub status page'
key: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]'
history: 1h
trends: '0'
value_type: TEXT
description: |
The following status information is provided:
`Active connections` - the current number of active client connections including waiting connections.
`Accepted` - the total number of accepted client connections.
`Handled` - the total number of handled connections. Generally, the parameter value is the same as for the accepted connections, unless some resource limits have been reached (for example, the `worker_connections` limit).
`Requests` - the total number of client requests.
`Reading` - the current number of connections where Nginx is reading the request header.
`Writing` - the current number of connections where Nginx is writing a response back to the client.
`Waiting` - the current number of idle client connections waiting for a request.
See also [Module ngx_http_stub_status_module](https://nginx.org/en/docs/http/ngx_http_stub_status_module.html).
tags:
- tag: component
value: application
- tag: component
value: health
discovery_rules:
- uuid: f4a898f929c54b3493506e68703fa2cc
name: 'Nginx process discovery'
type: DEPENDENT
key: nginx.proc.discovery
delay: '0'
filter:
evaltype: AND
conditions:
- macro: '{#NAME}'
value: '{$NGINX.PROCESS_NAME}'
formulaid: A
description: 'The discovery of Nginx process summary.'
item_prototypes:
- uuid: 632e441011674f04886096475180dcbb
name: 'Nginx: Get process data'
type: DEPENDENT
key: 'nginx.proc.get[{#NAME}]'
delay: '0'
history: 0d
trends: '0'
value_type: TEXT
description: 'The summary metrics aggregated by a process {#NAME}.'
preprocessing:
- type: JSONPATH
parameters:
- '$.[?(@["name"]=="{#NAME}")].first()'
error_handler: CUSTOM_VALUE
error_handler_params: 'Failed to retrieve process {#NAME} data'
master_item:
key: 'proc.get[,,,summary]'
tags:
- tag: component
value: raw
- uuid: ba3da6baccee4b31947bf20d3cae0e5f
name: 'Nginx: Number of running processes'
type: DEPENDENT
key: 'nginx.proc.num[{#NAME}]'
delay: '0'
history: 7d
description: 'The number of running processes {#NAME}.'
preprocessing:
- type: JSONPATH
parameters:
- $.processes
error_handler: CUSTOM_VALUE
error_handler_params: '0'
- type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
key: 'nginx.proc.get[{#NAME}]'
tags:
- tag: component
value: system
trigger_prototypes:
- uuid: 903e6a1f30154ee49df3f8d87e0164cc
expression: 'last(/Nginx by Zabbix agent/nginx.proc.num[{#NAME}])=0'
name: 'Nginx: Process is not running'
priority: HIGH
tags:
- tag: scope
value: availability
- uuid: 5887d0062bed4233a03d4f408fac7163
name: 'Nginx: Memory usage, %'
type: DEPENDENT
key: 'nginx.proc.pmem[{#NAME}]'
delay: '0'
history: 7d
value_type: FLOAT
units: '%'
description: 'The percentage of real memory used by a process {#NAME}.'
preprocessing:
- type: JSONPATH
parameters:
- $.pmem
error_handler: DISCARD_VALUE
master_item:
key: 'nginx.proc.get[{#NAME}]'
tags:
- tag: component
value: memory
- uuid: 64d208475c034bae953a64cde1833ebb
name: 'Nginx: Memory usage (rss)'
type: DEPENDENT
key: 'nginx.proc.rss[{#NAME}]'
delay: '0'
history: 7d
units: B
description: 'The summary of resident set size memory used by a process {#NAME} expressed in bytes.'
preprocessing:
- type: JSONPATH
parameters:
- $.rss
error_handler: DISCARD_VALUE
master_item:
key: 'nginx.proc.get[{#NAME}]'
tags:
- tag: component
value: memory
- uuid: 21fccb0286fb407c85f1972e994c698e
name: 'Nginx: Memory usage (vsize)'
type: DEPENDENT
key: 'nginx.proc.vmem[{#NAME}]'
delay: '0'
history: 7d
units: B
description: 'The summary of virtual memory used by a process {#NAME} expressed in bytes.'
preprocessing:
- type: JSONPATH
parameters:
- $.vsize
error_handler: DISCARD_VALUE
master_item:
key: 'nginx.proc.get[{#NAME}]'
tags:
- tag: component
value: memory
- uuid: 84c95c1955bf4ccaa12a060a9acdb478
name: 'Nginx: CPU utilization'
key: 'proc.cpu.util[{#NAME}]'
history: 7d
value_type: FLOAT
units: '%'
description: 'The percentage of the CPU utilization by a process {#NAME}.'
tags:
- tag: component
value: cpu
trigger_prototypes:
- uuid: a497b80eb03f469c9552881b498003b2
expression: |
(find(/Nginx by Zabbix agent/web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"],,"like","HTTP/1.1 200")=0 or
nodata(/Nginx by Zabbix agent/web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"],30m)) and last(/Nginx by Zabbix agent/nginx.proc.num[{#NAME}])>0
name: 'Nginx: Failed to fetch stub status page'
event_name: 'Nginx: Failed to fetch stub status page (or no data for 30m)'
priority: WARNING
description: 'Zabbix has not received any data for items for the last 30 minutes.'
manual_close: 'YES'
dependencies:
- name: 'Nginx: Service is down'
expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0 and last(/Nginx by Zabbix agent/nginx.proc.num[{#NAME}])>0'
tags:
- tag: scope
value: availability
- uuid: f2d431fa9bc446608caa3f80ef27c41b
expression: 'min(/Nginx by Zabbix agent/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} and last(/Nginx by Zabbix agent/nginx.proc.num[{#NAME}])>0'
name: 'Nginx: High connections drop rate'
event_name: 'Nginx: High connections drop rate (more than {$NGINX.DROP_RATE.MAX.WARN} for 5m)'
opdata: 'Current rate: {ITEM.LASTVALUE1}'
priority: WARNING
description: 'The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes.'
dependencies:
- name: 'Nginx: Service is down'
expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0 and last(/Nginx by Zabbix agent/nginx.proc.num[{#NAME}])>0'
tags:
- tag: scope
value: performance
- uuid: c043191c22f34522ba4f83430d9f88b1
expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0 and last(/Nginx by Zabbix agent/nginx.proc.num[{#NAME}])>0'
name: 'Nginx: Service is down'
priority: AVERAGE
manual_close: 'YES'
tags:
- tag: scope
value: availability
- uuid: f5db329410a14609a5f3e883ca493cc8
expression: 'min(/Nginx by Zabbix agent/net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN} and last(/Nginx by Zabbix agent/nginx.proc.num[{#NAME}])>0'
name: 'Nginx: Service response time is too high'
event_name: 'Nginx: Service response time is too high (over {$NGINX.RESPONSE_TIME.MAX.WARN}s for 5m)'
priority: WARNING
manual_close: 'YES'
dependencies:
- name: 'Nginx: Service is down'
expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0 and last(/Nginx by Zabbix agent/nginx.proc.num[{#NAME}])>0'
tags:
- tag: scope
value: performance
graph_prototypes:
- uuid: 69ca908afa1d468d983a263d06910925
name: 'Nginx: Memory usage[{#NAME}]'
graph_items:
- drawtype: BOLD_LINE
color: 1A7C11
item:
host: 'Nginx by Zabbix agent'
key: 'nginx.proc.vmem[{#NAME}]'
- sortorder: '1'
drawtype: BOLD_LINE
color: 2774A4
item:
host: 'Nginx by Zabbix agent'
key: 'nginx.proc.rss[{#NAME}]'
master_item:
key: 'proc.get[,,,summary]'
lld_macro_paths:
- lld_macro: '{#NAME}'
path: $.name
tags:
- tag: class
value: software
- tag: target
value: nginx
macros:
- macro: '{$NGINX.DROP_RATE.MAX.WARN}'
value: '1'
description: 'The critical rate of the dropped connections for a trigger expression.'
- macro: '{$NGINX.PROCESS_NAME}'
value: nginx
description: 'The process name of the Nginx server.'
- macro: '{$NGINX.RESPONSE_TIME.MAX.WARN}'
value: '10'
description: 'The maximum response time of Nginx expressed in seconds for a trigger expression.'
- macro: '{$NGINX.STUB_STATUS.HOST}'
value: 0.0.0.0
description: 'The Hostname or an IP addess of the Nginx host or Nginx container of `astub_status`.'
- macro: '{$NGINX.STUB_STATUS.PATH}'
value: basic_status
description: 'The path of the `Nginx stub_status` page.'
- macro: '{$NGINX.STUB_STATUS.PORT}'
value: '10061'
description: 'The port of the `Nginx stub_status` host or container.'
dashboards:
- uuid: 9d071e3a148c405e85c53ef25d54efaf
name: 'Nginx performance'
pages:
- widgets:
- type: graph
width: '12'
height: '5'
fields:
- type: INTEGER
name: source_type
value: '0'
- type: GRAPH
name: graphid
value:
host: 'Nginx by Zabbix agent'
name: 'Nginx: Connections by state'
- type: graph
x: '12'
width: '12'
height: '5'
fields:
- type: INTEGER
name: source_type
value: '0'
- type: GRAPH
name: graphid
value:
host: 'Nginx by Zabbix agent'
name: 'Nginx: Requests per second'
- type: graph
'y': '5'
width: '12'
height: '5'
fields:
- type: INTEGER
name: source_type
value: '0'
- type: GRAPH
name: graphid
value:
host: 'Nginx by Zabbix agent'
name: 'Nginx: Connections per second'
valuemaps:
- uuid: 53c8528c18814f30a45d1540ab9e5c00
name: 'Service state'
mappings:
- value: '0'
newvalue: Down
- value: '1'
newvalue: Up
graphs:
- uuid: ba234158aeca468a8592d944f9aae691
name: 'Nginx: Connections by state'
graph_items:
- drawtype: BOLD_LINE
color: 1A7C11
item:
host: 'Nginx by Zabbix agent'
key: nginx.connections.active
- sortorder: '1'
color: 2774A4
item:
host: 'Nginx by Zabbix agent'
key: nginx.connections.waiting
- sortorder: '2'
color: F63100
item:
host: 'Nginx by Zabbix agent'
key: nginx.connections.writing
- sortorder: '3'
color: A54F10
item:
host: 'Nginx by Zabbix agent'
key: nginx.connections.reading
- uuid: b82a5b89864a47638421458f3e74563d
name: 'Nginx: Connections per second'
graph_items:
- color: 1A7C11
item:
host: 'Nginx by Zabbix agent'
key: nginx.connections.accepted.rate
- sortorder: '1'
color: 2774A4
item:
host: 'Nginx by Zabbix agent'
key: nginx.connections.handled.rate
- sortorder: '2'
color: F63100
item:
host: 'Nginx by Zabbix agent'
key: nginx.connections.dropped.rate
- uuid: a2d2fec823514df09731381304c245e9
name: 'Nginx: Requests per second'
graph_items:
- drawtype: GRADIENT_LINE
color: 1A7C11
item:
host: 'Nginx by Zabbix agent'
key: nginx.requests.total.rate