Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_agent?at=release/7.4
This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template Nginx by Zabbix agent - collects metrics by polling the Module ngx_http_stub_status_module locally with Zabbix agent:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support HTTPS and redirects (limitations of web.page.get).
It also uses Zabbix agent to collect Nginx Linux process statistics, such as CPU usage, memory usage and whether the process is running or not.
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
See the setup instructions for ngx_http_stub_status_module.
Test the availability of the http_stub_status_module nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
If you use another location, then don't forget to change the {$NGINX.STUB_STATUS.PATH} macro.
Example answer from Nginx:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support https and redirects (limitations of web.page.get).
Install and setup Zabbix agent.
| Name | Description | Default |
|---|---|---|
| {$NGINX.STUB_STATUS.HOST} | The hostname or IP address of the Nginx host or Nginx container of |
localhost |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
| {$NGINX.PROCESS_NAME} | The process name filter for the Nginx process discovery. |
nginx |
| {$NGINX.PROCESS.NAME.PARAMETER} | The process name of the Nginx server used in the item key |
|
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get stub status page | The following status information is provided:
See also Module ngx_http_stub_status_module. |
Zabbix agent | web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"] |
| Service status | Zabbix agent | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing
|
|
| Service response time | Zabbix agent | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] | |
| Requests total | The total number of client requests. |
Dependent item | nginx.requests.total Preprocessing
|
| Requests per second | The total number of client requests. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Connections accepted per second | The total number of accepted client connections. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Connections dropped per second | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped.rate Preprocessing
|
| Connections handled per second | 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 |
Dependent item | nginx.connections.handled.rate Preprocessing
|
| Connections active | The current number of active client connections including waiting connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Connections reading | The current number of connections where Nginx is reading the request header. |
Dependent item | nginx.connections.reading Preprocessing
|
| Connections waiting | The current number of idle client connections waiting for a request. |
Dependent item | nginx.connections.waiting Preprocessing
|
| Connections writing | The current number of connections where Nginx is writing a response back to the client. |
Dependent item | nginx.connections.writing Preprocessing
|
| Version | Dependent item | nginx.version Preprocessing
|
|
| Get processes summary | The aggregated data of summary metrics for all processes. |
Zabbix agent | proc.get[{$NGINX.PROCESS.NAME.PARAMETER},,,summary] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
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 |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx process discovery | The discovery of Nginx process summary. |
Dependent item | nginx.proc.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU utilization | The percentage of the CPU utilization by a process {#NGINX.NAME}. |
Zabbix agent | proc.cpu.util[{#NGINX.NAME}] |
| Get process data | The summary metrics aggregated by a process {#NGINX.NAME}. |
Dependent item | nginx.proc.get[{#NGINX.NAME}] Preprocessing
|
| Memory usage (vsize) | The summary of virtual memory used by a process {#NGINX.NAME} expressed in bytes. |
Dependent item | nginx.proc.vmem[{#NGINX.NAME}] Preprocessing
|
| Memory usage (rss) | The summary of resident set size memory used by a process {#NGINX.NAME} expressed in bytes. |
Dependent item | nginx.proc.rss[{#NGINX.NAME}] Preprocessing
|
| Memory usage, % | The percentage of real memory used by a process {#NGINX.NAME}. |
Dependent item | nginx.proc.pmem[{#NGINX.NAME}] Preprocessing
|
| Number of running processes | The number of running processes {#NGINX.NAME}. |
Dependent item | nginx.proc.num[{#NGINX.NAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Process is not running | last(/Nginx by Zabbix agent/nginx.proc.num[{#NGINX.NAME}])=0 |
High | ||
| Nginx: Service is down | 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[{#NGINX.NAME}])>0 |
Average | Manual close: Yes | |
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by Zabbix agent/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} and last(/Nginx by Zabbix agent/nginx.proc.num[{#NGINX.NAME}])>0 |
Warning | Depends on:
|
| Nginx: Service response time is too high | 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[{#NGINX.NAME}])>0 |
Warning | Manual close: Yes Depends on:
|
|
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
(find(/Nginx by Zabbix agent/web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"],,"iregexp","HTTP\\/[\\d.]+\\s+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[{#NGINX.NAME}])>0 |
Warning | Manual close: Yes Depends on:
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_agent?at=release/7.2
This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template Nginx by Zabbix agent - collects metrics by polling the Module ngx_http_stub_status_module locally with Zabbix agent:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support HTTPS and redirects (limitations of web.page.get).
It also uses Zabbix agent to collect Nginx Linux process statistics, such as CPU usage, memory usage and whether the process is running or not.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
See the setup instructions for ngx_http_stub_status_module.
Test the availability of the http_stub_status_module nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
If you use another location, then don't forget to change the {$NGINX.STUB_STATUS.PATH} macro.
Example answer from Nginx:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support https and redirects (limitations of web.page.get).
Install and setup Zabbix agent.
| Name | Description | Default |
|---|---|---|
| {$NGINX.STUB_STATUS.HOST} | The hostname or IP address of the Nginx host or Nginx container of |
localhost |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| {$NGINX.PROCESS_NAME} | The process name filter for the Nginx process discovery. |
nginx |
| {$NGINX.PROCESS.NAME.PARAMETER} | The process name of the Nginx server used in the item key |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get stub status page | The following status information is provided:
See also Module ngx_http_stub_status_module. |
Zabbix agent | web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"] |
| Service status | Zabbix agent | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing
|
|
| Service response time | Zabbix agent | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] | |
| Requests total | The total number of client requests. |
Dependent item | nginx.requests.total Preprocessing
|
| Requests per second | The total number of client requests. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Connections accepted per second | The total number of accepted client connections. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Connections dropped per second | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped.rate Preprocessing
|
| Connections handled per second | 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 |
Dependent item | nginx.connections.handled.rate Preprocessing
|
| Connections active | The current number of active client connections including waiting connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Connections reading | The current number of connections where Nginx is reading the request header. |
Dependent item | nginx.connections.reading Preprocessing
|
| Connections waiting | The current number of idle client connections waiting for a request. |
Dependent item | nginx.connections.waiting Preprocessing
|
| Connections writing | The current number of connections where Nginx is writing a response back to the client. |
Dependent item | nginx.connections.writing Preprocessing
|
| Version | Dependent item | nginx.version Preprocessing
|
|
| Get processes summary | The aggregated data of summary metrics for all processes. |
Zabbix agent | proc.get[{$NGINX.PROCESS.NAME.PARAMETER},,,summary] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
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 |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx process discovery | The discovery of Nginx process summary. |
Dependent item | nginx.proc.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU utilization | The percentage of the CPU utilization by a process {#NGINX.NAME}. |
Zabbix agent | proc.cpu.util[{#NGINX.NAME}] |
| Get process data | The summary metrics aggregated by a process {#NGINX.NAME}. |
Dependent item | nginx.proc.get[{#NGINX.NAME}] Preprocessing
|
| Memory usage (vsize) | The summary of virtual memory used by a process {#NGINX.NAME} expressed in bytes. |
Dependent item | nginx.proc.vmem[{#NGINX.NAME}] Preprocessing
|
| Memory usage (rss) | The summary of resident set size memory used by a process {#NGINX.NAME} expressed in bytes. |
Dependent item | nginx.proc.rss[{#NGINX.NAME}] Preprocessing
|
| Memory usage, % | The percentage of real memory used by a process {#NGINX.NAME}. |
Dependent item | nginx.proc.pmem[{#NGINX.NAME}] Preprocessing
|
| Number of running processes | The number of running processes {#NGINX.NAME}. |
Dependent item | nginx.proc.num[{#NGINX.NAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Process is not running | last(/Nginx by Zabbix agent/nginx.proc.num[{#NGINX.NAME}])=0 |
High | ||
| Nginx: Service is down | 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[{#NGINX.NAME}])>0 |
Average | Manual close: Yes | |
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by Zabbix agent/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} and last(/Nginx by Zabbix agent/nginx.proc.num[{#NGINX.NAME}])>0 |
Warning | Depends on:
|
| Nginx: Service response time is too high | 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[{#NGINX.NAME}])>0 |
Warning | Manual close: Yes Depends on:
|
|
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
(find(/Nginx by Zabbix agent/web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"],,"iregexp","HTTP\\/[\\d.]+\\s+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[{#NGINX.NAME}])>0 |
Warning | Manual close: Yes Depends on:
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_agent?at=release/7.0
This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template Nginx by Zabbix agent - collects metrics by polling the Module ngx_http_stub_status_module locally with Zabbix agent:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support HTTPS and redirects (limitations of web.page.get).
It also uses Zabbix agent to collect Nginx Linux process statistics, such as CPU usage, memory usage and whether the process is running or not.
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
See the setup instructions for ngx_http_stub_status_module.
Test the availability of the http_stub_status_module nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
If you use another location, then don't forget to change the {$NGINX.STUB_STATUS.PATH} macro.
Example answer from Nginx:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support https and redirects (limitations of web.page.get).
Install and setup Zabbix agent.
| Name | Description | Default |
|---|---|---|
| {$NGINX.STUB_STATUS.HOST} | The hostname or IP address of the Nginx host or Nginx container of |
localhost |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| {$NGINX.PROCESS_NAME} | The process name filter for the Nginx process discovery. |
nginx |
| {$NGINX.PROCESS.NAME.PARAMETER} | The process name of the Nginx server used in the item key |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get stub status page | The following status information is provided:
See also Module ngx_http_stub_status_module. |
Zabbix agent | web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"] |
| Service status | Zabbix agent | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing
|
|
| Service response time | Zabbix agent | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] | |
| Requests total | The total number of client requests. |
Dependent item | nginx.requests.total Preprocessing
|
| Requests per second | The total number of client requests. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Connections accepted per second | The total number of accepted client connections. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Connections dropped per second | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped.rate Preprocessing
|
| Connections handled per second | 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 |
Dependent item | nginx.connections.handled.rate Preprocessing
|
| Connections active | The current number of active client connections including waiting connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Connections reading | The current number of connections where Nginx is reading the request header. |
Dependent item | nginx.connections.reading Preprocessing
|
| Connections waiting | The current number of idle client connections waiting for a request. |
Dependent item | nginx.connections.waiting Preprocessing
|
| Connections writing | The current number of connections where Nginx is writing a response back to the client. |
Dependent item | nginx.connections.writing Preprocessing
|
| Version | Dependent item | nginx.version Preprocessing
|
|
| Get processes summary | The aggregated data of summary metrics for all processes. |
Zabbix agent | proc.get[{$NGINX.PROCESS.NAME.PARAMETER},,,summary] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
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 |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx process discovery | The discovery of Nginx process summary. |
Dependent item | nginx.proc.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU utilization | The percentage of the CPU utilization by a process {#NGINX.NAME}. |
Zabbix agent | proc.cpu.util[{#NGINX.NAME}] |
| Get process data | The summary metrics aggregated by a process {#NGINX.NAME}. |
Dependent item | nginx.proc.get[{#NGINX.NAME}] Preprocessing
|
| Memory usage (vsize) | The summary of virtual memory used by a process {#NGINX.NAME} expressed in bytes. |
Dependent item | nginx.proc.vmem[{#NGINX.NAME}] Preprocessing
|
| Memory usage (rss) | The summary of resident set size memory used by a process {#NGINX.NAME} expressed in bytes. |
Dependent item | nginx.proc.rss[{#NGINX.NAME}] Preprocessing
|
| Memory usage, % | The percentage of real memory used by a process {#NGINX.NAME}. |
Dependent item | nginx.proc.pmem[{#NGINX.NAME}] Preprocessing
|
| Number of running processes | The number of running processes {#NGINX.NAME}. |
Dependent item | nginx.proc.num[{#NGINX.NAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Process is not running | last(/Nginx by Zabbix agent/nginx.proc.num[{#NGINX.NAME}])=0 |
High | ||
| Nginx: Service is down | 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[{#NGINX.NAME}])>0 |
Average | Manual close: Yes | |
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by Zabbix agent/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} and last(/Nginx by Zabbix agent/nginx.proc.num[{#NGINX.NAME}])>0 |
Warning | Depends on:
|
| Nginx: Service response time is too high | 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[{#NGINX.NAME}])>0 |
Warning | Manual close: Yes Depends on:
|
|
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
(find(/Nginx by Zabbix agent/web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"],,"iregexp","HTTP\\/[\\d.]+\\s+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[{#NGINX.NAME}])>0 |
Warning | Manual close: Yes Depends on:
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_agent?at=release/6.4
This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template Nginx by Zabbix agent - collects metrics by polling the Module ngx_http_stub_status_module locally with Zabbix agent:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support HTTPS and redirects (limitations of web.page.get).
It also uses Zabbix agent to collect Nginx Linux process statistics, such as CPU usage, memory usage and whether the process is running or not.
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
See the setup instructions for ngx_http_stub_status_module.
Test the availability of the http_stub_status_module nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
If you use another location, then don't forget to change the {$NGINX.STUB_STATUS.PATH} macro.
Example answer from Nginx:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support https and redirects (limitations of web.page.get).
Install and setup Zabbix agent.
| Name | Description | Default |
|---|---|---|
| {$NGINX.STUB_STATUS.HOST} | The hostname or IP address of the Nginx host or Nginx container of |
localhost |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| {$NGINX.PROCESS_NAME} | The process name filter for the Nginx process discovery. |
nginx |
| {$NGINX.PROCESS.NAME.PARAMETER} | The process name of the Nginx server used in the item key |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Get stub status page | The following status information is provided:
See also Module ngx_http_stub_status_module. |
Zabbix agent | web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"] |
| Nginx: Service status | Zabbix agent | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing
|
|
| Nginx: Service response time | Zabbix agent | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] | |
| Nginx: Requests total | The total number of client requests. |
Dependent item | nginx.requests.total Preprocessing
|
| Nginx: Requests per second | The total number of client requests. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Nginx: Connections accepted per second | The total number of accepted client connections. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Nginx: Connections dropped per second | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped.rate Preprocessing
|
| Nginx: Connections handled per second | 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 |
Dependent item | nginx.connections.handled.rate Preprocessing
|
| Nginx: Connections active | The current number of active client connections including waiting connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Nginx: Connections reading | The current number of connections where Nginx is reading the request header. |
Dependent item | nginx.connections.reading Preprocessing
|
| Nginx: Connections waiting | The current number of idle client connections waiting for a request. |
Dependent item | nginx.connections.waiting Preprocessing
|
| Nginx: Connections writing | The current number of connections where Nginx is writing a response back to the client. |
Dependent item | nginx.connections.writing Preprocessing
|
| Nginx: Version | Dependent item | nginx.version Preprocessing
|
|
| Nginx: Get processes summary | The aggregated data of summary metrics for all processes. |
Zabbix agent | proc.get[{$NGINX.PROCESS.NAME.PARAMETER},,,summary] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
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 |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx process discovery | The discovery of Nginx process summary. |
Dependent item | nginx.proc.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: CPU utilization | The percentage of the CPU utilization by a process {#NGINX.NAME}. |
Zabbix agent | proc.cpu.util[{#NGINX.NAME}] |
| Nginx: Get process data | The summary metrics aggregated by a process {#NGINX.NAME}. |
Dependent item | nginx.proc.get[{#NGINX.NAME}] Preprocessing
|
| Nginx: Memory usage (vsize) | The summary of virtual memory used by a process {#NGINX.NAME} expressed in bytes. |
Dependent item | nginx.proc.vmem[{#NGINX.NAME}] Preprocessing
|
| Nginx: Memory usage (rss) | The summary of resident set size memory used by a process {#NGINX.NAME} expressed in bytes. |
Dependent item | nginx.proc.rss[{#NGINX.NAME}] Preprocessing
|
| Nginx: Memory usage, % | The percentage of real memory used by a process {#NGINX.NAME}. |
Dependent item | nginx.proc.pmem[{#NGINX.NAME}] Preprocessing
|
| Nginx: Number of running processes | The number of running processes {#NGINX.NAME}. |
Dependent item | nginx.proc.num[{#NGINX.NAME}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Process is not running | last(/Nginx by Zabbix agent/nginx.proc.num[{#NGINX.NAME}])=0 |
High | ||
| Nginx: Service is down | 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[{#NGINX.NAME}])>0 |
Average | Manual close: Yes | |
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by Zabbix agent/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} and last(/Nginx by Zabbix agent/nginx.proc.num[{#NGINX.NAME}])>0 |
Warning | Depends on:
|
| Nginx: Service response time is too high | 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[{#NGINX.NAME}])>0 |
Warning | Manual close: Yes Depends on:
|
|
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
(find(/Nginx by Zabbix agent/web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"],,"iregexp","HTTP\/[\d.]+\s+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[{#NGINX.NAME}])>0 |
Warning | Manual close: Yes Depends on:
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_agent?at=release/6.2
For Zabbix version: 6.2 and higher. This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template Nginx by Zabbix agent - collects metrics by polling the Module ngx_http_stub_status_module locally with Zabbix agent:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support HTTPS and redirects (limitations of web.page.get).
It also uses Zabbix agent to collect Nginx Linux process statistics, such as CPU usage, memory usage and whether the process is running or not.
This template was tested on:
See Zabbix template operation for basic instructions.
See the setup instructions for ngx_http_stub_status_module.
Test the availability of the http_stub_status_module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
If you use another location, then don't forget to change the {$NGINX.STUB_STATUS.PATH} macro. Install and setup Zabbix agent.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| {$NGINX.PROCESS_NAME} | The process name of the Nginx server. |
nginx |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.STUB_STATUS.HOST} | The Hostname or an IP addess of the Nginx host or Nginx container of |
localhost |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx process discovery | The discovery of Nginx process summary. |
DEPENDENT | nginx.proc.discovery Filter: AND- {#NAME} MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Nginx | Nginx: Service status | - |
ZABBIX_PASSIVE | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Service response time | - |
ZABBIX_PASSIVE | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] |
| Nginx | Nginx: Requests total | The total number of client requests. |
DEPENDENT | nginx.requests.total Preprocessing: - REGEX: |
| Nginx | Nginx: Requests per second | The total number of client requests. |
DEPENDENT | nginx.requests.total.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections accepted per second | The total number of accepted client connections. |
DEPENDENT | nginx.connections.accepted.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections dropped per second | The total number of dropped client connections. |
DEPENDENT | nginx.connections.dropped.rate Preprocessing: - JAVASCRIPT: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections handled per second | 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 |
DEPENDENT | nginx.connections.handled.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections active | The current number of active client connections including waiting connections. |
DEPENDENT | nginx.connections.active Preprocessing: - REGEX: |
| Nginx | Nginx: Connections reading | The current number of connections where Nginx is reading the request header. |
DEPENDENT | nginx.connections.reading Preprocessing: - REGEX: |
| Nginx | Nginx: Connections waiting | The current number of idle client connections waiting for a request. |
DEPENDENT | nginx.connections.waiting Preprocessing: - REGEX: |
| Nginx | Nginx: Connections writing | The current number of connections where Nginx is writing a response back to the client. |
DEPENDENT | nginx.connections.writing Preprocessing: - REGEX: |
| Nginx | Nginx: Get processes summary | The aggregated data of summary metrics for all processes. |
ZABBIX_PASSIVE | proc.get[,,,summary] |
| Nginx | Nginx: Version | - |
DEPENDENT | nginx.version Preprocessing: - REGEX: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: CPU utilization | The percentage of the CPU utilization by a process {#NAME}. |
ZABBIX_PASSIVE | proc.cpu.util[{#NAME}] |
| Nginx | Nginx: Get process data | The summary metrics aggregated by a process {#NAME}. |
DEPENDENT | nginx.proc.get[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Memory usage (vsize) | The summary of virtual memory used by a process {#NAME} expressed in bytes. |
DEPENDENT | nginx.proc.vmem[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Memory usage (rss) | The summary of resident set size memory used by a process {#NAME} expressed in bytes. |
DEPENDENT | nginx.proc.rss[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Memory usage, % | The percentage of real memory used by a process {#NAME}. |
DEPENDENT | nginx.proc.pmem[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Number of running processes | The number of running processes {#NAME}. |
DEPENDENT | nginx.proc.num[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
| Zabbix raw items | Nginx: Get stub status page | The following status information is provided: See also Module ngx_http_stub_status_module. |
ZABBIX_PASSIVE | web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Version has changed | The Nginx version has changed. Acknowledge (Ack) to close manually. |
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 |
INFO | Manual close: YES |
| Nginx: Process is not running | - |
last(/Nginx by Zabbix agent/nginx.proc.num[{#NAME}])=0 |
HIGH | |
| Nginx: Service is down | - |
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 |
AVERAGE | Manual close: YES |
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
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 |
WARNING | Depends on: - Nginx: Service is down |
| Nginx: Service response time is too high | - |
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 |
WARNING | Manual close: YES Depends on: - Nginx: Service is down |
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
(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 |
WARNING | Manual close: YES Depends on: - Nginx: Service is down |
Please report any issues with the template at https://support.zabbix.com.
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_agent?at=release/6.0
This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template Nginx by Zabbix agent - collects metrics by polling the Module ngx_http_stub_status_module locally with Zabbix agent:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support HTTPS and redirects (limitations of web.page.get).
It also uses Zabbix agent to collect Nginx Linux process statistics, such as CPU usage, memory usage and whether the process is running or not.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
See the setup instructions for ngx_http_stub_status_module.
Test the availability of the http_stub_status_module nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
If you use another location, then don't forget to change the {$NGINX.STUB_STATUS.PATH} macro.
Example answer from Nginx:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support https and redirects (limitations of web.page.get).
Install and setup Zabbix agent.
| Name | Description | Default |
|---|---|---|
| {$NGINX.STUB_STATUS.HOST} | The hostname or IP address of the Nginx host or Nginx container of |
localhost |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Get stub status page | The following status information is provided:
See also Module ngx_http_stub_status_module. |
Zabbix agent | web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"] |
| Nginx: Service status | Zabbix agent | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing
|
|
| Nginx: Service response time | Zabbix agent | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] | |
| Nginx: Requests total | The total number of client requests. |
Dependent item | nginx.requests.total Preprocessing
|
| Nginx: Requests per second | The total number of client requests. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Nginx: Connections accepted per second | The total number of accepted client connections. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Nginx: Connections dropped per second | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped.rate Preprocessing
|
| Nginx: Connections handled per second | 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 |
Dependent item | nginx.connections.handled.rate Preprocessing
|
| Nginx: Connections active | The current number of active client connections including waiting connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Nginx: Connections reading | The current number of connections where Nginx is reading the request header. |
Dependent item | nginx.connections.reading Preprocessing
|
| Nginx: Connections waiting | The current number of idle client connections waiting for a request. |
Dependent item | nginx.connections.waiting Preprocessing
|
| Nginx: Connections writing | The current number of connections where Nginx is writing a response back to the client. |
Dependent item | nginx.connections.writing Preprocessing
|
| Nginx: Number of running processes | Number of the Nginx processes running. |
Zabbix agent | proc.num[nginx] |
| Nginx: Memory usage (vsize) | Virtual memory size used by process in bytes. |
Zabbix agent | proc.mem[nginx,,,,vsize] |
| Nginx: Memory usage (rss) | Resident set size memory used by process in bytes. |
Zabbix agent | proc.mem[nginx,,,,rss] |
| Nginx: CPU utilization | Process CPU utilization percentage. |
Zabbix agent | proc.cpu.util[nginx] |
| Nginx: Version | Dependent item | nginx.version Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
find(/Nginx by Zabbix agent/web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"],,"iregexp","HTTP\/[\d.]+\s+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 |
Warning | Manual close: Yes Depends on:
|
| Nginx: Service is down | last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0 |
Average | Manual close: Yes Depends on:
|
|
| Nginx: Service response time is too high | min(/Nginx by Zabbix agent/net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
|
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by Zabbix agent/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning | Depends on:
|
| Nginx: Process is not running | last(/Nginx by Zabbix agent/proc.num[nginx])=0 |
High | ||
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
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 |
Info | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_agent?at=release/5.4
For Zabbix version: 5.4 and higher
The template to monitor Nginx by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Nginx by Zabbix agent collects metrics by polling ngx_http_stub_status_module locally with Zabbix agent:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support https and redirects (limitations of web.page.get).
It also uses Zabbix agent to collect nginx Linux process stats like CPU usage, memory usage and whether process is running or not.
This template was tested on:
See Zabbix template operation for basic instructions.
Setup ngx_http_stub_status_module.
Test availability of http_stub_status module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
If you use another location, then don't forget to change {$NGINX.STUB_STATUS.PATH} macro. Install and setup Zabbix agent.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for trigger expression. |
1 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The Nginx maximum response time in seconds for trigger expression. |
10 |
| {$NGINX.STUB_STATUS.HOST} | Hostname or IP of Nginx stub_status host or container. |
localhost |
| {$NGINX.STUB_STATUS.PATH} | The path of Nginx stub_status page. |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of Nginx stub_status host or container. |
80 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Nginx | Nginx: Service status | - |
ZABBIX_PASSIVE | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Service response time | - |
ZABBIX_PASSIVE | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] |
| Nginx | Nginx: Requests total | The total number of client requests. |
DEPENDENT | nginx.requests.total Preprocessing: - REGEX: |
| Nginx | Nginx: Requests per second | The total number of client requests. |
DEPENDENT | nginx.requests.total.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections accepted per second | The total number of accepted client connections. |
DEPENDENT | nginx.connections.accepted.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections dropped per second | The total number of dropped client connections. |
DEPENDENT | nginx.connections.dropped.rate Preprocessing: - JAVASCRIPT: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections handled per second | 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). |
DEPENDENT | nginx.connections.handled.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections active | The current number of active client connections including Waiting connections. |
DEPENDENT | nginx.connections.active Preprocessing: - REGEX: |
| Nginx | Nginx: Connections reading | The current number of connections where nginx is reading the request header. |
DEPENDENT | nginx.connections.reading Preprocessing: - REGEX: |
| Nginx | Nginx: Connections waiting | The current number of idle client connections waiting for a request. |
DEPENDENT | nginx.connections.waiting Preprocessing: - REGEX: |
| Nginx | Nginx: Connections writing | The current number of connections where nginx is writing the response back to the client. |
DEPENDENT | nginx.connections.writing Preprocessing: - REGEX: |
| Nginx | Nginx: Number of processes running | Number of the Nginx processes running. |
ZABBIX_PASSIVE | proc.num[nginx] |
| Nginx | Nginx: Memory usage (vsize) | Virtual memory size used by process in bytes. |
ZABBIX_PASSIVE | proc.mem[nginx,,,,vsize] |
| Nginx | Nginx: Memory usage (rss) | Resident set size memory used by process in bytes. |
ZABBIX_PASSIVE | proc.mem[nginx,,,,rss] |
| Nginx | Nginx: CPU utilization | Process CPU utilization percentage. |
ZABBIX_PASSIVE | proc.cpu.util[nginx] |
| Nginx | Nginx: Version | - |
DEPENDENT | nginx.version Preprocessing: - REGEX: - DISCARD_UNCHANGED_HEARTBEAT: |
| Zabbix_raw_items | Nginx: Get stub status page | 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 |
ZABBIX_PASSIVE | web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Service is down | - |
last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0 |
AVERAGE | Manual close: YES Depends on: - Nginx: Process is not running |
| Nginx: Service response time is too high (over {$NGINX.RESPONSE_TIME.MAX.WARN}s for 5m) | - |
min(/Nginx by Zabbix agent/net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN} |
WARNING | Manual close: YES Depends on: - Nginx: Process is not running - Nginx: Service is down |
| Nginx: High connections drop rate (more than {$NGINX.DROP_RATE.MAX.WARN} for 5m) | The dropping rate connections is greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by Zabbix agent/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
WARNING | Depends on: - Nginx: Process is not running - Nginx: Service is down |
| Nginx: Process is not running | - |
last(/Nginx by Zabbix agent/proc.num[nginx])=0 |
HIGH | |
| Nginx: Version has changed (new version: {ITEM.VALUE}) | Nginx version has changed. Ack to close. |
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 |
INFO | Manual close: YES |
| Nginx: Failed to fetch stub status page (or no data for 30m) | Zabbix has not received data for items for the last 30 minutes. |
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 |
WARNING | Manual close: YES Depends on: - Nginx: Process is not running - Nginx: Service is down |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_agent?at=release/5.0
For Zabbix version: 5.0 and higher
The template to monitor Nginx by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Nginx by Zabbix agent collects metrics by polling ngx_http_stub_status_module locally with Zabbix agent:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this template doesn't support https and redirects (limitations of web.page.get).
It also uses Zabbix agent to collect nginx Linux process stats like CPU usage, memory usage and whether process is running or not.
This template was tested on:
See Zabbix template operation for basic instructions.
Setup ngx_http_stub_status_module.
Test availability of http_stub_status module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow ::1;
deny all;
}
If you use another location, then don't forget to change {$NGINX.STUB_STATUS.PATH} macro. Install and setup Zabbix agent.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for trigger expression. |
1 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The Nginx maximum response time in seconds for trigger expression. |
10 |
| {$NGINX.STUB_STATUS.HOST} | Hostname or IP of Nginx stub_status host or container. |
localhost |
| {$NGINX.STUB_STATUS.PATH} | The path of Nginx stub_status page. |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of Nginx stub_status host or container. |
80 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Nginx | Nginx: Service status | - |
ZABBIX_PASSIVE | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Service response time | - |
ZABBIX_PASSIVE | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] |
| Nginx | Nginx: Requests total | The total number of client requests. |
DEPENDENT | nginx.requests.total Preprocessing: - REGEX: |
| Nginx | Nginx: Requests per second | The total number of client requests. |
DEPENDENT | nginx.requests.total.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections accepted per second | The total number of accepted client connections. |
DEPENDENT | nginx.connections.accepted.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections dropped per second | The total number of dropped client connections. |
DEPENDENT | nginx.connections.dropped.rate Preprocessing: - JAVASCRIPT: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections handled per second | 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). |
DEPENDENT | nginx.connections.handled.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections active | The current number of active client connections including Waiting connections. |
DEPENDENT | nginx.connections.active Preprocessing: - REGEX: |
| Nginx | Nginx: Connections reading | The current number of connections where nginx is reading the request header. |
DEPENDENT | nginx.connections.reading Preprocessing: - REGEX: |
| Nginx | Nginx: Connections waiting | The current number of idle client connections waiting for a request. |
DEPENDENT | nginx.connections.waiting Preprocessing: - REGEX: |
| Nginx | Nginx: Connections writing | The current number of connections where nginx is writing the response back to the client. |
DEPENDENT | nginx.connections.writing Preprocessing: - REGEX: |
| Nginx | Nginx: Number of processes running | Number of the Nginx processes running. |
ZABBIX_PASSIVE | proc.num[nginx] |
| Nginx | Nginx: Memory usage (vsize) | Virtual memory size used by process in bytes. |
ZABBIX_PASSIVE | proc.mem[nginx,,,,vsize] |
| Nginx | Nginx: Memory usage (rss) | Resident set size memory used by process in bytes. |
ZABBIX_PASSIVE | proc.mem[nginx,,,,rss] |
| Nginx | Nginx: CPU utilization | Process CPU utilization percentage. |
ZABBIX_PASSIVE | proc.cpu.util[nginx] |
| Nginx | Nginx: Version | - |
DEPENDENT | nginx.version Preprocessing: - REGEX: - DISCARD_UNCHANGED_HEARTBEAT: |
| Zabbix_raw_items | Nginx: Get stub status page | 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 |
ZABBIX_PASSIVE | web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Service is down | - |
{TEMPLATE_NAME:net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"].last()}=0 |
AVERAGE | Manual close: YES Depends on: - Nginx: Process is not running |
| Nginx: Service response time is too high (over {$NGINX.RESPONSE_TIME.MAX.WARN}s for 5m) | - |
{TEMPLATE_NAME:net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"].min(5m)}>{$NGINX.RESPONSE_TIME.MAX.WARN} |
WARNING | Manual close: YES Depends on: - Nginx: Process is not running - Nginx: Service is down |
| Nginx: High connections drop rate (more than {$NGINX.DROP_RATE.MAX.WARN} for 5m) | The dropping rate connections is greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
{TEMPLATE_NAME:nginx.connections.dropped.rate.min(5m)} > {$NGINX.DROP_RATE.MAX.WARN} |
WARNING | Depends on: - Nginx: Process is not running - Nginx: Service is down |
| Nginx: Process is not running | - |
{TEMPLATE_NAME:proc.num[nginx].last()}=0 |
HIGH | |
| Nginx: Version has changed (new version: {ITEM.VALUE}) | Nginx version has changed. Ack to close. |
{TEMPLATE_NAME:nginx.version.diff()}=1 and {TEMPLATE_NAME:nginx.version.strlen()}>0 |
INFO | Manual close: YES |
| Nginx: Failed to fetch stub status page (or no data for 30m) | Zabbix has not received data for items for the last 30 minutes. |
{TEMPLATE_NAME:web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"].str("HTTP/1.1 200")}=0 or {TEMPLATE_NAME:web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"].nodata(30m)}=1 |
WARNING | Manual close: YES Depends on: - Nginx: Process is not running - Nginx: Service is down |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_http?at=release/7.4
This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template collects metrics by polling the module ngx_http_stub_status_module with HTTP agent remotely:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
ngx_http_stub_status_module.Test the availability of the http_stub_status_module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow <IP of your Zabbix server/proxy>;
deny all;
}
{$NGINX.STUB_STATUS.HOST} macro. You can also change the status page port in the {$NGINX.STUB_STATUS.PORT} macro, the status page scheme in the {$NGINX.STUB_STATUS.SCHEME} macro and the status page path in the {$NGINX.STUB_STATUS.PATH} macro if necessary.Example answer from Nginx:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
| Name | Description | Default |
|---|---|---|
| {$NGINX.STUB_STATUS.HOST} | The hostname or IP address of the Nginx host or Nginx container of a stub_status. |
|
| {$NGINX.STUB_STATUS.SCHEME} | The protocol http or https of Nginx stub_status host or container. |
http |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get stub status page | The following status information is provided:
See also Module ngx_http_stub_status_module. |
HTTP agent | nginx.get_stub_status |
| Service status | Simple check | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing
|
|
| Service response time | Simple check | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] | |
| Requests total | The total number of client requests. |
Dependent item | nginx.requests.total Preprocessing
|
| Requests per second | The total number of client requests. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Connections accepted per second | The total number of accepted client connections. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Connections dropped per second | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped.rate Preprocessing
|
| Connections handled per second | 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 |
Dependent item | nginx.connections.handled.rate Preprocessing
|
| Connections active | The current number of active client connections including waiting connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Connections reading | The current number of connections where Nginx is reading the request header. |
Dependent item | nginx.connections.reading Preprocessing
|
| Connections waiting | The current number of idle client connections waiting for a request. |
Dependent item | nginx.connections.waiting Preprocessing
|
| Connections writing | The current number of connections where Nginx is writing a response back to the client. |
Dependent item | nginx.connections.writing Preprocessing
|
| Version | Dependent item | nginx.version Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
find(/Nginx by HTTP/nginx.get_stub_status,,"iregexp","HTTP\\/[\\d.]+\\s+200")=0 or nodata(/Nginx by HTTP/nginx.get_stub_status,30m)=1 |
Warning | Manual close: Yes Depends on:
|
| Nginx: Service is down | last(/Nginx by HTTP/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0 |
Average | Manual close: Yes | |
| Nginx: Service response time is too high | min(/Nginx by HTTP/net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
|
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by HTTP/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning | Depends on:
|
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
last(/Nginx by HTTP/nginx.version,#1)<>last(/Nginx by HTTP/nginx.version,#2) and length(last(/Nginx by HTTP/nginx.version))>0 |
Info | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_http?at=release/7.2
This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template collects metrics by polling the module ngx_http_stub_status_module with HTTP agent remotely:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
ngx_http_stub_status_module.Test the availability of the http_stub_status_module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow <IP of your Zabbix server/proxy>;
deny all;
}
{$NGINX.STUB_STATUS.HOST} macro. You can also change the status page port in the {$NGINX.STUB_STATUS.PORT} macro, the status page scheme in the {$NGINX.STUB_STATUS.SCHEME} macro and the status page path in the {$NGINX.STUB_STATUS.PATH} macro if necessary.Example answer from Nginx:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
| Name | Description | Default |
|---|---|---|
| {$NGINX.STUB_STATUS.HOST} | The hostname or IP address of the Nginx host or Nginx container of a stub_status. |
<SET STUB_STATUS HOST> |
| {$NGINX.STUB_STATUS.SCHEME} | The protocol http or https of Nginx stub_status host or container. |
http |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get stub status page | The following status information is provided:
See also Module ngx_http_stub_status_module. |
HTTP agent | nginx.get_stub_status |
| Service status | Simple check | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing
|
|
| Service response time | Simple check | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] | |
| Requests total | The total number of client requests. |
Dependent item | nginx.requests.total Preprocessing
|
| Requests per second | The total number of client requests. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Connections accepted per second | The total number of accepted client connections. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Connections dropped per second | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped.rate Preprocessing
|
| Connections handled per second | 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 |
Dependent item | nginx.connections.handled.rate Preprocessing
|
| Connections active | The current number of active client connections including waiting connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Connections reading | The current number of connections where Nginx is reading the request header. |
Dependent item | nginx.connections.reading Preprocessing
|
| Connections waiting | The current number of idle client connections waiting for a request. |
Dependent item | nginx.connections.waiting Preprocessing
|
| Connections writing | The current number of connections where Nginx is writing a response back to the client. |
Dependent item | nginx.connections.writing Preprocessing
|
| Version | Dependent item | nginx.version Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
find(/Nginx by HTTP/nginx.get_stub_status,,"iregexp","HTTP\\/[\\d.]+\\s+200")=0 or nodata(/Nginx by HTTP/nginx.get_stub_status,30m)=1 |
Warning | Manual close: Yes Depends on:
|
| Nginx: Service is down | last(/Nginx by HTTP/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0 |
Average | Manual close: Yes | |
| Nginx: Service response time is too high | min(/Nginx by HTTP/net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
|
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by HTTP/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning | Depends on:
|
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
last(/Nginx by HTTP/nginx.version,#1)<>last(/Nginx by HTTP/nginx.version,#2) and length(last(/Nginx by HTTP/nginx.version))>0 |
Info | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_http?at=release/7.0
This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template collects metrics by polling the module ngx_http_stub_status_module with HTTP agent remotely:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
ngx_http_stub_status_module.Test the availability of the http_stub_status_module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow <IP of your Zabbix server/proxy>;
deny all;
}
{$NGINX.STUB_STATUS.HOST} macro. You can also change the status page port in the {$NGINX.STUB_STATUS.PORT} macro, the status page scheme in the {$NGINX.STUB_STATUS.SCHEME} macro and the status page path in the {$NGINX.STUB_STATUS.PATH} macro if necessary.Example answer from Nginx:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
| Name | Description | Default |
|---|---|---|
| {$NGINX.STUB_STATUS.HOST} | The hostname or IP address of the Nginx host or Nginx container of a stub_status. |
<SET STUB_STATUS HOST> |
| {$NGINX.STUB_STATUS.SCHEME} | The protocol http or https of Nginx stub_status host or container. |
http |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get stub status page | The following status information is provided:
See also Module ngx_http_stub_status_module. |
HTTP agent | nginx.get_stub_status |
| Service status | Simple check | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing
|
|
| Service response time | Simple check | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] | |
| Requests total | The total number of client requests. |
Dependent item | nginx.requests.total Preprocessing
|
| Requests per second | The total number of client requests. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Connections accepted per second | The total number of accepted client connections. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Connections dropped per second | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped.rate Preprocessing
|
| Connections handled per second | 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 |
Dependent item | nginx.connections.handled.rate Preprocessing
|
| Connections active | The current number of active client connections including waiting connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Connections reading | The current number of connections where Nginx is reading the request header. |
Dependent item | nginx.connections.reading Preprocessing
|
| Connections waiting | The current number of idle client connections waiting for a request. |
Dependent item | nginx.connections.waiting Preprocessing
|
| Connections writing | The current number of connections where Nginx is writing a response back to the client. |
Dependent item | nginx.connections.writing Preprocessing
|
| Version | Dependent item | nginx.version Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
find(/Nginx by HTTP/nginx.get_stub_status,,"iregexp","HTTP\\/[\\d.]+\\s+200")=0 or nodata(/Nginx by HTTP/nginx.get_stub_status,30m)=1 |
Warning | Manual close: Yes Depends on:
|
| Nginx: Service is down | last(/Nginx by HTTP/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0 |
Average | Manual close: Yes | |
| Nginx: Service response time is too high | min(/Nginx by HTTP/net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
|
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by HTTP/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning | Depends on:
|
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
last(/Nginx by HTTP/nginx.version,#1)<>last(/Nginx by HTTP/nginx.version,#2) and length(last(/Nginx by HTTP/nginx.version))>0 |
Info | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_http?at=release/6.4
This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template collects metrics by polling the module ngx_http_stub_status_module with HTTP agent remotely:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
ngx_http_stub_status_module.Test the availability of the http_stub_status_module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow <IP of your Zabbix server/proxy>;
deny all;
}
{$NGINX.STUB_STATUS.HOST} macro. You can also change the status page port in the {$NGINX.STUB_STATUS.PORT} macro, the status page scheme in the {$NGINX.STUB_STATUS.SCHEME} macro and the status page path in the {$NGINX.STUB_STATUS.PATH} macro if necessary.Example answer from Nginx:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
| Name | Description | Default |
|---|---|---|
| {$NGINX.STUB_STATUS.HOST} | The hostname or IP address of the Nginx host or Nginx container of a stub_status. |
<SET STUB_STATUS HOST> |
| {$NGINX.STUB_STATUS.SCHEME} | The protocol http or https of Nginx stub_status host or container. |
http |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Get stub status page | The following status information is provided:
See also Module ngx_http_stub_status_module. |
HTTP agent | nginx.get_stub_status |
| Nginx: Service status | Simple check | net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing
|
|
| Nginx: Service response time | Simple check | net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"] | |
| Nginx: Requests total | The total number of client requests. |
Dependent item | nginx.requests.total Preprocessing
|
| Nginx: Requests per second | The total number of client requests. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Nginx: Connections accepted per second | The total number of accepted client connections. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Nginx: Connections dropped per second | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped.rate Preprocessing
|
| Nginx: Connections handled per second | 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 |
Dependent item | nginx.connections.handled.rate Preprocessing
|
| Nginx: Connections active | The current number of active client connections including waiting connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Nginx: Connections reading | The current number of connections where Nginx is reading the request header. |
Dependent item | nginx.connections.reading Preprocessing
|
| Nginx: Connections waiting | The current number of idle client connections waiting for a request. |
Dependent item | nginx.connections.waiting Preprocessing
|
| Nginx: Connections writing | The current number of connections where Nginx is writing a response back to the client. |
Dependent item | nginx.connections.writing Preprocessing
|
| Nginx: Version | Dependent item | nginx.version Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
find(/Nginx by HTTP/nginx.get_stub_status,,"iregexp","HTTP\/[\d.]+\s+200")=0 or nodata(/Nginx by HTTP/nginx.get_stub_status,30m)=1 |
Warning | Manual close: Yes Depends on:
|
| Nginx: Service is down | last(/Nginx by HTTP/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0 |
Average | Manual close: Yes | |
| Nginx: Service response time is too high | min(/Nginx by HTTP/net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
|
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by HTTP/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning | Depends on:
|
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
last(/Nginx by HTTP/nginx.version,#1)<>last(/Nginx by HTTP/nginx.version,#2) and length(last(/Nginx by HTTP/nginx.version))>0 |
Info | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_http?at=release/6.2
For Zabbix version: 6.2 and higher
The template to monitor Nginx by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Nginx by HTTP collects metrics by polling ngx_http_stub_status_module with HTTP agent remotely:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this solution supports https and redirects.
This template was tested on:
See Zabbix template operation for basic instructions.
Setup ngx_http_stub_status_module.
Test availability of http_stub_status module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow <IP of your Zabbix server/proxy>;
deny all;
}
If you use another location, don't forget to change {$NGINX.STUB_STATUS.PATH} macro.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for trigger expression. |
1 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The Nginx maximum response time in seconds for trigger expression. |
10 |
| {$NGINX.STUB_STATUS.PATH} | The path of Nginx stub_status page. |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of Nginx stub_status host or container. |
80 |
| {$NGINX.STUB_STATUS.SCHEME} | The protocol http or https of Nginx stub_status host or container. |
http |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Nginx | Nginx: Service status | - |
SIMPLE | net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Service response time | - |
SIMPLE | net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"] |
| Nginx | Nginx: Requests total | The total number of client requests. |
DEPENDENT | nginx.requests.total Preprocessing: - REGEX: |
| Nginx | Nginx: Requests per second | The total number of client requests. |
DEPENDENT | nginx.requests.total.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections accepted per second | The total number of accepted client connections. |
DEPENDENT | nginx.connections.accepted.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections dropped per second | The total number of dropped client connections. |
DEPENDENT | nginx.connections.dropped.rate Preprocessing: - JAVASCRIPT: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections handled per second | 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). |
DEPENDENT | nginx.connections.handled.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections active | The current number of active client connections including Waiting connections. |
DEPENDENT | nginx.connections.active Preprocessing: - REGEX: |
| Nginx | Nginx: Connections reading | The current number of connections where nginx is reading the request header. |
DEPENDENT | nginx.connections.reading Preprocessing: - REGEX: |
| Nginx | Nginx: Connections waiting | The current number of idle client connections waiting for a request. |
DEPENDENT | nginx.connections.waiting Preprocessing: - REGEX: |
| Nginx | Nginx: Connections writing | The current number of connections where nginx is writing the response back to the client. |
DEPENDENT | nginx.connections.writing Preprocessing: - REGEX: |
| Nginx | Nginx: Version | - |
DEPENDENT | nginx.version Preprocessing: - REGEX: - DISCARD_UNCHANGED_HEARTBEAT: |
| Zabbix raw items | Nginx: Get stub status page | 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 |
HTTP_AGENT | nginx.get_stub_status |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Service is down | - |
last(/Nginx by HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0 |
AVERAGE | Manual close: YES |
| Nginx: Service response time is too high | - |
min(/Nginx by HTTP/net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN} |
WARNING | Manual close: YES Depends on: - Nginx: Service is down |
| Nginx: High connections drop rate | The dropping rate connections is greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by HTTP/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
WARNING | Depends on: - Nginx: Service is down |
| Nginx: Version has changed | Nginx version has changed. Ack to close. |
last(/Nginx by HTTP/nginx.version,#1)<>last(/Nginx by HTTP/nginx.version,#2) and length(last(/Nginx by HTTP/nginx.version))>0 |
INFO | Manual close: YES |
| Nginx: Failed to fetch stub status page | Zabbix has not received data for items for the last 30 minutes. |
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 |
WARNING | Manual close: YES Depends on: - Nginx: Service is down |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_http?at=release/6.0
This template is developed to monitor Nginx by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The template Nginx by HTTP - collects metrics by polling the Module ngx_http_stub_status_module with HTTP agent remotely:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this solution supports HTTPS and redirects.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
See the setup instructions for ngx_http_stub_status_module.
Test the availability of the http_stub_status_module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow <IP of your Zabbix server/proxy>;
deny all;
}
If you use another location, then don't forget to change the {$NGINX.STUB_STATUS.PATH} macro.
Example answer from Nginx:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this solution supports https and redirects.
| Name | Description | Default |
|---|---|---|
| {$NGINX.STUB_STATUS.SCHEME} | The protocol http or https of Nginx stub_status host or container. |
http |
| {$NGINX.STUB_STATUS.PATH} | The path of the |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of the |
80 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The maximum response time of Nginx expressed in seconds for a trigger expression. |
10 |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Get stub status page | The following status information is provided:
See also Module ngx_http_stub_status_module. |
HTTP agent | nginx.get_stub_status |
| Nginx: Service status | Simple check | net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing
|
|
| Nginx: Service response time | Simple check | net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"] | |
| Nginx: Requests total | The total number of client requests. |
Dependent item | nginx.requests.total Preprocessing
|
| Nginx: Requests per second | The total number of client requests. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Nginx: Connections accepted per second | The total number of accepted client connections. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Nginx: Connections dropped per second | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped.rate Preprocessing
|
| Nginx: Connections handled per second | 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 |
Dependent item | nginx.connections.handled.rate Preprocessing
|
| Nginx: Connections active | The current number of active client connections including waiting connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Nginx: Connections reading | The current number of connections where Nginx is reading the request header. |
Dependent item | nginx.connections.reading Preprocessing
|
| Nginx: Connections waiting | The current number of idle client connections waiting for a request. |
Dependent item | nginx.connections.waiting Preprocessing
|
| Nginx: Connections writing | The current number of connections where Nginx is writing a response back to the client. |
Dependent item | nginx.connections.writing Preprocessing
|
| Nginx: Version | Dependent item | nginx.version Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Failed to fetch stub status page | Zabbix has not received any data for items for the last 30 minutes. |
find(/Nginx by HTTP/nginx.get_stub_status,,"iregexp","HTTP\/[\d.]+\s+200")=0 or nodata(/Nginx by HTTP/nginx.get_stub_status,30m)=1 |
Warning | Manual close: Yes Depends on:
|
| Nginx: Service is down | last(/Nginx by HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0 |
Average | Manual close: Yes | |
| Nginx: Service response time is too high | min(/Nginx by HTTP/net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
|
| Nginx: High connections drop rate | The rate of dropping connections has been greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by HTTP/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning | Depends on:
|
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
last(/Nginx by HTTP/nginx.version,#1)<>last(/Nginx by HTTP/nginx.version,#2) and length(last(/Nginx by HTTP/nginx.version))>0 |
Info | Manual close: Yes |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_http?at=release/5.4
For Zabbix version: 5.4 and higher
The template to monitor Nginx by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Nginx by HTTP collects metrics by polling ngx_http_stub_status_module with HTTP agent remotely:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this solution supports https and redirects.
This template was tested on:
See Zabbix template operation for basic instructions.
Setup ngx_http_stub_status_module.
Test availability of http_stub_status module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow <IP of your Zabbix server/proxy>;
deny all;
}
If you use another location, don't forget to change {$NGINX.STUB_STATUS.PATH} macro.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for trigger expression. |
1 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The Nginx maximum response time in seconds for trigger expression. |
10 |
| {$NGINX.STUB_STATUS.PATH} | The path of Nginx stub_status page. |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of Nginx stub_status host or container. |
80 |
| {$NGINX.STUB_STATUS.SCHEME} | The protocol http or https of Nginx stub_status host or container. |
http |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Nginx | Nginx: Service status | - |
SIMPLE | net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Service response time | - |
SIMPLE | net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"] |
| Nginx | Nginx: Requests total | The total number of client requests. |
DEPENDENT | nginx.requests.total Preprocessing: - REGEX: |
| Nginx | Nginx: Requests per second | The total number of client requests. |
DEPENDENT | nginx.requests.total.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections accepted per second | The total number of accepted client connections. |
DEPENDENT | nginx.connections.accepted.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections dropped per second | The total number of dropped client connections. |
DEPENDENT | nginx.connections.dropped.rate Preprocessing: - JAVASCRIPT: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections handled per second | 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). |
DEPENDENT | nginx.connections.handled.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections active | The current number of active client connections including Waiting connections. |
DEPENDENT | nginx.connections.active Preprocessing: - REGEX: |
| Nginx | Nginx: Connections reading | The current number of connections where nginx is reading the request header. |
DEPENDENT | nginx.connections.reading Preprocessing: - REGEX: |
| Nginx | Nginx: Connections waiting | The current number of idle client connections waiting for a request. |
DEPENDENT | nginx.connections.waiting Preprocessing: - REGEX: |
| Nginx | Nginx: Connections writing | The current number of connections where nginx is writing the response back to the client. |
DEPENDENT | nginx.connections.writing Preprocessing: - REGEX: |
| Nginx | Nginx: Version | - |
DEPENDENT | nginx.version Preprocessing: - REGEX: - DISCARD_UNCHANGED_HEARTBEAT: |
| Zabbix_raw_items | Nginx: Get stub status page | 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 |
HTTP_AGENT | nginx.get_stub_status |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Service is down | - |
last(/Nginx by HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0 |
AVERAGE | Manual close: YES |
| Nginx: Service response time is too high (over {$NGINX.RESPONSE_TIME.MAX.WARN}s for 5m) | - |
min(/Nginx by HTTP/net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN} |
WARNING | Manual close: YES Depends on: - Nginx: Service is down |
| Nginx: High connections drop rate (more than {$NGINX.DROP_RATE.MAX.WARN} for 5m) | The dropping rate connections is greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx by HTTP/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
WARNING | Depends on: - Nginx: Service is down |
| Nginx: Version has changed (new version: {ITEM.VALUE}) | Nginx version has changed. Ack to close. |
last(/Nginx by HTTP/nginx.version,#1)<>last(/Nginx by HTTP/nginx.version,#2) and length(last(/Nginx by HTTP/nginx.version))>0 |
INFO | Manual close: YES |
| Nginx: Failed to fetch stub status page (or no data for 30m) | Zabbix has not received data for items for the last 30 minutes. |
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 |
WARNING | Manual close: YES Depends on: - Nginx: Service is down |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_http?at=release/5.0
For Zabbix version: 5.0 and higher
The template to monitor Nginx by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
Template Nginx by HTTP collects metrics by polling ngx_http_stub_status_module with HTTP agent remotely:
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
Note that this solution supports https and redirects.
This template was tested on:
See Zabbix template operation for basic instructions.
Setup ngx_http_stub_status_module.
Test availability of http_stub_status module with nginx -V 2>&1 | grep -o with-http_stub_status_module.
Example configuration of Nginx:
location = /basic_status {
stub_status;
allow <IP of your Zabbix server/proxy>;
deny all;
}
If you use another location, don't forget to change {$NGINX.STUB_STATUS.PATH} macro.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for trigger expression. |
1 |
| {$NGINX.RESPONSE_TIME.MAX.WARN} | The Nginx maximum response time in seconds for trigger expression. |
10 |
| {$NGINX.STUB_STATUS.PATH} | The path of Nginx stub_status page. |
basic_status |
| {$NGINX.STUB_STATUS.PORT} | The port of Nginx stub_status host or container. |
80 |
| {$NGINX.STUB_STATUS.SCHEME} | The protocol http or https of Nginx stub_status host or container. |
http |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Nginx | Nginx: Service status | - |
SIMPLE | net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Service response time | - |
SIMPLE | net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"] |
| Nginx | Nginx: Requests total | The total number of client requests. |
DEPENDENT | nginx.requests.total Preprocessing: - REGEX: |
| Nginx | Nginx: Requests per second | The total number of client requests. |
DEPENDENT | nginx.requests.total.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections accepted per second | The total number of accepted client connections. |
DEPENDENT | nginx.connections.accepted.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections dropped per second | The total number of dropped client connections. |
DEPENDENT | nginx.connections.dropped.rate Preprocessing: - JAVASCRIPT: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections handled per second | 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). |
DEPENDENT | nginx.connections.handled.rate Preprocessing: - REGEX: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections active | The current number of active client connections including Waiting connections. |
DEPENDENT | nginx.connections.active Preprocessing: - REGEX: |
| Nginx | Nginx: Connections reading | The current number of connections where nginx is reading the request header. |
DEPENDENT | nginx.connections.reading Preprocessing: - REGEX: |
| Nginx | Nginx: Connections waiting | The current number of idle client connections waiting for a request. |
DEPENDENT | nginx.connections.waiting Preprocessing: - REGEX: |
| Nginx | Nginx: Connections writing | The current number of connections where nginx is writing the response back to the client. |
DEPENDENT | nginx.connections.writing Preprocessing: - REGEX: |
| Nginx | Nginx: Version | - |
DEPENDENT | nginx.version Preprocessing: - REGEX: - DISCARD_UNCHANGED_HEARTBEAT: |
| Zabbix_raw_items | Nginx: Get stub status page | 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 |
HTTP_AGENT | nginx.get_stub_status |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Service is down | - |
{TEMPLATE_NAME:net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"].last()}=0 |
AVERAGE | Manual close: YES |
| Nginx: Service response time is too high (over {$NGINX.RESPONSE_TIME.MAX.WARN}s for 5m) | - |
{TEMPLATE_NAME:net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"].min(5m)}>{$NGINX.RESPONSE_TIME.MAX.WARN} |
WARNING | Manual close: YES Depends on: - Nginx: Service is down |
| Nginx: High connections drop rate (more than {$NGINX.DROP_RATE.MAX.WARN} for 5m) | The dropping rate connections is greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
{TEMPLATE_NAME:nginx.connections.dropped.rate.min(5m)} > {$NGINX.DROP_RATE.MAX.WARN} |
WARNING | Depends on: - Nginx: Service is down |
| Nginx: Version has changed (new version: {ITEM.VALUE}) | Nginx version has changed. Ack to close. |
{TEMPLATE_NAME:nginx.version.diff()}=1 and {TEMPLATE_NAME:nginx.version.strlen()}>0 |
INFO | Manual close: YES |
| Nginx: Failed to fetch stub status page (or no data for 30m) | Zabbix has not received data for items for the last 30 minutes. |
{TEMPLATE_NAME:nginx.get_stub_status.str("HTTP/1.1 200")}=0 or {TEMPLATE_NAME:nginx.get_stub_status.nodata(30m)}=1 |
WARNING | Manual close: YES Depends on: - Nginx: Service is down |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_plus_http?at=release/7.4
This template is designed for the effortless deployment of Nginx Plus monitoring by Zabbix via HTTP and doesn't require any external scripts.
The monitoring data of the live activity is generated by the NGINX Plus API.
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Refer to the vendor documentation.
<scheme>://<host>:<port>/<location>/.Note that depending on the number of zones and upstreams discovery operation may be expensive. Therefore, use the following filters with these macros:
| Name | Description | Default |
|---|---|---|
| {$NGINX.API.ENDPOINT} | NGINX Plus API URL in the format |
|
| {$NGINX.LLD.FILTER.HTTP.ZONE.MATCHES} | The filter to include the necessary discovered HTTP server zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP server zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.MATCHES} | The filter to include the necessary discovered HTTP location zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP location zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.MATCHES} | The filter to include the necessary discovered HTTP upstreams. |
.* |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered HTTP upstreams. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.ZONE.MATCHES} | The filter to include discovered server zones of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.ZONE.NOT_MATCHES} | The filter to exclude discovered server zones of the "stream" directive. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.MATCHES} | The filter to include the necessary discovered upstreams of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered upstreams of the "stream" directive |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.RESOLVER.MATCHES} | The filter to include the necessary discovered |
.* |
| {$NGINX.LLD.FILTER.RESOLVER.NOT_MATCHES} | The filter to exclude discovered |
CHANGE_IF_NEEDED |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| {$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| {$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get info | Return status of the NGINX running instance. |
HTTP agent | nginx.info |
| Get connections | Returns the statistics of client connections. |
HTTP agent | nginx.connections |
| Get SSL | Returns the SSL statistics. |
HTTP agent | nginx.ssl |
| Get requests | Returns the status of the client's HTTP requests. |
HTTP agent | nginx.requests |
| Get HTTP zones | Returns the status information for each HTTP server zone. |
HTTP agent | nginx.http.server_zones |
| Get HTTP location zones | Returns the status information for each HTTP location zone. |
HTTP agent | nginx.http.location_zones |
| Get HTTP upstreams | Returns the status of each HTTP upstream server group and its servers. |
HTTP agent | nginx.http.upstreams |
| Get Stream server zones | Returns the status information for each server zone configured in the "stream" directive. |
HTTP agent | nginx.stream.server_zones |
| Get Stream upstreams | Returns status of each stream upstream server group and its servers. |
HTTP agent | nginx.stream.upstreams |
| Get resolvers | Returns the status information for each Resolver zone. |
HTTP agent | nginx.resolvers |
| Get info error | The description of NGINX errors. |
Dependent item | nginx.info.error Preprocessing
|
| Version | A version number of NGINX. |
Dependent item | nginx.info.version Preprocessing
|
| Address | The address of the server that accepted status request. |
Dependent item | nginx.info.address Preprocessing
|
| Generation | The total number of configuration reloads. |
Dependent item | nginx.info.generation Preprocessing
|
| Uptime | The server uptime. |
Dependent item | nginx.info.uptime Preprocessing
|
| Connections accepted, rate | The total number of accepted client connections per second. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Connections dropped | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped Preprocessing
|
| Connections active | The current number of active client connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Connections idle | The current number of idle client connections. |
Dependent item | nginx.connections.idle Preprocessing
|
| SSL handshakes, rate | The total number of successful SSL handshakes per second. |
Dependent item | nginx.ssl.handshakes.rate Preprocessing
|
| SSL handshakes failed, rate | The total number of failed SSL handshakes per second. |
Dependent item | nginx.ssl.handshakes_failed.rate Preprocessing
|
| SSL session reuses, rate | The total number of session reuses during SSL handshake per second. |
Dependent item | nginx.ssl.session_reuses.rate Preprocessing
|
| Requests total, rate | The total number of client requests per second. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Requests current | The current number of client requests. |
Dependent item | nginx.requests.current Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NGINX Plus: Server response error | length(last(/NGINX Plus by HTTP/nginx.info.error))>0 |
High | ||
| NGINX Plus: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
last(/NGINX Plus by HTTP/nginx.info.version,#1)<>last(/NGINX Plus by HTTP/nginx.info.version,#2) and length(last(/NGINX Plus by HTTP/nginx.info.version))>0 |
Info | Manual close: Yes |
| NGINX Plus: Host has been restarted | Uptime is less than 10 minutes. |
last(/NGINX Plus by HTTP/nginx.info.uptime)<10m |
Info | Manual close: Yes |
| NGINX Plus: Failed to fetch info data | Zabbix has not received any data for metrics for the last 30 minutes |
nodata(/NGINX Plus by HTTP/nginx.info.uptime,30m)=1 |
Warning | Manual close: Yes |
| NGINX Plus: High connections drop rate | The rate of dropped connections is greater than |
min(/NGINX Plus by HTTP/nginx.connections.dropped,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP server zones discovery | Dependent item | nginx.http.server_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP server zone [{#NAME}]: Raw data | The raw data of the HTTP server zone with the name |
Dependent item | nginx.http.server_zones.raw[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Processing | The number of client requests that are currently being processed. |
Dependent item | nginx.http.server_zones.processing[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
Dependent item | nginx.http.server_zones.requests.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.1xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.2xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.3xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.4xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.5xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
Dependent item | nginx.http.server_zones.responses.total.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
Dependent item | nginx.http.server_zones.discarded.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.http.server_zones.received.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.http.server_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP location zones discovery | Dependent item | nginx.http.location_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP location zone [{#NAME}]: Raw data | The raw data of the location zone with the name |
Dependent item | nginx.http.location_zones.raw[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
Dependent item | nginx.http.location_zones.requests.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.1xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.2xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.3xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.4xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.5xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
Dependent item | nginx.http.location_zones.responses.total.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
Dependent item | nginx.http.location_zones.discarded.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.http.location_zones.received.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.http.location_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstreams discovery | Dependent item | nginx.http.upstreams.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream [{#NAME}]: Raw data | The raw data of the HTTP upstream with the name |
Dependent item | nginx.http.upstreams.raw[{#NAME}] Preprocessing
|
| HTTP upstream [{#NAME}]: Keepalive | The current number of idle keepalive connections. |
Dependent item | nginx.http.upstreams.keepalive[{#NAME}] Preprocessing
|
| HTTP upstream [{#NAME}]: Zombies | The current number of servers removed from the group but still processing active client requests. |
Dependent item | nginx.http.upstreams.zombies[{#NAME}] Preprocessing
|
| HTTP upstream [{#NAME}]: Zone | The name of the shared memory zone that keeps the group's configuration and run-time state. |
Dependent item | nginx.http.upstreams.zone[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream peers discovery | Dependent item | nginx.http.upstream.peers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the HTTP upstream with the name |
Dependent item | nginx.http.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
Dependent item | nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of active connections. |
Dependent item | nginx.http.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Requests, rate | The total number of client requests forwarded to this server per second. |
Dependent item | nginx.http.upstream.peer.requests.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.1xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.2xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.3xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses total, rate | The total number of responses obtained from this server. |
Dependent item | nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
Dependent item | nginx.http.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
Dependent item | nginx.http.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
Dependent item | nginx.http.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
Dependent item | nginx.http.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Header time | The average time to get the response header from the server. |
Dependent item | nginx.http.upstream.peer.header_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to get the full response from the server. |
Dependent item | nginx.http.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
Dependent item | nginx.http.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
Dependent item | nginx.http.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
Dependent item | nginx.http.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NGINX Plus: HTTP upstream server is not in UP or DOWN state. | find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
Warning | ||
| NGINX Plus: Too many HTTP requests with code 4xx | sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN}/100)) |
Warning | ||
| NGINX Plus: Too many HTTP requests with code 5xx | sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN}/100)) |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream server zones discovery | Dependent item | nginx.stream.server_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream server zone [{#NAME}]: Raw data | The raw data of server zone with the name |
Dependent item | nginx.stream.server_zones.raw[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Processing | The number of client connections that are currently being processed. |
Dependent item | nginx.stream.server_zones.processing[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Connections, rate | The total number of connections accepted from clients per second. |
Dependent item | nginx.stream.server_zones.connections.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions 2xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.2xx.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions 4xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.4xx.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions 5xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.5xx.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions total, rate | The total number of completed client sessions per second. |
Dependent item | nginx.stream.server_zones.sessions.total.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Discarded, rate | The total number of connections completed without creating a session per second. |
Dependent item | nginx.stream.server_zones.discarded.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.stream.server_zones.received.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.stream.server_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstreams discovery | Dependent item | nginx.stream.upstreams.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream [{#NAME}]: Raw data | The raw data of the upstream with the name |
Dependent item | nginx.stream.upstreams.raw[{#NAME}] Preprocessing
|
| Stream upstream [{#NAME}]: Zombies | Dependent item | nginx.stream.upstreams.zombies[{#NAME}] Preprocessing
|
|
| Stream upstream [{#NAME}]: Zone | Dependent item | nginx.stream.upstreams.zone[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream peers discovery | Dependent item | nginx.stream.upstream.peers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the upstream with the name |
Dependent item | nginx.stream.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
Dependent item | nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of connections. |
Dependent item | nginx.stream.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
Dependent item | nginx.stream.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
Dependent item | nginx.stream.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
Dependent item | nginx.stream.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
Dependent item | nginx.stream.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connections | The total number of client connections forwarded to this server. |
Dependent item | nginx.stream.upstream.peer.connections.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connect time | The average time to connect to the upstream server. |
Dependent item | nginx.stream.upstream.peer.connect_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: First byte time | The average time to receive the first byte of data. |
Dependent item | nginx.stream.upstream.peer.first_byte_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to receive the last byte of data. |
Dependent item | nginx.stream.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
Dependent item | nginx.stream.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
Dependent item | nginx.stream.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
Dependent item | nginx.stream.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NGINX Plus: Stream upstream server is not in UP or DOWN state. | find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Resolvers discovery | Dependent item | nginx.resolvers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Resolver [{#NAME}]: Raw data | The raw data of the |
Dependent item | nginx.resolvers.raw[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Requests name, rate | The total number of requests to resolve names to addresses per second. |
Dependent item | nginx.resolvers.requests.name.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Requests srv, rate | The total number of requests to resolve SRV records per second. |
Dependent item | nginx.resolvers.requests.srv.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Requests addr, rate | The total number of requests to resolve addresses to names per second. |
Dependent item | nginx.resolvers.requests.addr.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses noerror, rate | The total number of successful responses per second. |
Dependent item | nginx.resolvers.responses.noerror.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses formerr, rate | The total number of |
Dependent item | nginx.resolvers.responses.formerr.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses servfail, rate | The total number of |
Dependent item | nginx.resolvers.responses.servfail.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses nxdomain, rate | The total number of |
Dependent item | nginx.resolvers.responses.nxdomain.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses notimp, rate | The total number of |
Dependent item | nginx.resolvers.responses.notimp.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses refused, rate | The total number of |
Dependent item | nginx.resolvers.responses.refused.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses timedout, rate | The total number of timed out requests per second. |
Dependent item | nginx.resolvers.responses.timedout.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses unknown, rate | The total number of requests completed with an unknown error per second. |
Dependent item | nginx.resolvers.responses.unknown.rate[{#NAME}] Preprocessing
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_plus_http?at=release/7.2
This template is designed for the effortless deployment of Nginx Plus monitoring by Zabbix via HTTP and doesn't require any external scripts.
The monitoring data of the live activity is generated by the NGINX Plus API.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Refer to the vendor documentation.
<scheme>://<host>:<port>/<location>/.Note that depending on the number of zones and upstreams discovery operation may be expensive. Therefore, use the following filters with these macros:
| Name | Description | Default |
|---|---|---|
| {$NGINX.API.ENDPOINT} | NGINX Plus API URL in the format |
|
| {$NGINX.LLD.FILTER.HTTP.ZONE.MATCHES} | The filter to include the necessary discovered HTTP server zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP server zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.MATCHES} | The filter to include the necessary discovered HTTP location zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP location zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.MATCHES} | The filter to include the necessary discovered HTTP upstreams. |
.* |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered HTTP upstreams. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.ZONE.MATCHES} | The filter to include discovered server zones of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.ZONE.NOT_MATCHES} | The filter to exclude discovered server zones of the "stream" directive. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.MATCHES} | The filter to include the necessary discovered upstreams of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered upstreams of the "stream" directive |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.RESOLVER.MATCHES} | The filter to include the necessary discovered |
.* |
| {$NGINX.LLD.FILTER.RESOLVER.NOT_MATCHES} | The filter to exclude discovered |
CHANGE_IF_NEEDED |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| {$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| {$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get info | Return status of the NGINX running instance. |
HTTP agent | nginx.info |
| Get connections | Returns the statistics of client connections. |
HTTP agent | nginx.connections |
| Get SSL | Returns the SSL statistics. |
HTTP agent | nginx.ssl |
| Get requests | Returns the status of the client's HTTP requests. |
HTTP agent | nginx.requests |
| Get HTTP zones | Returns the status information for each HTTP server zone. |
HTTP agent | nginx.http.server_zones |
| Get HTTP location zones | Returns the status information for each HTTP location zone. |
HTTP agent | nginx.http.location_zones |
| Get HTTP upstreams | Returns the status of each HTTP upstream server group and its servers. |
HTTP agent | nginx.http.upstreams |
| Get Stream server zones | Returns the status information for each server zone configured in the "stream" directive. |
HTTP agent | nginx.stream.server_zones |
| Get Stream upstreams | Returns status of each stream upstream server group and its servers. |
HTTP agent | nginx.stream.upstreams |
| Get resolvers | Returns the status information for each Resolver zone. |
HTTP agent | nginx.resolvers |
| Get info error | The description of NGINX errors. |
Dependent item | nginx.info.error Preprocessing
|
| Version | A version number of NGINX. |
Dependent item | nginx.info.version Preprocessing
|
| Address | The address of the server that accepted status request. |
Dependent item | nginx.info.address Preprocessing
|
| Generation | The total number of configuration reloads. |
Dependent item | nginx.info.generation Preprocessing
|
| Uptime | The server uptime. |
Dependent item | nginx.info.uptime Preprocessing
|
| Connections accepted, rate | The total number of accepted client connections per second. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Connections dropped | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped Preprocessing
|
| Connections active | The current number of active client connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Connections idle | The current number of idle client connections. |
Dependent item | nginx.connections.idle Preprocessing
|
| SSL handshakes, rate | The total number of successful SSL handshakes per second. |
Dependent item | nginx.ssl.handshakes.rate Preprocessing
|
| SSL handshakes failed, rate | The total number of failed SSL handshakes per second. |
Dependent item | nginx.ssl.handshakes_failed.rate Preprocessing
|
| SSL session reuses, rate | The total number of session reuses during SSL handshake per second. |
Dependent item | nginx.ssl.session_reuses.rate Preprocessing
|
| Requests total, rate | The total number of client requests per second. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Requests current | The current number of client requests. |
Dependent item | nginx.requests.current Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NGINX Plus: Server response error | length(last(/NGINX Plus by HTTP/nginx.info.error))>0 |
High | ||
| NGINX Plus: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
last(/NGINX Plus by HTTP/nginx.info.version,#1)<>last(/NGINX Plus by HTTP/nginx.info.version,#2) and length(last(/NGINX Plus by HTTP/nginx.info.version))>0 |
Info | Manual close: Yes |
| NGINX Plus: Host has been restarted | Uptime is less than 10 minutes. |
last(/NGINX Plus by HTTP/nginx.info.uptime)<10m |
Info | Manual close: Yes |
| NGINX Plus: Failed to fetch info data | Zabbix has not received any data for metrics for the last 30 minutes |
nodata(/NGINX Plus by HTTP/nginx.info.uptime,30m)=1 |
Warning | Manual close: Yes |
| NGINX Plus: High connections drop rate | The rate of dropped connections is greater than |
min(/NGINX Plus by HTTP/nginx.connections.dropped,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP server zones discovery | Dependent item | nginx.http.server_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP server zone [{#NAME}]: Raw data | The raw data of the HTTP server zone with the name |
Dependent item | nginx.http.server_zones.raw[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Processing | The number of client requests that are currently being processed. |
Dependent item | nginx.http.server_zones.processing[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
Dependent item | nginx.http.server_zones.requests.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.1xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.2xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.3xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.4xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.5xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
Dependent item | nginx.http.server_zones.responses.total.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
Dependent item | nginx.http.server_zones.discarded.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.http.server_zones.received.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.http.server_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP location zones discovery | Dependent item | nginx.http.location_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP location zone [{#NAME}]: Raw data | The raw data of the location zone with the name |
Dependent item | nginx.http.location_zones.raw[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
Dependent item | nginx.http.location_zones.requests.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.1xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.2xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.3xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.4xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.5xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
Dependent item | nginx.http.location_zones.responses.total.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
Dependent item | nginx.http.location_zones.discarded.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.http.location_zones.received.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.http.location_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstreams discovery | Dependent item | nginx.http.upstreams.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream [{#NAME}]: Raw data | The raw data of the HTTP upstream with the name |
Dependent item | nginx.http.upstreams.raw[{#NAME}] Preprocessing
|
| HTTP upstream [{#NAME}]: Keepalive | The current number of idle keepalive connections. |
Dependent item | nginx.http.upstreams.keepalive[{#NAME}] Preprocessing
|
| HTTP upstream [{#NAME}]: Zombies | The current number of servers removed from the group but still processing active client requests. |
Dependent item | nginx.http.upstreams.zombies[{#NAME}] Preprocessing
|
| HTTP upstream [{#NAME}]: Zone | The name of the shared memory zone that keeps the group's configuration and run-time state. |
Dependent item | nginx.http.upstreams.zone[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream peers discovery | Dependent item | nginx.http.upstream.peers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the HTTP upstream with the name |
Dependent item | nginx.http.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
Dependent item | nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of active connections. |
Dependent item | nginx.http.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Requests, rate | The total number of client requests forwarded to this server per second. |
Dependent item | nginx.http.upstream.peer.requests.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.1xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.2xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.3xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses total, rate | The total number of responses obtained from this server. |
Dependent item | nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
Dependent item | nginx.http.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
Dependent item | nginx.http.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
Dependent item | nginx.http.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
Dependent item | nginx.http.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Header time | The average time to get the response header from the server. |
Dependent item | nginx.http.upstream.peer.header_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to get the full response from the server. |
Dependent item | nginx.http.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
Dependent item | nginx.http.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
Dependent item | nginx.http.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
Dependent item | nginx.http.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NGINX Plus: HTTP upstream server is not in UP or DOWN state. | find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
Warning | ||
| NGINX Plus: Too many HTTP requests with code 4xx | sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN}/100)) |
Warning | ||
| NGINX Plus: Too many HTTP requests with code 5xx | sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN}/100)) |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream server zones discovery | Dependent item | nginx.stream.server_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream server zone [{#NAME}]: Raw data | The raw data of server zone with the name |
Dependent item | nginx.stream.server_zones.raw[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Processing | The number of client connections that are currently being processed. |
Dependent item | nginx.stream.server_zones.processing[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Connections, rate | The total number of connections accepted from clients per second. |
Dependent item | nginx.stream.server_zones.connections.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions 2xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.2xx.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions 4xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.4xx.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions 5xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.5xx.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions total, rate | The total number of completed client sessions per second. |
Dependent item | nginx.stream.server_zones.sessions.total.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Discarded, rate | The total number of connections completed without creating a session per second. |
Dependent item | nginx.stream.server_zones.discarded.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.stream.server_zones.received.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.stream.server_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstreams discovery | Dependent item | nginx.stream.upstreams.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream [{#NAME}]: Raw data | The raw data of the upstream with the name |
Dependent item | nginx.stream.upstreams.raw[{#NAME}] Preprocessing
|
| Stream upstream [{#NAME}]: Zombies | Dependent item | nginx.stream.upstreams.zombies[{#NAME}] Preprocessing
|
|
| Stream upstream [{#NAME}]: Zone | Dependent item | nginx.stream.upstreams.zone[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream peers discovery | Dependent item | nginx.stream.upstream.peers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the upstream with the name |
Dependent item | nginx.stream.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
Dependent item | nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of connections. |
Dependent item | nginx.stream.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
Dependent item | nginx.stream.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
Dependent item | nginx.stream.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
Dependent item | nginx.stream.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
Dependent item | nginx.stream.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connections | The total number of client connections forwarded to this server. |
Dependent item | nginx.stream.upstream.peer.connections.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connect time | The average time to connect to the upstream server. |
Dependent item | nginx.stream.upstream.peer.connect_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: First byte time | The average time to receive the first byte of data. |
Dependent item | nginx.stream.upstream.peer.first_byte_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to receive the last byte of data. |
Dependent item | nginx.stream.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
Dependent item | nginx.stream.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
Dependent item | nginx.stream.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
Dependent item | nginx.stream.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NGINX Plus: Stream upstream server is not in UP or DOWN state. | find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Resolvers discovery | Dependent item | nginx.resolvers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Resolver [{#NAME}]: Raw data | The raw data of the |
Dependent item | nginx.resolvers.raw[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Requests name, rate | The total number of requests to resolve names to addresses per second. |
Dependent item | nginx.resolvers.requests.name.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Requests srv, rate | The total number of requests to resolve SRV records per second. |
Dependent item | nginx.resolvers.requests.srv.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Requests addr, rate | The total number of requests to resolve addresses to names per second. |
Dependent item | nginx.resolvers.requests.addr.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses noerror, rate | The total number of successful responses per second. |
Dependent item | nginx.resolvers.responses.noerror.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses formerr, rate | The total number of |
Dependent item | nginx.resolvers.responses.formerr.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses servfail, rate | The total number of |
Dependent item | nginx.resolvers.responses.servfail.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses nxdomain, rate | The total number of |
Dependent item | nginx.resolvers.responses.nxdomain.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses notimp, rate | The total number of |
Dependent item | nginx.resolvers.responses.notimp.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses refused, rate | The total number of |
Dependent item | nginx.resolvers.responses.refused.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses timedout, rate | The total number of timed out requests per second. |
Dependent item | nginx.resolvers.responses.timedout.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses unknown, rate | The total number of requests completed with an unknown error per second. |
Dependent item | nginx.resolvers.responses.unknown.rate[{#NAME}] Preprocessing
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_plus_http?at=release/7.0
This template is designed for the effortless deployment of Nginx Plus monitoring by Zabbix via HTTP and doesn't require any external scripts.
The monitoring data of the live activity is generated by the NGINX Plus API.
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Refer to the vendor documentation.
<scheme>://<host>:<port>/<location>/.Note that depending on the number of zones and upstreams discovery operation may be expensive. Therefore, use the following filters with these macros:
| Name | Description | Default |
|---|---|---|
| {$NGINX.API.ENDPOINT} | NGINX Plus API URL in the format |
|
| {$NGINX.LLD.FILTER.HTTP.ZONE.MATCHES} | The filter to include the necessary discovered HTTP server zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP server zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.MATCHES} | The filter to include the necessary discovered HTTP location zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP location zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.MATCHES} | The filter to include the necessary discovered HTTP upstreams. |
.* |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered HTTP upstreams. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.ZONE.MATCHES} | The filter to include discovered server zones of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.ZONE.NOT_MATCHES} | The filter to exclude discovered server zones of the "stream" directive. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.MATCHES} | The filter to include the necessary discovered upstreams of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered upstreams of the "stream" directive |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.RESOLVER.MATCHES} | The filter to include the necessary discovered |
.* |
| {$NGINX.LLD.FILTER.RESOLVER.NOT_MATCHES} | The filter to exclude discovered |
CHANGE_IF_NEEDED |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| {$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| {$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get info | Return status of the NGINX running instance. |
HTTP agent | nginx.info |
| Get connections | Returns the statistics of client connections. |
HTTP agent | nginx.connections |
| Get SSL | Returns the SSL statistics. |
HTTP agent | nginx.ssl |
| Get requests | Returns the status of the client's HTTP requests. |
HTTP agent | nginx.requests |
| Get HTTP zones | Returns the status information for each HTTP server zone. |
HTTP agent | nginx.http.server_zones |
| Get HTTP location zones | Returns the status information for each HTTP location zone. |
HTTP agent | nginx.http.location_zones |
| Get HTTP upstreams | Returns the status of each HTTP upstream server group and its servers. |
HTTP agent | nginx.http.upstreams |
| Get Stream server zones | Returns the status information for each server zone configured in the "stream" directive. |
HTTP agent | nginx.stream.server_zones |
| Get Stream upstreams | Returns status of each stream upstream server group and its servers. |
HTTP agent | nginx.stream.upstreams |
| Get resolvers | Returns the status information for each Resolver zone. |
HTTP agent | nginx.resolvers |
| Get info error | The description of NGINX errors. |
Dependent item | nginx.info.error Preprocessing
|
| Version | A version number of NGINX. |
Dependent item | nginx.info.version Preprocessing
|
| Address | The address of the server that accepted status request. |
Dependent item | nginx.info.address Preprocessing
|
| Generation | The total number of configuration reloads. |
Dependent item | nginx.info.generation Preprocessing
|
| Uptime | The server uptime. |
Dependent item | nginx.info.uptime Preprocessing
|
| Connections accepted, rate | The total number of accepted client connections per second. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Connections dropped | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped Preprocessing
|
| Connections active | The current number of active client connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Connections idle | The current number of idle client connections. |
Dependent item | nginx.connections.idle Preprocessing
|
| SSL handshakes, rate | The total number of successful SSL handshakes per second. |
Dependent item | nginx.ssl.handshakes.rate Preprocessing
|
| SSL handshakes failed, rate | The total number of failed SSL handshakes per second. |
Dependent item | nginx.ssl.handshakes_failed.rate Preprocessing
|
| SSL session reuses, rate | The total number of session reuses during SSL handshake per second. |
Dependent item | nginx.ssl.session_reuses.rate Preprocessing
|
| Requests total, rate | The total number of client requests per second. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Requests current | The current number of client requests. |
Dependent item | nginx.requests.current Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NGINX Plus: Server response error | length(last(/NGINX Plus by HTTP/nginx.info.error))>0 |
High | ||
| NGINX Plus: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
last(/NGINX Plus by HTTP/nginx.info.version,#1)<>last(/NGINX Plus by HTTP/nginx.info.version,#2) and length(last(/NGINX Plus by HTTP/nginx.info.version))>0 |
Info | Manual close: Yes |
| NGINX Plus: Host has been restarted | Uptime is less than 10 minutes. |
last(/NGINX Plus by HTTP/nginx.info.uptime)<10m |
Info | Manual close: Yes |
| NGINX Plus: Failed to fetch info data | Zabbix has not received any data for metrics for the last 30 minutes |
nodata(/NGINX Plus by HTTP/nginx.info.uptime,30m)=1 |
Warning | Manual close: Yes |
| NGINX Plus: High connections drop rate | The rate of dropped connections is greater than |
min(/NGINX Plus by HTTP/nginx.connections.dropped,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP server zones discovery | Dependent item | nginx.http.server_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP server zone [{#NAME}]: Raw data | The raw data of the HTTP server zone with the name |
Dependent item | nginx.http.server_zones.raw[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Processing | The number of client requests that are currently being processed. |
Dependent item | nginx.http.server_zones.processing[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
Dependent item | nginx.http.server_zones.requests.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.1xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.2xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.3xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.4xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.5xx.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
Dependent item | nginx.http.server_zones.responses.total.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
Dependent item | nginx.http.server_zones.discarded.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.http.server_zones.received.rate[{#NAME}] Preprocessing
|
| HTTP server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.http.server_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP location zones discovery | Dependent item | nginx.http.location_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP location zone [{#NAME}]: Raw data | The raw data of the location zone with the name |
Dependent item | nginx.http.location_zones.raw[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
Dependent item | nginx.http.location_zones.requests.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.1xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.2xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.3xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.4xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.5xx.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
Dependent item | nginx.http.location_zones.responses.total.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
Dependent item | nginx.http.location_zones.discarded.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.http.location_zones.received.rate[{#NAME}] Preprocessing
|
| HTTP location zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.http.location_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstreams discovery | Dependent item | nginx.http.upstreams.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream [{#NAME}]: Raw data | The raw data of the HTTP upstream with the name |
Dependent item | nginx.http.upstreams.raw[{#NAME}] Preprocessing
|
| HTTP upstream [{#NAME}]: Keepalive | The current number of idle keepalive connections. |
Dependent item | nginx.http.upstreams.keepalive[{#NAME}] Preprocessing
|
| HTTP upstream [{#NAME}]: Zombies | The current number of servers removed from the group but still processing active client requests. |
Dependent item | nginx.http.upstreams.zombies[{#NAME}] Preprocessing
|
| HTTP upstream [{#NAME}]: Zone | The name of the shared memory zone that keeps the group's configuration and run-time state. |
Dependent item | nginx.http.upstreams.zone[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream peers discovery | Dependent item | nginx.http.upstream.peers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the HTTP upstream with the name |
Dependent item | nginx.http.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
Dependent item | nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of active connections. |
Dependent item | nginx.http.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Requests, rate | The total number of client requests forwarded to this server per second. |
Dependent item | nginx.http.upstream.peer.requests.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.1xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.2xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.3xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses total, rate | The total number of responses obtained from this server. |
Dependent item | nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
Dependent item | nginx.http.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
Dependent item | nginx.http.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
Dependent item | nginx.http.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
Dependent item | nginx.http.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Header time | The average time to get the response header from the server. |
Dependent item | nginx.http.upstream.peer.header_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to get the full response from the server. |
Dependent item | nginx.http.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
Dependent item | nginx.http.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
Dependent item | nginx.http.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing
|
| HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
Dependent item | nginx.http.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NGINX Plus: HTTP upstream server is not in UP or DOWN state. | find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
Warning | ||
| NGINX Plus: Too many HTTP requests with code 4xx | sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN}/100)) |
Warning | ||
| NGINX Plus: Too many HTTP requests with code 5xx | sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN}/100)) |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream server zones discovery | Dependent item | nginx.stream.server_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream server zone [{#NAME}]: Raw data | The raw data of server zone with the name |
Dependent item | nginx.stream.server_zones.raw[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Processing | The number of client connections that are currently being processed. |
Dependent item | nginx.stream.server_zones.processing[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Connections, rate | The total number of connections accepted from clients per second. |
Dependent item | nginx.stream.server_zones.connections.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions 2xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.2xx.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions 4xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.4xx.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions 5xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.5xx.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sessions total, rate | The total number of completed client sessions per second. |
Dependent item | nginx.stream.server_zones.sessions.total.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Discarded, rate | The total number of connections completed without creating a session per second. |
Dependent item | nginx.stream.server_zones.discarded.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.stream.server_zones.received.rate[{#NAME}] Preprocessing
|
| Stream server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.stream.server_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstreams discovery | Dependent item | nginx.stream.upstreams.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream [{#NAME}]: Raw data | The raw data of the upstream with the name |
Dependent item | nginx.stream.upstreams.raw[{#NAME}] Preprocessing
|
| Stream upstream [{#NAME}]: Zombies | Dependent item | nginx.stream.upstreams.zombies[{#NAME}] Preprocessing
|
|
| Stream upstream [{#NAME}]: Zone | Dependent item | nginx.stream.upstreams.zone[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream peers discovery | Dependent item | nginx.stream.upstream.peers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the upstream with the name |
Dependent item | nginx.stream.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
Dependent item | nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of connections. |
Dependent item | nginx.stream.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
Dependent item | nginx.stream.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
Dependent item | nginx.stream.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
Dependent item | nginx.stream.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
Dependent item | nginx.stream.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connections | The total number of client connections forwarded to this server. |
Dependent item | nginx.stream.upstream.peer.connections.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connect time | The average time to connect to the upstream server. |
Dependent item | nginx.stream.upstream.peer.connect_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: First byte time | The average time to receive the first byte of data. |
Dependent item | nginx.stream.upstream.peer.first_byte_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to receive the last byte of data. |
Dependent item | nginx.stream.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
Dependent item | nginx.stream.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
Dependent item | nginx.stream.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing
|
| Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
Dependent item | nginx.stream.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| NGINX Plus: Stream upstream server is not in UP or DOWN state. | find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Resolvers discovery | Dependent item | nginx.resolvers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Resolver [{#NAME}]: Raw data | The raw data of the |
Dependent item | nginx.resolvers.raw[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Requests name, rate | The total number of requests to resolve names to addresses per second. |
Dependent item | nginx.resolvers.requests.name.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Requests srv, rate | The total number of requests to resolve SRV records per second. |
Dependent item | nginx.resolvers.requests.srv.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Requests addr, rate | The total number of requests to resolve addresses to names per second. |
Dependent item | nginx.resolvers.requests.addr.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses noerror, rate | The total number of successful responses per second. |
Dependent item | nginx.resolvers.responses.noerror.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses formerr, rate | The total number of |
Dependent item | nginx.resolvers.responses.formerr.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses servfail, rate | The total number of |
Dependent item | nginx.resolvers.responses.servfail.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses nxdomain, rate | The total number of |
Dependent item | nginx.resolvers.responses.nxdomain.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses notimp, rate | The total number of |
Dependent item | nginx.resolvers.responses.notimp.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses refused, rate | The total number of |
Dependent item | nginx.resolvers.responses.refused.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses timedout, rate | The total number of timed out requests per second. |
Dependent item | nginx.resolvers.responses.timedout.rate[{#NAME}] Preprocessing
|
| Resolver [{#NAME}]: Responses unknown, rate | The total number of requests completed with an unknown error per second. |
Dependent item | nginx.resolvers.responses.unknown.rate[{#NAME}] Preprocessing
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_plus_http?at=release/6.4
This template is designed for the effortless deployment of Nginx Plus monitoring by Zabbix via HTTP and doesn't require any external scripts.
The monitoring data of the live activity is generated by the NGINX Plus API.
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Refer to the vendor documentation.
<scheme>://<host>:<port>/<location>/.Note that depending on the number of zones and upstreams discovery operation may be expensive. Therefore, use the following filters with these macros:
| Name | Description | Default |
|---|---|---|
| {$NGINX.API.ENDPOINT} | NGINX Plus API URL in the format |
|
| {$NGINX.LLD.FILTER.HTTP.ZONE.MATCHES} | The filter to include the necessary discovered HTTP server zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP server zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.MATCHES} | The filter to include the necessary discovered HTTP location zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP location zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.MATCHES} | The filter to include the necessary discovered HTTP upstreams. |
.* |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered HTTP upstreams. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.ZONE.MATCHES} | The filter to include discovered server zones of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.ZONE.NOT_MATCHES} | The filter to exclude discovered server zones of the "stream" directive. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.MATCHES} | The filter to include the necessary discovered upstreams of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered upstreams of the "stream" directive |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.RESOLVER.MATCHES} | The filter to include the necessary discovered |
.* |
| {$NGINX.LLD.FILTER.RESOLVER.NOT_MATCHES} | The filter to exclude discovered |
CHANGE_IF_NEEDED |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| {$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| {$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Get info | Return status of the NGINX running instance. |
HTTP agent | nginx.info |
| Nginx: Get connections | Returns the statistics of client connections. |
HTTP agent | nginx.connections |
| Nginx: Get SSL | Returns the SSL statistics. |
HTTP agent | nginx.ssl |
| Nginx: Get requests | Returns the status of the client's HTTP requests. |
HTTP agent | nginx.requests |
| Nginx: Get HTTP zones | Returns the status information for each HTTP server zone. |
HTTP agent | nginx.http.server_zones |
| Nginx: Get HTTP location zones | Returns the status information for each HTTP location zone. |
HTTP agent | nginx.http.location_zones |
| Nginx: Get HTTP upstreams | Returns the status of each HTTP upstream server group and its servers. |
HTTP agent | nginx.http.upstreams |
| Nginx: Get Stream server zones | Returns the status information for each server zone configured in the "stream" directive. |
HTTP agent | nginx.stream.server_zones |
| Nginx: Get Stream upstreams | Returns status of each stream upstream server group and its servers. |
HTTP agent | nginx.stream.upstreams |
| Nginx: Get resolvers | Returns the status information for each Resolver zone. |
HTTP agent | nginx.resolvers |
| Nginx: Get info error | The description of NGINX errors. |
Dependent item | nginx.info.error Preprocessing
|
| Nginx: Version | A version number of NGINX. |
Dependent item | nginx.info.version Preprocessing
|
| Nginx: Address | The address of the server that accepted status request. |
Dependent item | nginx.info.address Preprocessing
|
| Nginx: Generation | The total number of configuration reloads. |
Dependent item | nginx.info.generation Preprocessing
|
| Nginx: Uptime | The server uptime. |
Dependent item | nginx.info.uptime Preprocessing
|
| Nginx: Connections accepted, rate | The total number of accepted client connections per second. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Nginx: Connections dropped | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped Preprocessing
|
| Nginx: Connections active | The current number of active client connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Nginx: Connections idle | The current number of idle client connections. |
Dependent item | nginx.connections.idle Preprocessing
|
| Nginx: SSL handshakes, rate | The total number of successful SSL handshakes per second. |
Dependent item | nginx.ssl.handshakes.rate Preprocessing
|
| Nginx: SSL handshakes failed, rate | The total number of failed SSL handshakes per second. |
Dependent item | nginx.ssl.handshakes_failed.rate Preprocessing
|
| Nginx: SSL session reuses, rate | The total number of session reuses during SSL handshake per second. |
Dependent item | nginx.ssl.session_reuses.rate Preprocessing
|
| Nginx: Requests total, rate | The total number of client requests per second. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Nginx: Requests current | The current number of client requests. |
Dependent item | nginx.requests.current Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Server response error | length(last(/NGINX Plus by HTTP/nginx.info.error))>0 |
High | ||
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
last(/NGINX Plus by HTTP/nginx.info.version,#1)<>last(/NGINX Plus by HTTP/nginx.info.version,#2) and length(last(/NGINX Plus by HTTP/nginx.info.version))>0 |
Info | Manual close: Yes |
| Nginx: Host has been restarted | Uptime is less than 10 minutes. |
last(/NGINX Plus by HTTP/nginx.info.uptime)<10m |
Info | Manual close: Yes |
| Nginx: Failed to fetch info data | Zabbix has not received any data for metrics for the last 30 minutes |
nodata(/NGINX Plus by HTTP/nginx.info.uptime,30m)=1 |
Warning | Manual close: Yes |
| Nginx: High connections drop rate | The rate of dropped connections is greater than |
min(/NGINX Plus by HTTP/nginx.connections.dropped,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP server zones discovery | Dependent item | nginx.http.server_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: HTTP server zone [{#NAME}]: Raw data | The raw data of the HTTP server zone with the name |
Dependent item | nginx.http.server_zones.raw[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Processing | The number of client requests that are currently being processed. |
Dependent item | nginx.http.server_zones.processing[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
Dependent item | nginx.http.server_zones.requests.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.1xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.2xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.3xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.4xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.5xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
Dependent item | nginx.http.server_zones.responses.total.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
Dependent item | nginx.http.server_zones.discarded.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.http.server_zones.received.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.http.server_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP location zones discovery | Dependent item | nginx.http.location_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: HTTP location zone [{#NAME}]: Raw data | The raw data of the location zone with the name |
Dependent item | nginx.http.location_zones.raw[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
Dependent item | nginx.http.location_zones.requests.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.1xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.2xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.3xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.4xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.5xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
Dependent item | nginx.http.location_zones.responses.total.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
Dependent item | nginx.http.location_zones.discarded.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.http.location_zones.received.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.http.location_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstreams discovery | Dependent item | nginx.http.upstreams.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: HTTP upstream [{#NAME}]: Raw data | The raw data of the HTTP upstream with the name |
Dependent item | nginx.http.upstreams.raw[{#NAME}] Preprocessing
|
| Nginx: HTTP upstream [{#NAME}]: Keepalive | The current number of idle keepalive connections. |
Dependent item | nginx.http.upstreams.keepalive[{#NAME}] Preprocessing
|
| Nginx: HTTP upstream [{#NAME}]: Zombies | The current number of servers removed from the group but still processing active client requests. |
Dependent item | nginx.http.upstreams.zombies[{#NAME}] Preprocessing
|
| Nginx: HTTP upstream [{#NAME}]: Zone | The name of the shared memory zone that keeps the group's configuration and run-time state. |
Dependent item | nginx.http.upstreams.zone[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream peers discovery | Dependent item | nginx.http.upstream.peers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the HTTP upstream with the name |
Dependent item | nginx.http.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
Dependent item | nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of active connections. |
Dependent item | nginx.http.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Requests, rate | The total number of client requests forwarded to this server per second. |
Dependent item | nginx.http.upstream.peer.requests.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.1xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.2xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.3xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses total, rate | The total number of responses obtained from this server. |
Dependent item | nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
Dependent item | nginx.http.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
Dependent item | nginx.http.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
Dependent item | nginx.http.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
Dependent item | nginx.http.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Header time | The average time to get the response header from the server. |
Dependent item | nginx.http.upstream.peer.header_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to get the full response from the server. |
Dependent item | nginx.http.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
Dependent item | nginx.http.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
Dependent item | nginx.http.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
Dependent item | nginx.http.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: HTTP upstream server is not in UP or DOWN state. | find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
Warning | ||
| Nginx: Too many HTTP requests with code 4xx | sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN}/100)) |
Warning | ||
| Nginx: Too many HTTP requests with code 5xx | sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN}/100)) |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream server zones discovery | Dependent item | nginx.stream.server_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Stream server zone [{#NAME}]: Raw data | The raw data of server zone with the name |
Dependent item | nginx.stream.server_zones.raw[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Processing | The number of client connections that are currently being processed. |
Dependent item | nginx.stream.server_zones.processing[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Connections, rate | The total number of connections accepted from clients per second. |
Dependent item | nginx.stream.server_zones.connections.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Sessions 2xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.2xx.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Sessions 4xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.4xx.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Sessions 5xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.5xx.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Sessions total, rate | The total number of completed client sessions per second. |
Dependent item | nginx.stream.server_zones.sessions.total.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Discarded, rate | The total number of connections completed without creating a session per second. |
Dependent item | nginx.stream.server_zones.discarded.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.stream.server_zones.received.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.stream.server_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstreams discovery | Dependent item | nginx.stream.upstreams.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Stream upstream [{#NAME}]: Raw data | The raw data of the upstream with the name |
Dependent item | nginx.stream.upstreams.raw[{#NAME}] Preprocessing
|
| Nginx: Stream upstream [{#NAME}]: Zombies | Dependent item | nginx.stream.upstreams.zombies[{#NAME}] Preprocessing
|
|
| Nginx: Stream upstream [{#NAME}]: Zone | Dependent item | nginx.stream.upstreams.zone[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream peers discovery | Dependent item | nginx.stream.upstream.peers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the upstream with the name |
Dependent item | nginx.stream.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
Dependent item | nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of connections. |
Dependent item | nginx.stream.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
Dependent item | nginx.stream.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
Dependent item | nginx.stream.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
Dependent item | nginx.stream.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
Dependent item | nginx.stream.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connections | The total number of client connections forwarded to this server. |
Dependent item | nginx.stream.upstream.peer.connections.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connect time | The average time to connect to the upstream server. |
Dependent item | nginx.stream.upstream.peer.connect_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: First byte time | The average time to receive the first byte of data. |
Dependent item | nginx.stream.upstream.peer.first_byte_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to receive the last byte of data. |
Dependent item | nginx.stream.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
Dependent item | nginx.stream.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
Dependent item | nginx.stream.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
Dependent item | nginx.stream.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Stream upstream server is not in UP or DOWN state. | find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Resolvers discovery | Dependent item | nginx.resolvers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Resolver [{#NAME}]: Raw data | The raw data of the |
Dependent item | nginx.resolvers.raw[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Requests name, rate | The total number of requests to resolve names to addresses per second. |
Dependent item | nginx.resolvers.requests.name.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Requests srv, rate | The total number of requests to resolve SRV records per second. |
Dependent item | nginx.resolvers.requests.srv.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Requests addr, rate | The total number of requests to resolve addresses to names per second. |
Dependent item | nginx.resolvers.requests.addr.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses noerror, rate | The total number of successful responses per second. |
Dependent item | nginx.resolvers.responses.noerror.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses formerr, rate | The total number of |
Dependent item | nginx.resolvers.responses.formerr.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses servfail, rate | The total number of |
Dependent item | nginx.resolvers.responses.servfail.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses nxdomain, rate | The total number of |
Dependent item | nginx.resolvers.responses.nxdomain.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses notimp, rate | The total number of |
Dependent item | nginx.resolvers.responses.notimp.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses refused, rate | The total number of |
Dependent item | nginx.resolvers.responses.refused.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses timedout, rate | The total number of timed out requests per second. |
Dependent item | nginx.resolvers.responses.timedout.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses unknown, rate | The total number of requests completed with an unknown error per second. |
Dependent item | nginx.resolvers.responses.unknown.rate[{#NAME}] Preprocessing
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_plus_http?at=release/6.2
For Zabbix version: 6.2 and higher. This template is designed to monitor NGINX Plus by Zabbix that works without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The monitoring data of the live activity is generated by the NGINX Plus API.
This template has been tested on:
See Zabbix template operation for basic instructions.
Refer to the vendor documentation.
<scheme>://<host>:<port>/<location>/.Note that depending on the number of zones and upstreams discovery operation may be expensive. Therefore, use the following filters with these macros:
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$NGINX.API.ENDPOINT} | NGINX Plus API URL in the format |
`` |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| {$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| {$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.MATCHES} | The filter to include the necessary discovered HTTP location zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP location zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.MATCHES} | The filter to include the necessary discovered HTTP upstreams. |
.* |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered HTTP upstreams. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.ZONE.MATCHES} | The filter to include the necessary discovered HTTP server zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP server zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.RESOLVER.MATCHES} | The filter to include the necessary discovered |
.* |
| {$NGINX.LLD.FILTER.RESOLVER.NOT_MATCHES} | The filter to exclude discovered |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.MATCHES} | The filter to include the necessary discovered upstreams of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered upstreams of the "stream" directive |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.ZONE.MATCHES} | The filter to include discovered server zones of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.ZONE.NOT_MATCHES} | The filter to exclude discovered server zones of the "stream" directive. |
CHANGE_IF_NEEDED |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP location zones discovery | - |
DEPENDENT | nginx.http.location_zones.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| HTTP server zones discovery | - |
DEPENDENT | nginx.http.server_zones.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| HTTP upstream peers discovery | - |
DEPENDENT | nginx.http.upstream.peers.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#UPSTREAM} MATCHES_REGEX - {#UPSTREAM} NOT_MATCHES_REGEX |
| HTTP upstreams discovery | - |
DEPENDENT | nginx.http.upstreams.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| Resolvers discovery | - |
DEPENDENT | nginx.resolvers.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| Stream server zones discovery | - |
DEPENDENT | nginx.stream.server_zones.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| Stream upstream peers discovery | - |
DEPENDENT | nginx.stream.upstream.peers.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#UPSTREAM} MATCHES_REGEX - {#UPSTREAM} NOT_MATCHES_REGEX |
| Stream upstreams discovery | - |
DEPENDENT | nginx.stream.upstreams.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Nginx | Nginx: Get info error | The description of NGINX errors. |
DEPENDENT | nginx.info.error Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Version | A version number of NGINX. |
DEPENDENT | nginx.info.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Address | The address of the server that accepted status request. |
DEPENDENT | nginx.info.address Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Generation | The total number of configuration reloads. |
DEPENDENT | nginx.info.generation Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Uptime | The server uptime. |
DEPENDENT | nginx.info.uptime Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JAVASCRIPT: |
| Nginx | Nginx: Connections accepted, rate | The total number of accepted client connections per second. |
DEPENDENT | nginx.connections.accepted.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections dropped | The total number of dropped client connections. |
DEPENDENT | nginx.connections.dropped Preprocessing: - JSONPATH: |
| Nginx | Nginx: Connections active | The current number of active client connections. |
DEPENDENT | nginx.connections.active Preprocessing: - JSONPATH: |
| Nginx | Nginx: Connections idle | The current number of idle client connections. |
DEPENDENT | nginx.connections.idle Preprocessing: - JSONPATH: |
| Nginx | Nginx: SSL handshakes, rate | The total number of successful SSL handshakes per second. |
DEPENDENT | nginx.ssl.handshakes.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: SSL handshakes failed, rate | The total number of failed SSL handshakes per second. |
DEPENDENT | nginx.ssl.handshakes_failed.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: SSL session reuses, rate | The total number of session reuses during SSL handshake per second. |
DEPENDENT | nginx.ssl.session_reuses.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Requests total, rate | The total number of client requests per second. |
DEPENDENT | nginx.requests.total.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Requests current | The current number of client requests. |
DEPENDENT | nginx.requests.current Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Raw data | The raw data of the HTTP server zone with the name |
DEPENDENT | nginx.http.server_zones.raw[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Processing | The number of client requests that are currently being processed. |
DEPENDENT | nginx.http.server_zones.processing[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
DEPENDENT | nginx.http.server_zones.requests.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
DEPENDENT | nginx.http.server_zones.responses.1xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
DEPENDENT | nginx.http.server_zones.responses.2xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
DEPENDENT | nginx.http.server_zones.responses.3xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
DEPENDENT | nginx.http.server_zones.responses.4xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
DEPENDENT | nginx.http.server_zones.responses.5xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
DEPENDENT | nginx.http.server_zones.responses.total.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
DEPENDENT | nginx.http.server_zones.discarded.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
DEPENDENT | nginx.http.server_zones.received.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
DEPENDENT | nginx.http.server_zones.sent.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Raw data | The raw data of the location zone with the name |
DEPENDENT | nginx.http.location_zones.raw[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
DEPENDENT | nginx.http.location_zones.requests.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
DEPENDENT | nginx.http.location_zones.responses.1xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
DEPENDENT | nginx.http.location_zones.responses.2xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
DEPENDENT | nginx.http.location_zones.responses.3xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
DEPENDENT | nginx.http.location_zones.responses.4xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
DEPENDENT | nginx.http.location_zones.responses.5xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
DEPENDENT | nginx.http.location_zones.responses.total.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
DEPENDENT | nginx.http.location_zones.discarded.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
DEPENDENT | nginx.http.location_zones.received.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
DEPENDENT | nginx.http.location_zones.sent.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#NAME}]: Raw data | The raw data of the HTTP upstream with the name |
DEPENDENT | nginx.http.upstreams.raw[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#NAME}]: Keepalive | The current number of idle keepalive connections. |
DEPENDENT | nginx.http.upstreams.keepalive[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#NAME}]: Zombies | The current number of servers removed from the group but still processing active client requests. |
DEPENDENT | nginx.http.upstreams.zombies[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#NAME}]: Zone | The name of the shared memory zone that keeps the group's configuration and run-time state. |
DEPENDENT | nginx.http.upstreams.zone[{#NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the HTTP upstream with the name |
DEPENDENT | nginx.http.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
DEPENDENT | nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of active connections. |
DEPENDENT | nginx.http.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Requests, rate | The total number of client requests forwarded to this server per second. |
DEPENDENT | nginx.http.upstream.peer.requests.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 1xx, rate | The number of responses with |
DEPENDENT | nginx.http.upstream.peer.responses.1xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 2xx, rate | The number of responses with |
DEPENDENT | nginx.http.upstream.peer.responses.2xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 3xx, rate | The number of responses with |
DEPENDENT | nginx.http.upstream.peer.responses.3xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 4xx, rate | The number of responses with |
DEPENDENT | nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 5xx, rate | The number of responses with |
DEPENDENT | nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses total, rate | The total number of responses obtained from this server. |
DEPENDENT | nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
DEPENDENT | nginx.http.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
DEPENDENT | nginx.http.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
DEPENDENT | nginx.http.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
DEPENDENT | nginx.http.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Header time | The average time to get the response header from the server. |
DEPENDENT | nginx.http.upstream.peer.header_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to get the full response from the server. |
DEPENDENT | nginx.http.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
DEPENDENT | nginx.http.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
DEPENDENT | nginx.http.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
DEPENDENT | nginx.http.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream server zone [{#NAME}]: Raw data | The raw data of server zone with the name |
DEPENDENT | nginx.stream.server_zones.raw[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream server zone [{#NAME}]: Processing | The number of client connections that are currently being processed. |
DEPENDENT | nginx.stream.server_zones.processing[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream server zone [{#NAME}]: Connections, rate | The total number of connections accepted from clients per second. |
DEPENDENT | nginx.stream.server_zones.connections.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions 2xx, rate | The total number of sessions completed with status code |
DEPENDENT | nginx.stream.server_zones.sessions.2xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions 4xx, rate | The total number of sessions completed with status code |
DEPENDENT | nginx.stream.server_zones.sessions.4xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions 5xx, rate | The total number of sessions completed with status code |
DEPENDENT | nginx.stream.server_zones.sessions.5xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions total, rate | The total number of completed client sessions per second. |
DEPENDENT | nginx.stream.server_zones.sessions.total.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Discarded, rate | The total number of connections completed without creating a session per second. |
DEPENDENT | nginx.stream.server_zones.discarded.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
DEPENDENT | nginx.stream.server_zones.received.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
DEPENDENT | nginx.stream.server_zones.sent.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#NAME}]: Raw data | The raw data of the upstream with the name |
DEPENDENT | nginx.stream.upstreams.raw[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#NAME}]: Zombies | - |
DEPENDENT | nginx.stream.upstreams.zombies[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#NAME}]: Zone | - |
DEPENDENT | nginx.stream.upstreams.zone[{#NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the upstream with the name |
DEPENDENT | nginx.stream.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
DEPENDENT | nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of connections. |
DEPENDENT | nginx.stream.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
DEPENDENT | nginx.stream.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
DEPENDENT | nginx.stream.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
DEPENDENT | nginx.stream.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
DEPENDENT | nginx.stream.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connections | The total number of client connections forwarded to this server. |
DEPENDENT | nginx.stream.upstream.peer.connections.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connect time | The average time to connect to the upstream server. |
DEPENDENT | nginx.stream.upstream.peer.connect_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: First byte time | The average time to receive the first byte of data. |
DEPENDENT | nginx.stream.upstream.peer.first_byte_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to receive the last byte of data. |
DEPENDENT | nginx.stream.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
DEPENDENT | nginx.stream.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
DEPENDENT | nginx.stream.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
DEPENDENT | nginx.stream.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Resolver [{#NAME}]: Raw data | The raw data of the |
DEPENDENT | nginx.resolvers.raw[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Resolver [{#NAME}]: Requests name, rate | The total number of requests to resolve names to addresses per second. |
DEPENDENT | nginx.resolvers.requests.name.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Requests srv, rate | The total number of requests to resolve SRV records per second. |
DEPENDENT | nginx.resolvers.requests.srv.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Requests addr, rate | The total number of requests to resolve addresses to names per second. |
DEPENDENT | nginx.resolvers.requests.addr.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses noerror, rate | The total number of successful responses per second. |
DEPENDENT | nginx.resolvers.responses.noerror.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses formerr, rate | The total number of |
DEPENDENT | nginx.resolvers.responses.formerr.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses servfail, rate | The total number of |
DEPENDENT | nginx.resolvers.responses.servfail.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses nxdomain, rate | The total number of |
DEPENDENT | nginx.resolvers.responses.nxdomain.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses notimp, rate | The total number of |
DEPENDENT | nginx.resolvers.responses.notimp.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses refused, rate | The total number of |
DEPENDENT | nginx.resolvers.responses.refused.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses timedout, rate | The total number of timed out requests per second. |
DEPENDENT | nginx.resolvers.responses.timedout.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses unknown, rate | The total number of requests completed with an unknown error per second. |
DEPENDENT | nginx.resolvers.responses.unknown.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Zabbix raw items | Nginx: Get info | Return status of the NGINX running instance. |
HTTP_AGENT | nginx.info |
| Zabbix raw items | Nginx: Get connections | Returns the statistics of client connections. |
HTTP_AGENT | nginx.connections |
| Zabbix raw items | Nginx: Get SSL | Returns the SSL statistics. |
HTTP_AGENT | nginx.ssl |
| Zabbix raw items | Nginx: Get requests | Returns the status of the client's HTTP requests. |
HTTP_AGENT | nginx.requests |
| Zabbix raw items | Nginx: Get HTTP zones | Returns the status information for each HTTP server zone. |
HTTP_AGENT | nginx.http.server_zones |
| Zabbix raw items | Nginx: Get HTTP location zones | Returns the status information for each HTTP location zone. |
HTTP_AGENT | nginx.http.location_zones |
| Zabbix raw items | Nginx: Get HTTP upstreams | Returns the status of each HTTP upstream server group and its servers. |
HTTP_AGENT | nginx.http.upstreams |
| Zabbix raw items | Nginx: Get Stream server zones | Returns the status information for each server zone configured in the "stream" directive. |
HTTP_AGENT | nginx.stream.server_zones |
| Zabbix raw items | Nginx: Get Stream upstreams | Returns status of each stream upstream server group and its servers. |
HTTP_AGENT | nginx.stream.upstreams |
| Zabbix raw items | Nginx: Get resolvers | Returns the status information for each Resolver zone. |
HTTP_AGENT | nginx.resolvers |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Server response error | - |
length(last(/NGINX Plus by HTTP/nginx.info.error))>0 |
HIGH | |
| Nginx: Version has changed | Nginx version has changed. Acknowledge to close manually. |
last(/NGINX Plus by HTTP/nginx.info.version,#1)<>last(/NGINX Plus by HTTP/nginx.info.version,#2) and length(last(/NGINX Plus by HTTP/nginx.info.version))>0 |
INFO | Manual close: YES |
| Nginx: Host has been restarted | The host uptime is less than 10 minutes. |
last(/NGINX Plus by HTTP/nginx.info.uptime)<10m |
INFO | Manual close: YES |
| Nginx: Failed to fetch info data | Zabbix has not received any data for metrics for the last 30 minutes |
nodata(/NGINX Plus by HTTP/nginx.info.uptime,30m)=1 |
WARNING | Manual close: YES |
| Nginx: High connections drop rate | The rate of dropped connections is greater than |
min(/NGINX Plus by HTTP/nginx.connections.dropped,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
WARNING | |
| Nginx: HTTP upstream server is not in UP or DOWN state. | - |
find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
WARNING | |
| Nginx: Too many HTTP requests with code 4xx | - |
sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN}/100)) |
WARNING | |
| Nginx: Too many HTTP requests with code 5xx | - |
sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN}/100)) |
HIGH | |
| Nginx: Stream upstream server is not in UP or DOWN state. | - |
find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
WARNING |
Please report any issues with the template at https://support.zabbix.com.
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_plus_http?at=release/6.0
This template is designed for the effortless deployment of Nginx Plus monitoring by Zabbix via HTTP and doesn't require any external scripts.
The monitoring data of the live activity is generated by the NGINX Plus API.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Refer to the vendor documentation.
<scheme>://<host>:<port>/<location>/.Note that depending on the number of zones and upstreams discovery operation may be expensive. Therefore, use the following filters with these macros:
| Name | Description | Default |
|---|---|---|
| {$NGINX.API.ENDPOINT} | NGINX Plus API URL in the format |
|
| {$NGINX.LLD.FILTER.HTTP.ZONE.MATCHES} | The filter to include the necessary discovered HTTP server zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP server zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.MATCHES} | The filter to include the necessary discovered HTTP location zones. |
.* |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.NOT_MATCHES} | The filter to exclude discovered HTTP location zones. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.MATCHES} | The filter to include the necessary discovered HTTP upstreams. |
.* |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered HTTP upstreams. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.ZONE.MATCHES} | The filter to include discovered server zones of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.ZONE.NOT_MATCHES} | The filter to exclude discovered server zones of the "stream" directive. |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.MATCHES} | The filter to include the necessary discovered upstreams of the "stream" directive. |
.* |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.NOT_MATCHES} | The filter to exclude discovered upstreams of the "stream" directive |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.RESOLVER.MATCHES} | The filter to include the necessary discovered |
.* |
| {$NGINX.LLD.FILTER.RESOLVER.NOT_MATCHES} | The filter to exclude discovered |
CHANGE_IF_NEEDED |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for a trigger expression. |
1 |
| {$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| {$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN} | The maximum percentage of errors with the status code |
5 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Get info | Return status of the NGINX running instance. |
HTTP agent | nginx.info |
| Nginx: Get connections | Returns the statistics of client connections. |
HTTP agent | nginx.connections |
| Nginx: Get SSL | Returns the SSL statistics. |
HTTP agent | nginx.ssl |
| Nginx: Get requests | Returns the status of the client's HTTP requests. |
HTTP agent | nginx.requests |
| Nginx: Get HTTP zones | Returns the status information for each HTTP server zone. |
HTTP agent | nginx.http.server_zones |
| Nginx: Get HTTP location zones | Returns the status information for each HTTP location zone. |
HTTP agent | nginx.http.location_zones |
| Nginx: Get HTTP upstreams | Returns the status of each HTTP upstream server group and its servers. |
HTTP agent | nginx.http.upstreams |
| Nginx: Get Stream server zones | Returns the status information for each server zone configured in the "stream" directive. |
HTTP agent | nginx.stream.server_zones |
| Nginx: Get Stream upstreams | Returns status of each stream upstream server group and its servers. |
HTTP agent | nginx.stream.upstreams |
| Nginx: Get resolvers | Returns the status information for each Resolver zone. |
HTTP agent | nginx.resolvers |
| Nginx: Get info error | The description of NGINX errors. |
Dependent item | nginx.info.error Preprocessing
|
| Nginx: Version | A version number of NGINX. |
Dependent item | nginx.info.version Preprocessing
|
| Nginx: Address | The address of the server that accepted status request. |
Dependent item | nginx.info.address Preprocessing
|
| Nginx: Generation | The total number of configuration reloads. |
Dependent item | nginx.info.generation Preprocessing
|
| Nginx: Uptime | The server uptime. |
Dependent item | nginx.info.uptime Preprocessing
|
| Nginx: Connections accepted, rate | The total number of accepted client connections per second. |
Dependent item | nginx.connections.accepted.rate Preprocessing
|
| Nginx: Connections dropped | The total number of dropped client connections. |
Dependent item | nginx.connections.dropped Preprocessing
|
| Nginx: Connections active | The current number of active client connections. |
Dependent item | nginx.connections.active Preprocessing
|
| Nginx: Connections idle | The current number of idle client connections. |
Dependent item | nginx.connections.idle Preprocessing
|
| Nginx: SSL handshakes, rate | The total number of successful SSL handshakes per second. |
Dependent item | nginx.ssl.handshakes.rate Preprocessing
|
| Nginx: SSL handshakes failed, rate | The total number of failed SSL handshakes per second. |
Dependent item | nginx.ssl.handshakes_failed.rate Preprocessing
|
| Nginx: SSL session reuses, rate | The total number of session reuses during SSL handshake per second. |
Dependent item | nginx.ssl.session_reuses.rate Preprocessing
|
| Nginx: Requests total, rate | The total number of client requests per second. |
Dependent item | nginx.requests.total.rate Preprocessing
|
| Nginx: Requests current | The current number of client requests. |
Dependent item | nginx.requests.current Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Server response error | length(last(/NGINX Plus by HTTP/nginx.info.error))>0 |
High | ||
| Nginx: Version has changed | The Nginx version has changed. Acknowledge to close the problem manually. |
last(/NGINX Plus by HTTP/nginx.info.version,#1)<>last(/NGINX Plus by HTTP/nginx.info.version,#2) and length(last(/NGINX Plus by HTTP/nginx.info.version))>0 |
Info | Manual close: Yes |
| Nginx: Host has been restarted | Uptime is less than 10 minutes. |
last(/NGINX Plus by HTTP/nginx.info.uptime)<10m |
Info | Manual close: Yes |
| Nginx: Failed to fetch info data | Zabbix has not received any data for metrics for the last 30 minutes |
nodata(/NGINX Plus by HTTP/nginx.info.uptime,30m)=1 |
Warning | Manual close: Yes |
| Nginx: High connections drop rate | The rate of dropped connections is greater than |
min(/NGINX Plus by HTTP/nginx.connections.dropped,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP server zones discovery | Dependent item | nginx.http.server_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: HTTP server zone [{#NAME}]: Raw data | The raw data of the HTTP server zone with the name |
Dependent item | nginx.http.server_zones.raw[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Processing | The number of client requests that are currently being processed. |
Dependent item | nginx.http.server_zones.processing[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
Dependent item | nginx.http.server_zones.requests.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.1xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.2xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.3xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.4xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.server_zones.responses.5xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
Dependent item | nginx.http.server_zones.responses.total.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
Dependent item | nginx.http.server_zones.discarded.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.http.server_zones.received.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.http.server_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP location zones discovery | Dependent item | nginx.http.location_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: HTTP location zone [{#NAME}]: Raw data | The raw data of the location zone with the name |
Dependent item | nginx.http.location_zones.raw[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
Dependent item | nginx.http.location_zones.requests.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.1xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.2xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.3xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.4xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.location_zones.responses.5xx.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
Dependent item | nginx.http.location_zones.responses.total.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
Dependent item | nginx.http.location_zones.discarded.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.http.location_zones.received.rate[{#NAME}] Preprocessing
|
| Nginx: HTTP location zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.http.location_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstreams discovery | Dependent item | nginx.http.upstreams.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: HTTP upstream [{#NAME}]: Raw data | The raw data of the HTTP upstream with the name |
Dependent item | nginx.http.upstreams.raw[{#NAME}] Preprocessing
|
| Nginx: HTTP upstream [{#NAME}]: Keepalive | The current number of idle keepalive connections. |
Dependent item | nginx.http.upstreams.keepalive[{#NAME}] Preprocessing
|
| Nginx: HTTP upstream [{#NAME}]: Zombies | The current number of servers removed from the group but still processing active client requests. |
Dependent item | nginx.http.upstreams.zombies[{#NAME}] Preprocessing
|
| Nginx: HTTP upstream [{#NAME}]: Zone | The name of the shared memory zone that keeps the group's configuration and run-time state. |
Dependent item | nginx.http.upstreams.zone[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP upstream peers discovery | Dependent item | nginx.http.upstream.peers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the HTTP upstream with the name |
Dependent item | nginx.http.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
Dependent item | nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of active connections. |
Dependent item | nginx.http.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Requests, rate | The total number of client requests forwarded to this server per second. |
Dependent item | nginx.http.upstream.peer.requests.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 1xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.1xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 2xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.2xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 3xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.3xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 4xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 5xx, rate | The number of responses with |
Dependent item | nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses total, rate | The total number of responses obtained from this server. |
Dependent item | nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
Dependent item | nginx.http.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
Dependent item | nginx.http.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
Dependent item | nginx.http.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
Dependent item | nginx.http.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Header time | The average time to get the response header from the server. |
Dependent item | nginx.http.upstream.peer.header_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to get the full response from the server. |
Dependent item | nginx.http.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
Dependent item | nginx.http.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
Dependent item | nginx.http.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
Dependent item | nginx.http.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: HTTP upstream server is not in UP or DOWN state. | find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
Warning | ||
| Nginx: Too many HTTP requests with code 4xx | sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN}/100)) |
Warning | ||
| Nginx: Too many HTTP requests with code 5xx | sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/NGINX Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN}/100)) |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream server zones discovery | Dependent item | nginx.stream.server_zones.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Stream server zone [{#NAME}]: Raw data | The raw data of server zone with the name |
Dependent item | nginx.stream.server_zones.raw[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Processing | The number of client connections that are currently being processed. |
Dependent item | nginx.stream.server_zones.processing[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Connections, rate | The total number of connections accepted from clients per second. |
Dependent item | nginx.stream.server_zones.connections.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Sessions 2xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.2xx.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Sessions 4xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.4xx.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Sessions 5xx, rate | The total number of sessions completed with status code |
Dependent item | nginx.stream.server_zones.sessions.5xx.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Sessions total, rate | The total number of completed client sessions per second. |
Dependent item | nginx.stream.server_zones.sessions.total.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Discarded, rate | The total number of connections completed without creating a session per second. |
Dependent item | nginx.stream.server_zones.discarded.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
Dependent item | nginx.stream.server_zones.received.rate[{#NAME}] Preprocessing
|
| Nginx: Stream server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
Dependent item | nginx.stream.server_zones.sent.rate[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstreams discovery | Dependent item | nginx.stream.upstreams.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Stream upstream [{#NAME}]: Raw data | The raw data of the upstream with the name |
Dependent item | nginx.stream.upstreams.raw[{#NAME}] Preprocessing
|
| Nginx: Stream upstream [{#NAME}]: Zombies | Dependent item | nginx.stream.upstreams.zombies[{#NAME}] Preprocessing
|
|
| Nginx: Stream upstream [{#NAME}]: Zone | Dependent item | nginx.stream.upstreams.zone[{#NAME}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Stream upstream peers discovery | Dependent item | nginx.stream.upstream.peers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Raw data | The raw data of the upstream with the name |
Dependent item | nginx.stream.upstream.peer.raw[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: State | The current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
Dependent item | nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of connections. |
Dependent item | nginx.stream.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
Dependent item | nginx.stream.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
Dependent item | nginx.stream.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
Dependent item | nginx.stream.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | Displays how many times the server has become unavailable for client requests (the state - “unavail”) due to the number of unsuccessful attempts reaching the |
Dependent item | nginx.stream.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connections | The total number of client connections forwarded to this server. |
Dependent item | nginx.stream.upstream.peer.connections.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connect time | The average time to connect to the upstream server. |
Dependent item | nginx.stream.upstream.peer.connect_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: First byte time | The average time to receive the first byte of data. |
Dependent item | nginx.stream.upstream.peer.first_byte_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to receive the last byte of data. |
Dependent item | nginx.stream.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
Dependent item | nginx.stream.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
Dependent item | nginx.stream.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing
|
| Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | Displays how many times the server has become |
Dependent item | nginx.stream.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Stream upstream server is not in UP or DOWN state. | find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/NGINX Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Resolvers discovery | Dependent item | nginx.resolvers.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Nginx: Resolver [{#NAME}]: Raw data | The raw data of the |
Dependent item | nginx.resolvers.raw[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Requests name, rate | The total number of requests to resolve names to addresses per second. |
Dependent item | nginx.resolvers.requests.name.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Requests srv, rate | The total number of requests to resolve SRV records per second. |
Dependent item | nginx.resolvers.requests.srv.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Requests addr, rate | The total number of requests to resolve addresses to names per second. |
Dependent item | nginx.resolvers.requests.addr.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses noerror, rate | The total number of successful responses per second. |
Dependent item | nginx.resolvers.responses.noerror.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses formerr, rate | The total number of |
Dependent item | nginx.resolvers.responses.formerr.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses servfail, rate | The total number of |
Dependent item | nginx.resolvers.responses.servfail.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses nxdomain, rate | The total number of |
Dependent item | nginx.resolvers.responses.nxdomain.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses notimp, rate | The total number of |
Dependent item | nginx.resolvers.responses.notimp.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses refused, rate | The total number of |
Dependent item | nginx.resolvers.responses.refused.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses timedout, rate | The total number of timed out requests per second. |
Dependent item | nginx.resolvers.responses.timedout.rate[{#NAME}] Preprocessing
|
| Nginx: Resolver [{#NAME}]: Responses unknown, rate | The total number of requests completed with an unknown error per second. |
Dependent item | nginx.resolvers.responses.unknown.rate[{#NAME}] Preprocessing
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_plus_http?at=release/5.4
For Zabbix version: 5.4 and higher
The template to monitor Nginx Plus by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The live activity monitoring data is generated by the NGINX Plus API.
This template was tested on:
See Zabbix template operation for basic instructions.
<scheme>://<host>:<port>/<location>/.Note, depending on the number of zones and upstreams discovery operation may be expensive. Use filters with macros:
The live activity monitoring data is generated by the NGINX Plus API.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$NGINX.API.ENDPOINT} | NGINX Plus API URL in the format |
`` |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for trigger expression. |
1 |
| {$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN} | Maximum percentage of errors with status code 4xx (for trigger expression). |
5 |
| {$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN} | Maximum percentage of errors with status code 4xx (for trigger expression). |
5 |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.MATCHES} | Filter of discoverable HTTP location zones |
.* |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.NOT_MATCHES} | Filter to exclude discovered HTTP location zones |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.MATCHES} | Filter of discoverable HTTP upstreams |
.* |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.NOT_MATCHES} | Filter to exclude discovered HTTP upstreams |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.ZONE.MATCHES} | Filter of discoverable HTTP server zones |
.* |
| {$NGINX.LLD.FILTER.HTTP.ZONE.NOT_MATCHES} | Filter to exclude discovered HTTP server zones |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.RESOLVER.MATCHES} | Filter of discoverable Resolvers |
.* |
| {$NGINX.LLD.FILTER.RESOLVER.NOT_MATCHES} | Filter to exclude discovered Resolvers |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.MATCHES} | Filter of discoverable Stream upstreams |
.* |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.NOT_MATCHES} | Filter to exclude discovered Stream upstreams |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.ZONE.MATCHES} | Filter of discoverable Stream server zones |
.* |
| {$NGINX.LLD.FILTER.STREAM.ZONE.NOT_MATCHES} | Filter to exclude discovered Stream server zones |
CHANGE_IF_NEEDED |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP server zones discovery | - |
DEPENDENT | nginx.http.server_zones.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| HTTP location zones discovery | - |
DEPENDENT | nginx.http.location_zones.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| HTTP upstreams discovery | - |
DEPENDENT | nginx.http.upstreams.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| HTTP upstream peers discovery | - |
DEPENDENT | nginx.http.upstream.peers.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#UPSTREAM} MATCHES_REGEX - {#UPSTREAM} NOT_MATCHES_REGEX |
| Stream server zones discovery | - |
DEPENDENT | nginx.stream.server_zones.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| Stream upstreams discovery | - |
DEPENDENT | nginx.stream.upstreams.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| Stream upstream peers discovery | - |
DEPENDENT | nginx.stream.upstream.peers.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#UPSTREAM} MATCHES_REGEX - {#UPSTREAM} NOT_MATCHES_REGEX |
| Resolvers discovery | - |
DEPENDENT | nginx.resolvers.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#NAME} MATCHES_REGEX - {#NAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Nginx | Nginx: Get info error | Nginx error description. |
DEPENDENT | nginx.info.error Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Version | Version of nginx. |
DEPENDENT | nginx.info.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Address | The address of the server that accepted status request. |
DEPENDENT | nginx.info.address Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Generation | The total number of configuration reloads. |
DEPENDENT | nginx.info.generation Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Uptime | Server uptime. |
DEPENDENT | nginx.info.uptime Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JAVASCRIPT: |
| Nginx | Nginx: Connections accepted, rate | The total number of accepted client connections per second. |
DEPENDENT | nginx.connections.accepted.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections dropped | The total number of dropped client connections. |
DEPENDENT | nginx.connections.dropped Preprocessing: - JSONPATH: |
| Nginx | Nginx: Connections active | The current number of active client connections. |
DEPENDENT | nginx.connections.active Preprocessing: - JSONPATH: |
| Nginx | Nginx: Connections idle | The current number of idle client connections. |
DEPENDENT | nginx.connections.idle Preprocessing: - JSONPATH: |
| Nginx | Nginx: SSL handshakes, rate | The total number of successful SSL handshakes per second. |
DEPENDENT | nginx.ssl.handshakes.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: SSL handshakes failed, rate | The total number of failed SSL handshakes per second. |
DEPENDENT | nginx.ssl.handshakes_failed.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: SSL session reuses, rate | The total number of session reuses during SSL handshake per second. |
DEPENDENT | nginx.ssl.session_reuses.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Requests total, rate | The total number of client requests per second. |
DEPENDENT | nginx.requests.total.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Requests current | The current number of client requests. |
DEPENDENT | nginx.requests.current Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Processing | The number of client requests that are currently being processed. |
DEPENDENT | nginx.http.server_zones.processing[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
DEPENDENT | nginx.http.server_zones.requests.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 1xx, rate | The number of responses with “1xx” status codes per second. |
DEPENDENT | nginx.http.server_zones.responses.1xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 2xx, rate | The number of responses with “2xx” status codes per second. |
DEPENDENT | nginx.http.server_zones.responses.2xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 3xx, rate | The number of responses with “3xx” status codes per second. |
DEPENDENT | nginx.http.server_zones.responses.3xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 4xx, rate | The number of responses with “4xx” status codes per second. |
DEPENDENT | nginx.http.server_zones.responses.4xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 5xx, rate | The number of responses with “5xx” status codes per second. |
DEPENDENT | nginx.http.server_zones.responses.5xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
DEPENDENT | nginx.http.server_zones.responses.total.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
DEPENDENT | nginx.http.server_zones.discarded.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
DEPENDENT | nginx.http.server_zones.received.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
DEPENDENT | nginx.http.server_zones.sent.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
DEPENDENT | nginx.http.location_zones.requests.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 1xx, rate | The number of responses with “1xx” status codes per second. |
DEPENDENT | nginx.http.location_zones.responses.1xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 2xx, rate | The number of responses with “2xx” status codes per second. |
DEPENDENT | nginx.http.location_zones.responses.2xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 3xx, rate | The number of responses with “3xx” status codes per second. |
DEPENDENT | nginx.http.location_zones.responses.3xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 4xx, rate | The number of responses with “4xx” status codes per second. |
DEPENDENT | nginx.http.location_zones.responses.4xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 5xx, rate | The number of responses with “5xx” status codes per second. |
DEPENDENT | nginx.http.location_zones.responses.5xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
DEPENDENT | nginx.http.location_zones.responses.total.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
DEPENDENT | nginx.http.location_zones.discarded.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
DEPENDENT | nginx.http.location_zones.received.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
DEPENDENT | nginx.http.location_zones.sent.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#NAME}]: Keepalive | The current number of idle keepalive connections. |
DEPENDENT | nginx.http.upstreams.keepalive[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#NAME}]: Zombies | The current number of servers removed from the group but still processing active client requests. |
DEPENDENT | nginx.http.upstreams.zombies[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#NAME}]: Zone | The name of the shared memory zone that keeps the group's configuration and run-time state. |
DEPENDENT | nginx.http.upstreams.zone[{#NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: State | Current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
DEPENDENT | nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of active connections. |
DEPENDENT | nginx.http.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Requests, rate | The total number of client requests forwarded to this server per second. |
DEPENDENT | nginx.http.upstream.peer.requests.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 1xx, rate | The number of responses with “1xx” status codes per second. |
DEPENDENT | nginx.http.upstream.peer.responses.1xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 2xx, rate | The number of responses with “2xx” status codes per second. |
DEPENDENT | nginx.http.upstream.peer.responses.2xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 3xx, rate | The number of responses with “3xx” status codes per second. |
DEPENDENT | nginx.http.upstream.peer.responses.3xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 4xx, rate | The number of responses with “4xx” status codes per second. |
DEPENDENT | nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 5xx, rate | The number of responses with “5xx” status codes per second. |
DEPENDENT | nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses total, rate | The total number of responses obtained from this server. |
DEPENDENT | nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
DEPENDENT | nginx.http.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
DEPENDENT | nginx.http.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
DEPENDENT | nginx.http.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | How many times the server became unavailable for client requests (state “unavail”) due to the number of unsuccessful attempts reaching the max_fails threshold. |
DEPENDENT | nginx.http.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Header time | The average time to get the response header from the server. |
DEPENDENT | nginx.http.upstream.peer.header_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to get the full response from the server. |
DEPENDENT | nginx.http.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
DEPENDENT | nginx.http.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
DEPENDENT | nginx.http.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | How many times the server became unhealthy (state “unhealthy”). |
DEPENDENT | nginx.http.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream server zone [{#NAME}]: Processing | The number of client connections that are currently being processed. |
DEPENDENT | nginx.stream.server_zones.processing[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream server zone [{#NAME}]: Connections, rate | The total number of connections accepted from clients per second. |
DEPENDENT | nginx.stream.server_zones.connections.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions 2xx, rate | The total number of sessions completed with status codes “2xx” per second. |
DEPENDENT | nginx.stream.server_zones.sessions.2xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions 4xx, rate | The total number of sessions completed with status codes “4xx” per second. |
DEPENDENT | nginx.stream.server_zones.sessions.4xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions 5xx, rate | The total number of sessions completed with status codes “5xx” per second. |
DEPENDENT | nginx.stream.server_zones.sessions.5xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions total, rate | The total number of completed client sessions per second. |
DEPENDENT | nginx.stream.server_zones.sessions.total.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Discarded, rate | The total number of connections completed without creating a session per second. |
DEPENDENT | nginx.stream.server_zones.discarded.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
DEPENDENT | nginx.stream.server_zones.received.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
DEPENDENT | nginx.stream.server_zones.sent.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#NAME}]: Zombies | DEPENDENT | nginx.stream.upstreams.zombies[{#NAME}] Preprocessing: - JSONPATH: |
|
| Nginx | Nginx: Stream upstream [{#NAME}]: Zone | DEPENDENT | nginx.stream.upstreams.zone[{#NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
|
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: State | Current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
DEPENDENT | nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of connections. |
DEPENDENT | nginx.stream.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
DEPENDENT | nginx.stream.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
DEPENDENT | nginx.stream.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
DEPENDENT | nginx.stream.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | How many times the server became unavailable for client requests (state “unavail”) due to the number of unsuccessful attempts reaching the max_fails threshold. |
DEPENDENT | nginx.stream.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connections | The total number of client connections forwarded to this server. |
DEPENDENT | nginx.stream.upstream.peer.connections.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connect time | The average time to connect to the upstream server. |
DEPENDENT | nginx.stream.upstream.peer.connect_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: First byte time | The average time to receive the first byte of data. |
DEPENDENT | nginx.stream.upstream.peer.first_byte_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to receive the last byte of data. |
DEPENDENT | nginx.stream.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
DEPENDENT | nginx.stream.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
DEPENDENT | nginx.stream.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | How many times the server became unhealthy (state “unhealthy”). |
DEPENDENT | nginx.stream.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Resolver [{#NAME}]: Requests name, rate | The total number of requests to resolve names to addresses per second. |
DEPENDENT | nginx.resolvers.requests.name.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Requests srv, rate | The total number of requests to resolve SRV records per second. |
DEPENDENT | nginx.resolvers.requests.srv.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Requests addr, rate | The total number of requests to resolve addresses to names per second. |
DEPENDENT | nginx.resolvers.requests.addr.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses noerror, rate | The total number of successful responses per second. |
DEPENDENT | nginx.resolvers.responses.noerror.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses formerr, rate | The total number of FORMERR (Format error) responses per second. |
DEPENDENT | nginx.resolvers.responses.formerr.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses servfail, rate | The total number of SERVFAIL (Server failure) responses per second. |
DEPENDENT | nginx.resolvers.responses.servfail.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses nxdomain, rate | The total number of NXDOMAIN (Host not found) responses per second. |
DEPENDENT | nginx.resolvers.responses.nxdomain.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses notimp, rate | The total number of NOTIMP (Unimplemented) responses per second. |
DEPENDENT | nginx.resolvers.responses.notimp.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses refused, rate | The total number of REFUSED (Operation refused) responses per second. |
DEPENDENT | nginx.resolvers.responses.refused.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses timedout, rate | The total number of timed out requests per second. |
DEPENDENT | nginx.resolvers.responses.timedout.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses unknown, rate | The total number of requests completed with an unknown error per second. |
DEPENDENT | nginx.resolvers.responses.unknown.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Zabbix_raw_items | Nginx: Get info | Return status of nginx running instance. |
HTTP_AGENT | nginx.info |
| Zabbix_raw_items | Nginx: Get connections | Returns statistics of client connections. |
HTTP_AGENT | nginx.connections |
| Zabbix_raw_items | Nginx: Get SSL | Returns SSL statistics. |
HTTP_AGENT | nginx.ssl |
| Zabbix_raw_items | Nginx: Get requests | Returns status of client HTTP requests. |
HTTP_AGENT | nginx.requests |
| Zabbix_raw_items | Nginx: Get HTTP zones | Returns status information for each HTTP server zone. |
HTTP_AGENT | nginx.http.server_zones |
| Zabbix_raw_items | Nginx: Get HTTP location zones | Returns status information for each HTTP location zone. |
HTTP_AGENT | nginx.http.location_zones |
| Zabbix_raw_items | Nginx: Get HTTP upstreams | Returns status of each HTTP upstream server group and its servers. |
HTTP_AGENT | nginx.http.upstreams |
| Zabbix_raw_items | Nginx: Get Stream server zones | Returns status information for each stream server zone. |
HTTP_AGENT | nginx.stream.server_zones |
| Zabbix_raw_items | Nginx: Get Stream upstreams | Returns status of each stream upstream server group and its servers. |
HTTP_AGENT | nginx.stream.upstreams |
| Zabbix_raw_items | Nginx: Get resolvers | Returns status information for each resolver zone. |
HTTP_AGENT | nginx.resolvers |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Server response error (text: {ITEM.VALUE}) | - |
length(last(/Nginx Plus by HTTP/nginx.info.error))>0 |
HIGH | |
| Nginx: Version has changed (new version: {ITEM.VALUE}) | Nginx version has changed. Ack to close. |
last(/Nginx Plus by HTTP/nginx.info.version,#1)<>last(/Nginx Plus by HTTP/nginx.info.version,#2) and length(last(/Nginx Plus by HTTP/nginx.info.version))>0 |
INFO | Manual close: YES |
| Nginx: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/Nginx Plus by HTTP/nginx.info.uptime)<10m |
INFO | Manual close: YES |
| Nginx: Failed to fetch info data (or no data for 30m) | Zabbix has not received data for metrics for the last 30 minutes |
nodata(/Nginx Plus by HTTP/nginx.info.uptime,30m)=1 |
WARNING | Manual close: YES |
| Nginx: High connections drop rate (more than {$NGINX.DROP_RATE.MAX.WARN} for 5m) | The dropping rate connections is greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
min(/Nginx Plus by HTTP/nginx.connections.dropped,5m) > {$NGINX.DROP_RATE.MAX.WARN} |
WARNING | |
| Nginx: HTTP upstream server is not in UP or DOWN state. | - |
find(/Nginx Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/Nginx Plus by HTTP/nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
WARNING | |
| Nginx: Too many HTTP requests with code 4xx (over {$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN}% for 5m) | - |
sum(/Nginx Plus by HTTP/nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/Nginx Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN}/100)) |
WARNING | |
| Nginx: Too many HTTP requests with code 5xx (over {$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN}% for 5m) | - |
sum(/Nginx Plus by HTTP/nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}],5m) > (sum(/Nginx Plus by HTTP/nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}],5m)*({$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN}/100)) |
HIGH | |
| Nginx: Stream upstream server is not in UP or DOWN state. | - |
find(/Nginx Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","up")=0 and find(/Nginx Plus by HTTP/nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}],,"like","down")=0 |
WARNING |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/nginx_plus_http?at=release/5.0
For Zabbix version: 5.0 and higher
The template to monitor Nginx Plus by Zabbix that work without any external scripts.
Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
The live activity monitoring data is generated by the NGINX Plus API.
This template was tested on:
See Zabbix template operation for basic instructions.
<scheme>://<host>:<port>/<location>/.Note, depending on the number of zones and upstreams discovery operation may be expensive. Use filters with macros:
The live activity monitoring data is generated by the NGINX Plus API.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$NGINX.API.ENDPOINT} | NGINX Plus API URL in the format |
`` |
| {$NGINX.DROP_RATE.MAX.WARN} | The critical rate of the dropped connections for trigger expression. |
1 |
| {$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN} | Maximum percentage of errors with status code 4xx (for trigger expression). |
5 |
| {$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN} | Maximum percentage of errors with status code 4xx (for trigger expression). |
5 |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.MATCHES} | Filter of discoverable HTTP location zones |
.* |
| {$NGINX.LLD.FILTER.HTTP.LOCATION.ZONE.NOT_MATCHES} | Filter to exclude discovered HTTP location zones |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.MATCHES} | Filter of discoverable HTTP upstreams |
.* |
| {$NGINX.LLD.FILTER.HTTP.UPSTREAM.NOT_MATCHES} | Filter to exclude discovered HTTP upstreams |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.HTTP.ZONE.MATCHES} | Filter of discoverable HTTP server zones |
.* |
| {$NGINX.LLD.FILTER.HTTP.ZONE.NOT_MATCHES} | Filter to exclude discovered HTTP server zones |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.RESOLVER.MATCHES} | Filter of discoverable Resolvers |
.* |
| {$NGINX.LLD.FILTER.RESOLVER.NOT_MATCHES} | Filter to exclude discovered Resolvers |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.MATCHES} | Filter of discoverable Stream upstreams |
.* |
| {$NGINX.LLD.FILTER.STREAM.UPSTREAM.NOT_MATCHES} | Filter to exclude discovered Stream upstreams |
CHANGE_IF_NEEDED |
| {$NGINX.LLD.FILTER.STREAM.ZONE.MATCHES} | Filter of discoverable Stream server zones |
.* |
| {$NGINX.LLD.FILTER.STREAM.ZONE.NOT_MATCHES} | Filter to exclude discovered Stream server zones |
CHANGE_IF_NEEDED |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| HTTP server zones discovery | - |
DEPENDENT | nginx.http.server_zones.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- A: {#NAME} MATCHES_REGEX - B: {#NAME} NOT_MATCHES_REGEX |
| HTTP location zones discovery | - |
DEPENDENT | nginx.http.location_zones.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- A: {#NAME} MATCHES_REGEX - B: {#NAME} NOT_MATCHES_REGEX |
| HTTP upstreams discovery | - |
DEPENDENT | nginx.http.upstreams.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- A: {#NAME} MATCHES_REGEX - B: {#NAME} NOT_MATCHES_REGEX |
| HTTP upstream peers discovery | - |
DEPENDENT | nginx.http.upstream.peers.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- A: {#UPSTREAM} MATCHES_REGEX - B: {#UPSTREAM} NOT_MATCHES_REGEX |
| Stream server zones discovery | - |
DEPENDENT | nginx.stream.server_zones.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- A: {#NAME} MATCHES_REGEX - B: {#NAME} NOT_MATCHES_REGEX |
| Stream upstreams discovery | - |
DEPENDENT | nginx.stream.upstreams.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- A: {#NAME} MATCHES_REGEX - B: {#NAME} NOT_MATCHES_REGEX |
| Stream upstream peers discovery | - |
DEPENDENT | nginx.stream.upstream.peers.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- A: {#UPSTREAM} MATCHES_REGEX - B: {#UPSTREAM} NOT_MATCHES_REGEX |
| Resolvers discovery | - |
DEPENDENT | nginx.resolvers.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- A: {#NAME} MATCHES_REGEX - B: {#NAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Nginx | Nginx: Get info error | Nginx error description. |
DEPENDENT | nginx.info.error Preprocessing: - JSONPATH: ⛔️ON_FAIL: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Version | Version of nginx. |
DEPENDENT | nginx.info.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Address | The address of the server that accepted status request. |
DEPENDENT | nginx.info.address Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Generation | The total number of configuration reloads. |
DEPENDENT | nginx.info.generation Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Uptime | Server uptime. |
DEPENDENT | nginx.info.uptime Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JAVASCRIPT: |
| Nginx | Nginx: Connections accepted, rate | The total number of accepted client connections per second. |
DEPENDENT | nginx.connections.accepted.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Connections dropped | The total number of dropped client connections. |
DEPENDENT | nginx.connections.dropped Preprocessing: - JSONPATH: |
| Nginx | Nginx: Connections active | The current number of active client connections. |
DEPENDENT | nginx.connections.active Preprocessing: - JSONPATH: |
| Nginx | Nginx: Connections idle | The current number of idle client connections. |
DEPENDENT | nginx.connections.idle Preprocessing: - JSONPATH: |
| Nginx | Nginx: SSL handshakes, rate | The total number of successful SSL handshakes per second. |
DEPENDENT | nginx.ssl.handshakes.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: SSL handshakes failed, rate | The total number of failed SSL handshakes per second. |
DEPENDENT | nginx.ssl.handshakes_failed.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: SSL session reuses, rate | The total number of session reuses during SSL handshake per second. |
DEPENDENT | nginx.ssl.session_reuses.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Requests total, rate | The total number of client requests per second. |
DEPENDENT | nginx.requests.total.rate Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Requests current | The current number of client requests. |
DEPENDENT | nginx.requests.current Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Processing | The number of client requests that are currently being processed. |
DEPENDENT | nginx.http.server_zones.processing[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
DEPENDENT | nginx.http.server_zones.requests.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 1xx, rate | The number of responses with “1xx” status codes per second. |
DEPENDENT | nginx.http.server_zones.responses.1xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 2xx, rate | The number of responses with “2xx” status codes per second. |
DEPENDENT | nginx.http.server_zones.responses.2xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 3xx, rate | The number of responses with “3xx” status codes per second. |
DEPENDENT | nginx.http.server_zones.responses.3xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 4xx, rate | The number of responses with “4xx” status codes per second. |
DEPENDENT | nginx.http.server_zones.responses.4xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses 5xx, rate | The number of responses with “5xx” status codes per second. |
DEPENDENT | nginx.http.server_zones.responses.5xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
DEPENDENT | nginx.http.server_zones.responses.total.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
DEPENDENT | nginx.http.server_zones.discarded.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
DEPENDENT | nginx.http.server_zones.received.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
DEPENDENT | nginx.http.server_zones.sent.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Requests, rate | The total number of client requests received from clients per second. |
DEPENDENT | nginx.http.location_zones.requests.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 1xx, rate | The number of responses with “1xx” status codes per second. |
DEPENDENT | nginx.http.location_zones.responses.1xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 2xx, rate | The number of responses with “2xx” status codes per second. |
DEPENDENT | nginx.http.location_zones.responses.2xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 3xx, rate | The number of responses with “3xx” status codes per second. |
DEPENDENT | nginx.http.location_zones.responses.3xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 4xx, rate | The number of responses with “4xx” status codes per second. |
DEPENDENT | nginx.http.location_zones.responses.4xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses 5xx, rate | The number of responses with “5xx” status codes per second. |
DEPENDENT | nginx.http.location_zones.responses.5xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Responses total, rate | The total number of responses sent to clients per second. |
DEPENDENT | nginx.http.location_zones.responses.total.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Discarded, rate | The total number of requests completed without sending a response per second. |
DEPENDENT | nginx.http.location_zones.discarded.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
DEPENDENT | nginx.http.location_zones.received.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP location zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
DEPENDENT | nginx.http.location_zones.sent.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#NAME}]: Keepalive | The current number of idle keepalive connections. |
DEPENDENT | nginx.http.upstreams.keepalive[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#NAME}]: Zombies | The current number of servers removed from the group but still processing active client requests. |
DEPENDENT | nginx.http.upstreams.zombies[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#NAME}]: Zone | The name of the shared memory zone that keeps the group's configuration and run-time state. |
DEPENDENT | nginx.http.upstreams.zone[{#NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: State | Current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
DEPENDENT | nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of active connections. |
DEPENDENT | nginx.http.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Requests, rate | The total number of client requests forwarded to this server per second. |
DEPENDENT | nginx.http.upstream.peer.requests.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 1xx, rate | The number of responses with “1xx” status codes per second. |
DEPENDENT | nginx.http.upstream.peer.responses.1xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 2xx, rate | The number of responses with “2xx” status codes per second. |
DEPENDENT | nginx.http.upstream.peer.responses.2xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 3xx, rate | The number of responses with “3xx” status codes per second. |
DEPENDENT | nginx.http.upstream.peer.responses.3xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 4xx, rate | The number of responses with “4xx” status codes per second. |
DEPENDENT | nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses 5xx, rate | The number of responses with “5xx” status codes per second. |
DEPENDENT | nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Responses total, rate | The total number of responses obtained from this server. |
DEPENDENT | nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
DEPENDENT | nginx.http.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
DEPENDENT | nginx.http.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
DEPENDENT | nginx.http.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | How many times the server became unavailable for client requests (state “unavail”) due to the number of unsuccessful attempts reaching the max_fails threshold. |
DEPENDENT | nginx.http.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Header time | The average time to get the response header from the server. |
DEPENDENT | nginx.http.upstream.peer.header_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to get the full response from the server. |
DEPENDENT | nginx.http.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
DEPENDENT | nginx.http.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
DEPENDENT | nginx.http.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: HTTP upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | How many times the server became unhealthy (state “unhealthy”). |
DEPENDENT | nginx.http.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream server zone [{#NAME}]: Processing | The number of client connections that are currently being processed. |
DEPENDENT | nginx.stream.server_zones.processing[{#NAME}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream server zone [{#NAME}]: Connections, rate | The total number of connections accepted from clients per second. |
DEPENDENT | nginx.stream.server_zones.connections.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions 2xx, rate | The total number of sessions completed with status codes “2xx” per second. |
DEPENDENT | nginx.stream.server_zones.sessions.2xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions 4xx, rate | The total number of sessions completed with status codes “4xx” per second. |
DEPENDENT | nginx.stream.server_zones.sessions.4xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions 5xx, rate | The total number of sessions completed with status codes “5xx” per second. |
DEPENDENT | nginx.stream.server_zones.sessions.5xx.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sessions total, rate | The total number of completed client sessions per second. |
DEPENDENT | nginx.stream.server_zones.sessions.total.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Discarded, rate | The total number of connections completed without creating a session per second. |
DEPENDENT | nginx.stream.server_zones.discarded.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Received, rate | The total number of bytes received from clients per second. |
DEPENDENT | nginx.stream.server_zones.received.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream server zone [{#NAME}]: Sent, rate | The total number of bytes sent to clients per second. |
DEPENDENT | nginx.stream.server_zones.sent.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#NAME}]: Zombies | DEPENDENT | nginx.stream.upstreams.zombies[{#NAME}] Preprocessing: - JSONPATH: |
|
| Nginx | Nginx: Stream upstream [{#NAME}]: Zone | DEPENDENT | nginx.stream.upstreams.zone[{#NAME}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
|
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: State | Current state, which may be one of “up”, “draining”, “down”, “unavail”, “checking”, and “unhealthy”. |
DEPENDENT | nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Active | The current number of connections. |
DEPENDENT | nginx.stream.upstream.peer.active[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Sent, rate | The total number of bytes sent to this server per second. |
DEPENDENT | nginx.stream.upstream.peer.sent.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Received, rate | The total number of bytes received from this server per second. |
DEPENDENT | nginx.stream.upstream.peer.received.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Fails, rate | The total number of unsuccessful attempts to communicate with the server per second. |
DEPENDENT | nginx.stream.upstream.peer.fails.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Unavail | How many times the server became unavailable for client requests (state “unavail”) due to the number of unsuccessful attempts reaching the max_fails threshold. |
DEPENDENT | nginx.stream.upstream.peer.unavail.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connections | The total number of client connections forwarded to this server. |
DEPENDENT | nginx.stream.upstream.peer.connections.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Connect time | The average time to connect to the upstream server. |
DEPENDENT | nginx.stream.upstream.peer.connect_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: First byte time | The average time to receive the first byte of data. |
DEPENDENT | nginx.stream.upstream.peer.first_byte_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Response time | The average time to receive the last byte of data. |
DEPENDENT | nginx.stream.upstream.peer.response_time.rate[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, check | The total number of health check requests made. |
DEPENDENT | nginx.stream.upstream.peer.health_checks.checks[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, fails | The number of failed health checks. |
DEPENDENT | nginx.stream.upstream.peer.health_checks.fails[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Stream upstream [{#UPSTREAM}] peer [{#PEER}]: Health checks, unhealthy | How many times the server became unhealthy (state “unhealthy”). |
DEPENDENT | nginx.stream.upstream.peer.health_checks.unhealthy[{#UPSTREAM},{#PEER}] Preprocessing: - JSONPATH: |
| Nginx | Nginx: Resolver [{#NAME}]: Requests name, rate | The total number of requests to resolve names to addresses per second. |
DEPENDENT | nginx.resolvers.requests.name.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Requests srv, rate | The total number of requests to resolve SRV records per second. |
DEPENDENT | nginx.resolvers.requests.srv.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Requests addr, rate | The total number of requests to resolve addresses to names per second. |
DEPENDENT | nginx.resolvers.requests.addr.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses noerror, rate | The total number of successful responses per second. |
DEPENDENT | nginx.resolvers.responses.noerror.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses formerr, rate | The total number of FORMERR (Format error) responses per second. |
DEPENDENT | nginx.resolvers.responses.formerr.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses servfail, rate | The total number of SERVFAIL (Server failure) responses per second. |
DEPENDENT | nginx.resolvers.responses.servfail.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses nxdomain, rate | The total number of NXDOMAIN (Host not found) responses per second. |
DEPENDENT | nginx.resolvers.responses.nxdomain.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses notimp, rate | The total number of NOTIMP (Unimplemented) responses per second. |
DEPENDENT | nginx.resolvers.responses.notimp.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses refused, rate | The total number of REFUSED (Operation refused) responses per second. |
DEPENDENT | nginx.resolvers.responses.refused.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses timedout, rate | The total number of timed out requests per second. |
DEPENDENT | nginx.resolvers.responses.timedout.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Nginx | Nginx: Resolver [{#NAME}]: Responses unknown, rate | The total number of requests completed with an unknown error per second. |
DEPENDENT | nginx.resolvers.responses.unknown.rate[{#NAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Zabbix_raw_items | Nginx: Get info | Return status of nginx running instance. |
HTTP_AGENT | nginx.info |
| Zabbix_raw_items | Nginx: Get connections | Returns statistics of client connections. |
HTTP_AGENT | nginx.connections |
| Zabbix_raw_items | Nginx: Get SSL | Returns SSL statistics. |
HTTP_AGENT | nginx.ssl |
| Zabbix_raw_items | Nginx: Get requests | Returns status of client HTTP requests. |
HTTP_AGENT | nginx.requests |
| Zabbix_raw_items | Nginx: Get HTTP zones | Returns status information for each HTTP server zone. |
HTTP_AGENT | nginx.http.server_zones |
| Zabbix_raw_items | Nginx: Get HTTP location zones | Returns status information for each HTTP location zone. |
HTTP_AGENT | nginx.http.location_zones |
| Zabbix_raw_items | Nginx: Get HTTP upstreams | Returns status of each HTTP upstream server group and its servers. |
HTTP_AGENT | nginx.http.upstreams |
| Zabbix_raw_items | Nginx: Get Stream server zones | Returns status information for each stream server zone. |
HTTP_AGENT | nginx.stream.server_zones |
| Zabbix_raw_items | Nginx: Get Stream upstreams | Returns status of each stream upstream server group and its servers. |
HTTP_AGENT | nginx.stream.upstreams |
| Zabbix_raw_items | Nginx: Get resolvers | Returns status information for each resolver zone. |
HTTP_AGENT | nginx.resolvers |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Nginx: Server response error (text: {ITEM.VALUE}) | - |
{TEMPLATE_NAME:nginx.info.error.strlen()}>0 |
HIGH | |
| Nginx: Version has changed (new version: {ITEM.VALUE}) | Nginx version has changed. Ack to close. |
{TEMPLATE_NAME:nginx.info.version.diff()}=1 and {TEMPLATE_NAME:nginx.info.version.strlen()}>0 |
INFO | Manual close: YES |
| Nginx: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
{TEMPLATE_NAME:nginx.info.uptime.last()}<10m |
INFO | Manual close: YES |
| Nginx: Failed to fetch info data (or no data for 30m) | Zabbix has not received data for metrics for the last 30 minutes |
{TEMPLATE_NAME:nginx.info.uptime.nodata(30m)}=1 |
WARNING | Manual close: YES |
| Nginx: High connections drop rate (more than {$NGINX.DROP_RATE.MAX.WARN} for 5m) | The dropping rate connections is greater than {$NGINX.DROP_RATE.MAX.WARN} for the last 5 minutes. |
{TEMPLATE_NAME:nginx.connections.dropped.min(5m)} > {$NGINX.DROP_RATE.MAX.WARN} |
WARNING | |
| Nginx: HTTP upstream server is not in UP or DOWN state. | - |
{TEMPLATE_NAME:nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}].str(up)}=0 and {TEMPLATE_NAME:nginx.http.upstream.peer.state[{#UPSTREAM},{#PEER}].str(down)}=0 |
WARNING | |
| Nginx: Too many HTTP requests with code 4xx (over {$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN}% for 5m) | - |
{TEMPLATE_NAME:nginx.http.upstream.peer.responses.4xx.rate[{#UPSTREAM},{#PEER}].sum(5m)} > ({TEMPLATE_NAME:nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}].sum(5m)}*({$NGINX.HTTP.UPSTREAM.4XX.MAX.WARN}/100)) |
WARNING | |
| Nginx: Too many HTTP requests with code 5xx (over {$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN}% for 5m) | - |
{TEMPLATE_NAME:nginx.http.upstream.peer.responses.5xx.rate[{#UPSTREAM},{#PEER}].sum(5m)} > ({TEMPLATE_NAME:nginx.http.upstream.peer.responses.total.rate[{#UPSTREAM},{#PEER}].sum(5m)}*({$NGINX.HTTP.UPSTREAM.5XX.MAX.WARN}/100)) |
HIGH | |
| Nginx: Stream upstream server is not in UP or DOWN state. | - |
{TEMPLATE_NAME:nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}].str(up)}=0 and {TEMPLATE_NAME:nginx.stream.upstream.peer.state[{#UPSTREAM},{#PEER}].str(down)}=0 |
WARNING |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
| Link | Source | Compatibility | Type, Technology | Created Updated | Rating |
|---|---|---|---|---|---|
| Template App Nginx for Zabbix 4.0 that works without any external scripts You can poll Nginx using Zabbix agent locally(Template App Nginx Zabbix agent) or poll it directly from Zabbix server/proxy(Template App Nginx HTTP). Choose Template that better suits you. Tune URL with user macros if required. github.com/v-zhuravlev/zbx_template_nginx |
GitHub |
4.0 |
Template |
2018-05-18 3 y |
Recommended
|
| App Nginx Plus template_nginx_plus |
GitHub Community Templates |
5.0+ |
| ||
| Nginx template_zabbix_4.0_nginx_monitoring |
GitHub Community Templates |
5.0+ |
| ||
| NGINX_http_agent Nginx template based on http agentNginx configuration example:server {listen 0.0.0.0:8080;server_name status.localhost;keepalive_timeout 0;allow 127.0.0.1;allow 192.168.11.254;deny all;location /server-status {stub_status on;}access_log off;}P.S. item "Number of nginx running" using zabbix agent (active), ... template_nginx_for_zabbix_4.0 |
GitHub Community Templates |
5.0+ |
| ||
| App Nginx by Alex Gluck template_nginx_for_zabbix_3.4.x |
GitHub Community Templates |
5.0+ |
| ||
| App Nginx by Alex Gluck template_app_nginx_for_zabbix_3.4.x |
GitHub Community Templates |
5.0+ |
| ||
| App PHP-FPM English description - https://github.com/tonymadbrain/fcgi_stat_getter/blob/master/README.mdСкрипт для получения статистики из PHP-FPM, который можно использовать в Zabbix. Реализация на Go вот этого скрипта - http://doam.ru/fcgi_monitoring_with_zabbix/.go version go1.7.4 darwin/amd64 template_fcgi_stat_getter._monitor_php-fpm_without_nginx_proxy |
GitHub Community Templates |
5.0+ |
| ||
| Nginx状态zabbix监控 github.com/mjwtc0722/zabbix-nginx-status [cn] |
GitHub |
Shell |
2017-01-13 4 y |
||
| Template with script for monitoring Nginx Nginx monitoring by userparameter scripts. Good for versions prior Zabbix 4.0 github.com/hellsman/zabbix-nginx [ru] |
GitHub |
Template, Script Bash |
2015-09-08 7 y |
||
| Template with script for monitoring Nginx-plus Nginx plus monitoring, Good for versions prior Zabbix 4.0 github.com/strannick-ru/nginx-plus-zabbix [ru] |
GitHub |
Template, Script Python |
2017-06-15 6 y |
||
|
github.com/scoopex/zabbix-agent-extensions |
GitHub |
Template Python |