zabbix_export: version: '6.0' date: '2021-12-15T09:19:04Z' 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.40 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: Application value: Nginx triggers: - 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}' 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: Process is not running' expression: 'last(/Nginx by Zabbix agent/proc.num[nginx])=0' - name: 'Nginx: Service is down' expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0' - 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: Application value: Nginx triggers: - uuid: c043191c22f34522ba4f83430d9f88b1 expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0' name: 'Nginx: Service is down' priority: AVERAGE manual_close: 'YES' dependencies: - name: 'Nginx: Process is not running' expression: 'last(/Nginx by Zabbix agent/proc.num[nginx])=0' - 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: Application value: Nginx - 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: Application value: Nginx - 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: Application value: Nginx triggers: - uuid: f2d431fa9bc446608caa3f80ef27c41b expression: 'min(/Nginx by Zabbix agent/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN}' 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: Process is not running' expression: 'last(/Nginx by Zabbix agent/proc.num[nginx])=0' - name: 'Nginx: Service is down' expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0' - 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 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: 'web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"]' tags: - tag: Application value: Nginx - 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: Application value: Nginx - 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: Application value: Nginx - 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 the 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: Application value: Nginx - 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: Application value: Nginx - 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: Application value: Nginx - uuid: 3dcc81006977478f92be6dd040d66eb5 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 Zabbix agent/nginx.version,#2) and length(last(/Nginx by Zabbix agent/nginx.version))>0' name: 'Nginx: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Nginx version has changed. Ack to close.' manual_close: 'YES' - uuid: 84c95c1955bf4ccaa12a060a9acdb478 name: 'Nginx: CPU utilization' key: 'proc.cpu.util[nginx]' history: 7d value_type: FLOAT units: '%' description: 'Process CPU utilization percentage.' tags: - tag: Application value: Nginx - uuid: 64d208475c034bae953a64cde1833ebb name: 'Nginx: Memory usage (rss)' key: 'proc.mem[nginx,,,,rss]' history: 7d units: B description: 'Resident set size memory used by process in bytes.' tags: - tag: Application value: Nginx - uuid: 21fccb0286fb407c85f1972e994c698e name: 'Nginx: Memory usage (vsize)' key: 'proc.mem[nginx,,,,vsize]' history: 7d units: B description: 'Virtual memory size used by process in bytes.' tags: - tag: Application value: Nginx - uuid: ba3da6baccee4b31947bf20d3cae0e5f name: 'Nginx: Number of processes running' key: 'proc.num[nginx]' history: 7d description: 'Number of the Nginx processes running.' tags: - tag: Application value: Nginx triggers: - uuid: 903e6a1f30154ee49df3f8d87e0164cc expression: 'last(/Nginx by Zabbix agent/proc.num[nginx])=0' name: 'Nginx: Process is not running' priority: HIGH - 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. 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 tags: - tag: Application value: 'Zabbix raw items' triggers: - 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)=1 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: Process is not running' expression: 'last(/Nginx by Zabbix agent/proc.num[nginx])=0' - name: 'Nginx: Service is down' expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0' 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.HOST}' value: localhost description: 'Hostname or IP of Nginx stub_status host or container.' - 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.' dashboards: - uuid: 9d071e3a148c405e85c53ef25d54efaf 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 Zabbix agent' - 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 Zabbix agent' - 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 Zabbix agent' 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: 69ca908afa1d468d983a263d06910925 name: 'Nginx: Memory usage' graph_items: - color: 1A7C11 item: host: 'Nginx by Zabbix agent' key: 'proc.mem[nginx,,,,vsize]' - sortorder: '1' color: 2774A4 item: host: 'Nginx by Zabbix agent' key: 'proc.mem[nginx,,,,rss]' - 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