1、Nginx连接状态监控
模块:ngx_http_stub_status_module
可用于获取Nginx运行时客户端连接各种状态的计数器数据。该模块需要在编译时添加--with-http_stub_status_module来启用
2、HTTP主机状态监控
模块:nginx-module-vts
该模块覆盖了对主机连接数、HTTP请求、缓存及upstream等状态数据的监控
模块编译
git clone https://github.com/vozlt/nginx-module-vts.git
./configure --add-module=../nginx-module-vts
全局vts配置
vhost_traffic_status_zone; # 主机状态监控共享内存
vhost_traffic_status_filter_by_host on; # 启用以server_name的主机名为关键字
# 进行过滤统计
vhost_traffic_status_display_sum_key all_zone; # 将serverZones显示区域下总计条目的
# 显示名称设置为all_zone
vhost_traffic_status_dump /tmp/vts.db; # 主机状态监控数据存储在/tmp/vts.db中
server {
listen 8080; # 用于查看监控页的监听端口
access_log off;
vhost_traffic_status off; # 关闭当前站点的监控统计
location /vts {
vhost_traffic_status_display; # 启用主机状态监控数据输出功能
vhost_traffic_status_display_format html; # 主机状态监控数据输出格式为html
allow 127.0.0.0/8;
allow 10.0.0.0/8;
allow 192.168.0.0/16;
deny all;
}
}
按照uri关键字进行过滤统计,可以显示对应主机每条URL的请求统计数据。
server {
listen 8002;
server_name locahost www.nginxbar.org;
root /opt/nginx-web;
default_type text/xml;
# 按照URI进行过滤统计
vhost_traffic_status_filter_by_set_key $uri uri;
}
3、TCP/UDP主机状态监控
模块:nginx-module-stream-sts
由于Nginx stream模块的特性,TCP/UDP服务的状态数据仅在日志处理阶段才会被统计计算。
模块编译
git clone https://github.com/vozlt/nginx-module-sts.git
git clone https://github.com/vozlt/nginx-module-stream-sts.git
./configure --add-module=../nginx-module-sts --add-module=../nginx-module-stream-sts
TCP/UDP主机状态监控配置
TCP/UDP主机监控状态页需要配置在http指令域中。
http {
stream_server_traffic_status_zone; # 启用stream主机状态监控,并使用默认共享内存配置
server {
listen 8080; # 用于查看监控页的监听端口
access_log off;
location /sts {
stream_server_traffic_status_display; # 启用stream主机状态监控数据输出
#stream主机状态监控数据输出格式为html
stream_server_traffic_status_display_format html;
allow 127.0.0.0/8;
allow 10.0.0.0/8;
allow 192.168.0.0/16;
deny all;
}
}
}
在stream指令域配置全局启用stream主机状态监控功能。
stream {
server_traffic_status_zone; # 启用stream主机状态监控,并使用默认
# 共享内存配置
upstream redis {
server 192.168.2.100:6379;
}
server {
listen 6379 ;
proxy_bind $remote_addr transparent;
proxy_pass redis;
proxy_connect_timeout 5s;
access_log logs/redis_access.log tcp;
}
}
评论区