前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx如何监控各server的流量

Nginx如何监控各server的流量

作者头像
李俊鹏
发布2020-07-02 14:46:47
4.5K0
发布2020-07-02 14:46:47
举报
文章被收录于专栏:运维研习社运维研习社

nginx中,ngx_http_status_module(在1.13之前)或ngx_http_api_module中提供了丰富的nginx状态信息,可以作为nginx监控数据,可以更全面的监控nginx,但这两个模块都是收费版本的

而在开源版本中,就只能通过stub_status模块来查看nginx状态信息,如图:

这信息太少了,作为做常用的web中间件,这点信息显然不够

今天介绍一个第三方模块——ninx-module-vts,仓库地址:https://github.com/vozlt/nginx-module-vts

该模块是一个nginx的监控模块,能够提供json、html、prometheus格式的数据输出,虽然已经两年没有更新维护过了,但我在nginx1.16仍能编译成功

首先clone源码

接着在nginx源码包中添加动态模块

接着安装模块

安装完成,在objs目录下生成了库文件

将库文件复制到nginx的modules目录下,在nginx配置文件中通过load_module加载该模块

模块添加完之后,就可以享受商业版status模块(api模块)的待遇了,先来看下最基本的状态信息

上图就是html格式的状态信息,动态显示,每秒刷新一次,只需要如下配置

在http模块中添加vhost_traffic_status_zone

接着在vhost中添加status的location

如果是zabix监控采集数据,可以用json格式

如果是prometheus,可以直接用prometheus的格式输出

除了可以提供各种格式的数据输出,它最香的就是可以监控各vhost的流量

通常一个nginx的web服务中,会包含多个server,但是通常监控的流量都是服务器总的流量,目前我只能通过分析日志来进行访问量统计,找到流量大的server(如果有其他方式,请留言指教)

那么有这个nginx监控模块之后,各个server的流量,一览无余

复制一份刚才的配置,添加一个server

访问一下之后,查看状态页面

可以看到server zones统计中,每个server的信息分别详细展示

除了server分别统计外,各个upstream也可以分别统计,这样我们可以很方便的查看nginx转发到upstream的流量,结合监控可以实现动态调整后端权重或者流量

不得不说,这才是我要的nginx监控,如果也是你想要的,点个在看吧!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档