Nginx|vts模块究竟是什么东西?
上篇主要讲,稀里胡涂的顺道把vts和sts也带上了.这两个东东是啥东西呢?今天就来讲讲
vts学名:Nginx virtual host traffic status module.也就是nginx虚拟主机流量状态监控模块.会记录从nginx重启以来,所有的nginx的请求情况.
如上图.可以说是网站请求分析最简单的方法了.
怎么配置呢?
http {#首先http全局启用此模块vhost_traffic_status_zone;...server {...#然后找个虚拟主机弄个路径,方便查看location /status {vhost_traffic_status_display;vhost_traffic_status_display_format html;}}}
nginx reload一下,正常情况下访问,你的server所在的虚拟主机应该可以看到之前的截图了.
不过会有个问题,你当前访问的路径每秒钟刷新一次,你看到的Total因为你的页面自动刷新在不停的+1.怎么解决呢?可以设置指定的路径或主机vhost_traffic_status off.
server {...#然后找个虚拟主机弄个路径,方便查看location /status {vhost_traffic_status off;vhost_traffic_status_display;vhost_traffic_status_display_format html;}}
那个新的问题来了:我是可以访问,那么其它人也可以随意访问了,怎么办呢?可以添加basic_auth认证或cas认证或者最简单的限制指定的IP可以访问.
server {...#然后找个虚拟主机弄个路径,方便查看location /status {allow 111.197.252.173;deny all;vhost_traffic_status off;vhost_traffic_status_display;vhost_traffic_status_display_format html;}}
这个时候111.197.252.173可以正常访问,其它ip,只能403 Forbidden了
简单的演示到这里基本就结束了,但是有了数据不采集,不符合现代化运维管理精神啊.接下来简单说说怎样通过promethous采集.
用到的采集端:nginx-vts-exporter
直接docker运行了
docker run -dt \--name nginx-vts-exporter \--restart=always \--env NGINX_STATUS="http://localhost/status/format/json" \-p 9913:9913 \sophos/nginx-vts-exporter
注意:NGINX_STATUS变量的配置,如果启用了ip白名单访问,记得允许127.0.0.1
Promethous配置
job_name: nginx-stsscrape_interval: 5sscrape_timeout: 5smetrics_path: /metricsstatic_configs:targets:192.168.1.18:9913labels:group: bloginstance: blog-01
Granfa直接导入 2949就可以了
https://grafana.com/grafana/dashboards/2949
that's all
