You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

444 lines
17 KiB

zabbix_export:
version: '7.0'
template_groups:
- uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
name: Templates/Applications
templates:
- uuid: 13d5bb0a4ae84228bff408aab5be338e
template: 'Nginx by HTTP'
name: 'Nginx by HTTP'
description: |
Get metrics from stub status module using HTTP agent
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
Generated by official Zabbix template tool "Templator" 2.0.0
vendor:
name: Zabbix
version: 7.0-0
groups:
- name: Templates/Applications
items:
- uuid: 18c6209295b347e2a96ef11b147139d8
name: 'Nginx: Service response time'
type: SIMPLE
key: 'net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"]'
history: 7d
value_type: FLOAT
units: s
tags:
- tag: component
value: application
- tag: component
value: health
triggers:
- uuid: fc1f7927b8864996986c1da44df57279
expression: 'min(/Nginx by HTTP/net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN}'
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 HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0'
tags:
- tag: scope
value: performance
- uuid: e4a09193bc8f42f2888ece83f89f84af
name: 'Nginx: Service status'
type: SIMPLE
key: 'net.tcp.service[http,"{HOST.CONN}","{$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
triggers:
- uuid: 7b3de87ba0ea425280d42235bb626b8b
expression: 'last(/Nginx by HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0'
name: 'Nginx: Service is down'
priority: AVERAGE
manual_close: 'YES'
tags:
- tag: scope
value: availability
- uuid: e054b58ebbbe4b45961ba697b468ab9e
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: nginx.get_stub_status
tags:
- tag: component
value: connections
- uuid: 2e4b049ab60947d9a05165f67388e531
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: nginx.get_stub_status
tags:
- tag: component
value: connections
- uuid: eecc0e887a744627be7f3b01cec6d46e
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: nginx.get_stub_status
tags:
- tag: component
value: connections
triggers:
- uuid: 79767fbc18594069a1fc0cbec832f8ff
expression: 'min(/Nginx by HTTP/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN}'
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 HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0'
tags:
- tag: scope
value: performance
- uuid: a53cf4f2d2ad4a84a70ff57df6299adc
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: nginx.get_stub_status
tags:
- tag: component
value: connections
- uuid: 73493cbf8508419a8fed3abff8cc5851
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: nginx.get_stub_status
tags:
- tag: component
value: connections
- uuid: cf393814511a48b498da8aab94d7ca00
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: nginx.get_stub_status
tags:
- tag: component
value: connections
- uuid: b0d63efb16984042945fe42e192f7d4e
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: nginx.get_stub_status
tags:
- tag: component
value: connections
- uuid: 86f93d1941d147fe94d754eddd3e8ff2
name: 'Nginx: Get stub status page'
type: HTTP_AGENT
key: nginx.get_stub_status
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).
url: '{$NGINX.STUB_STATUS.SCHEME}://{HOST.CONN}:{$NGINX.STUB_STATUS.PORT}/{$NGINX.STUB_STATUS.PATH}'
retrieve_mode: BOTH
tags:
- tag: component
value: application
- tag: component
value: health
triggers:
- uuid: 78e0a6322a1941469a0e108a9367c420
expression: |
find(/Nginx by HTTP/nginx.get_stub_status,,"like","HTTP/1.1 200")=0 or
nodata(/Nginx by HTTP/nginx.get_stub_status,30m)=1
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 HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0'
tags:
- tag: scope
value: availability
- uuid: 071b3d77324740a59045be19da231d76
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: nginx.get_stub_status
tags:
- tag: component
value: requests
- uuid: 81b17056ec664f9f926a74ee390ab9c1
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: nginx.get_stub_status
tags:
- tag: component
value: requests
- uuid: 716b627d6d894ac2af3ae8c4aeaa8c0c
name: 'Nginx: Version'
type: DEPENDENT
key: nginx.version
delay: '0'
history: 7d
trends: '0'
value_type: CHAR
preprocessing:
- type: REGEX
parameters:
- 'Server: nginx\/(.+(?<!\r))'
- \1
- type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
key: nginx.get_stub_status
tags:
- tag: component
value: application
triggers:
- uuid: 0f2689d4967a446e98a107b933179817
expression: 'last(/Nginx by HTTP/nginx.version,#1)<>last(/Nginx by HTTP/nginx.version,#2) and length(last(/Nginx by HTTP/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 to close the problem manually.'
manual_close: 'YES'
tags:
- tag: scope
value: notice
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.RESPONSE_TIME.MAX.WARN}'
value: '10'
description: 'The maximum response time of Nginx expressed in seconds for a trigger expression.'
- macro: '{$NGINX.STUB_STATUS.PATH}'
value: basic_status
description: 'The path of the `Nginx stub_status` page.'
- macro: '{$NGINX.STUB_STATUS.PORT}'
value: '80'
description: 'The port of the `Nginx stub_status` host or container.'
- macro: '{$NGINX.STUB_STATUS.SCHEME}'
value: http
description: 'The protocol http or https of Nginx stub_status host or container.'
dashboards:
- uuid: 7d0bf76f09204bb7ba9ee995bf161d46
name: 'Nginx performance'
pages:
- widgets:
- type: graph
width: '12'
height: '5'
fields:
- type: GRAPH
name: graphid
value:
host: 'Nginx by HTTP'
name: 'Nginx: Connections by state'
- type: graph
x: '12'
width: '12'
height: '5'
fields:
- type: GRAPH
name: graphid
value:
host: 'Nginx by HTTP'
name: 'Nginx: Requests per second'
- type: graph
'y': '5'
width: '12'
height: '5'
fields:
- type: GRAPH
name: graphid
value:
host: 'Nginx by HTTP'
name: 'Nginx: Connections per second'
valuemaps:
- uuid: 5c0883d194e8494498474106c22be2ca
name: 'Service state'
mappings:
- value: '0'
newvalue: Down
- value: '1'
newvalue: Up
graphs:
- uuid: aedcbacee74f4b0c861546c56e0fa9ab
name: 'Nginx: Connections by state'
graph_items:
- drawtype: BOLD_LINE
color: 199C0D
item:
host: 'Nginx by HTTP'
key: nginx.connections.active
- sortorder: '1'
color: F63100
item:
host: 'Nginx by HTTP'
key: nginx.connections.waiting
- sortorder: '2'
color: 00611C
item:
host: 'Nginx by HTTP'
key: nginx.connections.writing
- sortorder: '3'
color: F7941D
item:
host: 'Nginx by HTTP'
key: nginx.connections.reading
- uuid: 6feb26e5eb3246c0adb8d151b1443859
name: 'Nginx: Connections per second'
graph_items:
- color: 199C0D
item:
host: 'Nginx by HTTP'
key: nginx.connections.accepted.rate
- sortorder: '1'
color: F63100
item:
host: 'Nginx by HTTP'
key: nginx.connections.handled.rate
- sortorder: '2'
color: 00611C
item:
host: 'Nginx by HTTP'
key: nginx.connections.dropped.rate
- uuid: 43a87936b35d4d28a658f810c2162a72
name: 'Nginx: Requests per second'
graph_items:
- drawtype: GRADIENT_LINE
color: 199C0D
item:
host: 'Nginx by HTTP'
key: nginx.requests.total.rate