Nginx生命活动监控

  • 来源:新网
  • 更新日期:2018-04-18

摘要:Nginx提供实时生命监控界面显示你的服务器设施的关键负载和性能指标。这些指标可以只在仪表盘或作为RESTful JSON界面代表和第三方监控工具连接。

1关于生命活动监控

Nginx提供实时生命监控界面显示你的服务器设施的关键负载和性能指标。这些指标可以只在仪表盘或作为RESTful JSON界面代表和第三方监控工具连接。

指标包括来自HTTP和TCP upstream服务器的数据和其它数据,包括:

Nginx版本、uptime和标识符信息

总连接数和请求数

每个status_zone请求和响应计数

Upstream服务器组中的每个服务器的请求和响应计数,加健康检查和uptime统计

每台服务器的统计,包括它的当前状态和总值(总失败数,等)

每个命名的缓存区域仪表盘

t01bba0a803ffbde871.jpg

2配置Nginx

首先,你需要在Nginx配置中启用收集统计。然后你能配置服务器区域、健康检查、缓存和其它出现在统计中的数据。

2.1启用生命活动监控

为了启用仪表盘和JSON界面,打开Nginx配置文件并执行以下步骤:

在http上下文中,指定server块负责收集统计:

http {

server {

 

}

}

指定IP地址和/或端口号,状态页将被启用,使用listen指令,例如,8080.如果Nginx监听多个IP,你能限制状态页到单个IP:

http {

server {

listen 192.168.1.23:8080;

...

}

}

指定location检查准确的URI匹配/status包含status指令:

http {

server {

listen 192.168.1.23:8080;

...

 

location /status {

status;

...

}

}

}

指定一个location启用仪表盘:/status.html。仪表盘默认位于跟目录(例如,/usr/share/nginx/html)指定root指令:

http {

server {

listen 192.168.1.23:8080;

root /usr/share/nginx/html;

 

location /status {

status;

...

}

 

location = /status.html {

}

}

}

限制访问你的统计:

http {

server {

listen 192.168.1.23:8080;

root /usr/share/nginx/html;

 

location /status {

status;

allow 192.168.1.0/32;

deny all;

}

 

location = /status.html {

}

}

}

2.2添加更多统计数据

你能收集几乎所有的Nginx统计数据,包括分开虚拟主机、upstream服务器组、缓存区域。在这种情况下,你需要执行一些额外的安装步骤。例如,收集虚拟主机和upstream组的统计信息需要共享内存区域存储配置和运行时状态信息:

为了使HTTP和TCP服务器显示统计,指定status_zone指令。相同的区域名可以指定在多个server块中,因此这些主机的统计聚合在仪表盘中:

server {

...

status_zone status_page;

location / {

proxy_pass http://backend;

}

}

为了让upstream服务器组出现在统计中,在每个upstream块中指定zone指令:

upstream backend {

zone backend 64k;

server backend1.example.com;

server backend2.example.com;

}

为了让健康检查出现在统计中,确保健康检查被配置。

server {

...

status_zone status_page;

location / {

proxy_pass http://backend;

health_check;

}

}

为了让缓存出现在统计中,确保缓存在配置中启用。

http {

...

proxy_cache_path /data/nginx/cache keys_zone=one:10m;

}

为了能直接从仪表盘添加新upstream服务器或修改已存在的upstream服务器,启用upstream_conf处理器在单个location中

server {

...

location /upstream_conf {

upstream_conf;

allow 92.168.1.0/32;

deny all;

}

}

当完成时,保存并推出配置文件

测试配置并重新加载Nginx

sudo nginx -t && sudo nginx -s reload