157 lines
6.2 KiB
Markdown
157 lines
6.2 KiB
Markdown
---
|
||
id: nginx
|
||
title: Monitoring Nginx
|
||
sidebar_label: Nginx Monitor
|
||
keywords: [open source monitoring tool, open source java monitoring tool, monitoring nginx metrics]
|
||
---
|
||
|
||
> Collect and monitor the general performance Metrics of Nginx.
|
||
|
||
**Protocol Use:Nginx**
|
||
|
||
## Need Enable `ngx_http_stub_status_module` And `ngx_http_reqstat_module` Module
|
||
|
||
If you want to monitor information in 'Nginx' with this monitoring type, you need to modify your nginx configure file for enable the module monitor.
|
||
|
||
### Enable `ngx_http_stub_status_module`
|
||
|
||
1. Check if `ngx_http_stub_status_module` has been added
|
||
|
||
```shell
|
||
nginx -V
|
||
```
|
||
|
||
View whether it contains `--with-http_stub_status_module`, if not, you need to recompile and install Nginx.
|
||
|
||
2. Compile and install Nginx, add `ngx_http_stub_status_module` module
|
||
|
||
Download Nginx and unzip it, execute the following command in the directory
|
||
|
||
```shell
|
||
|
||
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
|
||
|
||
make && make install
|
||
```
|
||
|
||
3. Modify Nginx configure file
|
||
|
||
Modify the `nginx.conf` file and add the monitoring module exposed endpoint, as follows:
|
||
|
||
```shell
|
||
# modify nginx.conf
|
||
server {
|
||
listen 80; # port
|
||
server_name localhost;
|
||
location /nginx-status {
|
||
stub_status on;
|
||
access_log on;
|
||
#allow 127.0.0.1; #only allow requests from localhost
|
||
#deny all; #deny all other hosts
|
||
}
|
||
}
|
||
```
|
||
|
||
4. Reload Nginx
|
||
|
||
```shell
|
||
|
||
nginx -s reload
|
||
```
|
||
|
||
5. Access `http://localhost/nginx-status` in the browser to view the Nginx monitoring status information.
|
||
|
||
### Enable `ngx_http_reqstat_module`
|
||
|
||
1. Install `ngx_http_reqstat_module`
|
||
|
||
```shell
|
||
# install `ngx_http_reqstat_module`
|
||
wget https://github.com/zls0424/ngx_req_status/archive/master.zip -O ngx_req_status.zip
|
||
|
||
unzip ngx_req_status.zip
|
||
|
||
patch -p1 < ../ngx_req_status-master/write_filter.patch
|
||
|
||
./configure --prefix=/usr/local/nginx --add-module=/path/to/ngx_req_status-master
|
||
|
||
make -j2
|
||
|
||
make install
|
||
```
|
||
|
||
2. Modify Nginx configure file
|
||
|
||
update `nginx.conf` file, add status module exposed endpoint, as follows:
|
||
|
||
```shell
|
||
# modify nginx.conf
|
||
http {
|
||
req_status_zone server_name $server_name 256k;
|
||
req_status_zone server_addr $server_addr 256k;
|
||
|
||
req_status server_name server_addr;
|
||
|
||
server {
|
||
location /req-status {
|
||
req_status_show on;
|
||
#allow 127.0.0.1; #only allow requests from localhost
|
||
#deny all; #deny all other hosts
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
3. Reload Nginx
|
||
|
||
```shell
|
||
|
||
nginx -s reload
|
||
```
|
||
|
||
4. Access `http://localhost/req-status` in the browser to view the Nginx monitoring status information.
|
||
|
||
**Refer Doc: [https://github.com/zls0424/ngx_req_status](https://github.com/zls0424/ngx_req_status)**
|
||
|
||
**⚠️Attention: The endpoint path of the monitoring module is `/nginx-status` `/req-status`**
|
||
|
||
### Configuration parameter
|
||
|
||
| Parameter name | Parameter help description |
|
||
|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||
| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) |
|
||
| Monitoring name | Identify the name of this monitoring. The name needs to be unique |
|
||
| Port | Port provided by Nginx |
|
||
| Timeout | Allow collection response time |
|
||
| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds |
|
||
| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful |
|
||
| Description remarks | For more information about identifying and describing this monitoring, users can note information here |
|
||
|
||
### Collection Metrics
|
||
|
||
#### Metrics Set:nginx_status
|
||
|
||
| Metric name | Metric unit | Metric help description |
|
||
|-------------|-------------|-----------------------------------------|
|
||
| accepts | | Accepted connections |
|
||
| handled | | Successfully processed connections |
|
||
| active | | Currently active connections |
|
||
| dropped | | Discarded connections |
|
||
| requests | | Client requests |
|
||
| reading | | Connections performing read operations |
|
||
| writing | | Connections performing write operations |
|
||
| waiting | | Waiting connections |
|
||
|
||
#### Metrics Set:req_status
|
||
|
||
| Metric name | Metric unit | Metric help description |
|
||
|-------------|-------------|--------------------------------|
|
||
| zone_name | | Group category |
|
||
| key | | Group name |
|
||
| max_active | | Maximum concurrent connections |
|
||
| max_bw | kb | Maximum bandwidth |
|
||
| traffic | kb | Total traffic |
|
||
| requests | | Total requests |
|
||
| active | | Current concurrent connections |
|
||
| bandwidth | kb | Current bandwidth |
|