zabbix_export: version: '6.2' date: '2022-04-06T19:59:16Z' 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 Template tooling version used: 0.41 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 dropping rate connections is 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 accepts 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 the 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. Accepts - the total number of accepted client connections. Handled - the total number of handled connections. Generally, the parameter value is the same as accepts 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 the response back to the client. Waiting - the current number of idle client connections waiting for a request. 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 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\/(.+(?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: 'Nginx version has changed. Ack to close.' 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 trigger expression.' - macro: '{$NGINX.RESPONSE_TIME.MAX.WARN}' value: '10' description: 'The Nginx maximum response time in seconds for trigger expression.' - macro: '{$NGINX.STUB_STATUS.PATH}' value: basic_status description: 'The path of Nginx stub_status page.' - macro: '{$NGINX.STUB_STATUS.PORT}' value: '80' description: 'The port of 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_CLASSIC width: '12' height: '5' fields: - type: INTEGER name: source_type value: '0' - type: GRAPH name: graphid value: name: 'Nginx: Connections by state' host: 'Nginx by HTTP' - type: GRAPH_CLASSIC x: '12' width: '12' height: '5' fields: - type: INTEGER name: source_type value: '0' - type: GRAPH name: graphid value: name: 'Nginx: Requests per second' host: 'Nginx by HTTP' - type: GRAPH_CLASSIC 'y': '5' width: '12' height: '5' fields: - type: INTEGER name: source_type value: '0' - type: GRAPH name: graphid value: name: 'Nginx: Connections per second' host: 'Nginx by HTTP' 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: 1A7C11 item: host: 'Nginx by HTTP' key: nginx.connections.active - sortorder: '1' color: 2774A4 item: host: 'Nginx by HTTP' key: nginx.connections.waiting - sortorder: '2' color: F63100 item: host: 'Nginx by HTTP' key: nginx.connections.writing - sortorder: '3' color: A54F10 item: host: 'Nginx by HTTP' key: nginx.connections.reading - uuid: 6feb26e5eb3246c0adb8d151b1443859 name: 'Nginx: Connections per second' graph_items: - color: 1A7C11 item: host: 'Nginx by HTTP' key: nginx.connections.accepted.rate - sortorder: '1' color: 2774A4 item: host: 'Nginx by HTTP' key: nginx.connections.handled.rate - sortorder: '2' color: F63100 item: host: 'Nginx by HTTP' key: nginx.connections.dropped.rate - uuid: 43a87936b35d4d28a658f810c2162a72 name: 'Nginx: Requests per second' graph_items: - drawtype: GRADIENT_LINE color: 1A7C11 item: host: 'Nginx by HTTP' key: nginx.requests.total.rate