目 录CONTENT

文章目录

Nginx监控

简中仙
2022-09-07 / 0 评论 / 0 点赞 / 29 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2023-10-07,若内容或图片失效,请留言反馈。 本文如有错误或者侵权的地方,欢迎您批评指正!

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; 
    } 
}
0

评论区