使用nginx-module-vts监控各虚拟主机的流量-程序员宅基地

一、概述

由于所有业务只有一个公网IP入口,无法统计到每个业务的流量带宽,好在nginx上通过域名进行业务区分,可以借助nginx-module-vts模块来实现需求。
本文将主要用到以下几个模块和工具:
nginx-module-vts: Nginx virtual host traffic status module,nginx的监控模块,能够提供json、html、prometheus格式的数据产出。
nginx-vts-exporter: Simple server that scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。主要用于收集nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。
Prometheus: 监控nginx-vts-exporter提供的nginx数据,并存储在时序数据库中,可以使用PromQL对时序数据进行查询和聚合。
Grafana: 可视化监控数据展示工具

 

二、基于docker方式部署

由于yum安装的nginx,默认是没有nginx-module-vts模块的。需要下载对应的nginx源码,进行重新编译才行。

为了快速演示,dockerhub已经有镜像了,包括nginx和nginx-module-vts模块

https://hub.docker.com/r/gaciaga/nginx-vts

 

环境介绍

本文采用一台服务器,来演示。

 

操作系统:centos 7.6

docker版本:19.03.8

ip地址:192.168.31.150

容器列表:prometheus,grafana,nginx-vts,nginx-vts-exporter

 

关于基于docker方式搭建prometheus+grafana,请参考链接:

https://www.cnblogs.com/xiao987334176/p/9930517.html

 

nginx-vts

nginx的监控模块,能够提供json、html、prometheus格式的数据产出。

 

下载镜像

docker pull gaciaga/nginx-vts

 

运行镜像

docker run -d -it -p 80:80 gaciaga/nginx-vts:latest

注意:此镜像,默认已经开启了status

 

访问status页面

http://192.168.31.150/status

效果如下:

 

 

nginx-vts-exporter

主要用于收集nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。

 

下载镜像

docker pull sophos/nginx-vts-exporter

 

运行镜像

docker run -d -it -e NGINX_STATUS="http://192.168.31.150/status/format/json" -p 9913:9913 sophos/nginx-vts-exporter

注意:请根据实际情况修改NGINX_STATUS变量,确保能正常访问。

 

访问metrics

http://192.168.31.150:9913/metrics

效果如下:

 

 

三、Prometheus配置

修改prometheus.yml,最后一行添加

  - job_name: nginx-vts
    static_configs:
      - targets: ['192.168.31.150:9913']
        labels:
          instance: localhost

 

重启prometheus

docker restart prometheus

 

查看targets

http://192.168.31.150:9090/targets

效果如下:

 

 确保状态为UP

 

四、Grafana配置

导入nginx vts模板

访问地址

https://grafana.com/grafana/dashboards/2949/revisions

点击Download,下载json文件

 

导入json文件

 

 

 效果如下:

 

 

 

本文参考链接:

https://www.cnblogs.com/91donkey/p/11643558.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shykevin/article/details/106067855

智能推荐

单片机双字节数乘法运算实验_MSP430系列单片机特性及应用领域-程序员宅基地

文章浏览阅读273次。概述  MSP430系列单片机是德州仪器1996年开始推向市场的一种16位超低功耗的混合信号处理器,给人们留下的最大的亮点是低功耗而且速度快,汇编语言用起来很灵活,寻址方式很多,指令很少,容易上手。主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。其迅速发展和应用范围的不断扩大,主要取决于以下的特点:特性1、强大的处理能力,采用了精简指令集(...

【Android开发--新手必看篇】GridView 网格视图_调整verticalgridview之间的间隔-程序员宅基地

文章浏览阅读189次。Android笔记​ ——高级控件之GridView【若对该知识点有更多想了解的,欢迎私信博主~~】GridView一:使用​ 在Activity布局文件中放置GridView控件<?xml version="1.0" encoding="utf-8"?><LinearLayout ="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.andr_调整verticalgridview之间的间隔

Netty学习笔记五:Netty源码分析_netty 源码学习-程序员宅基地

文章浏览阅读322次。Netty学习笔记五:Netty源码分析EventLoop和EventLoopGroup线程模型高性能RPC框架3个要素一、IO模型(五种IO模型)二、数据协议(http/protobuf/Thrift)三、线程模型(主从线程组模型)EventLoopEventLoop好比一个线程,1个EventLoop可以服务多个Channel,一个Channel只有一个EventL..._netty 源码学习

Kyligence 发布数据和分析领域垂直大模型司南(Compass)_司南模型怎么测试-程序员宅基地

文章浏览阅读140次。12 月 19 日,跬智信息(Kyligence)正式发布数据和分析领域垂直大模型司南(Compass)(以下简称“司南大模型”)。基于多年数据和分析领域的实践积累和全行业指标洞察的海量语料,Kyligence司南大模型已具备自然语言对话分析、指标搜索与推荐、自动化数据洞察、KPI 评估、智能决策建议等核心能力。_司南模型怎么测试

MySQL数据库Insert语句慢SQL处理-程序员宅基地

文章浏览阅读3.8k次。#问题描述insert into …普通的插入语句,经常出现耗时2s以上#数据状态1.表数据量大,每天产生200万条数据2.高并发插入#问题解决1.由于表中数据量庞大,建议数据归档处理,冷热处理2.表中有过多索引,当数据insert时,索引会重排产生太多的io操作。导致缓慢,有必然要的只保留主键。3.表的数据库引擎,默认InnerDB,若数据不重要,可以使用MyISAM......

EasyDarwin开源流媒体云平台之EasyRMS录播服务器功能设计_开源录播系统-程序员宅基地

文章浏览阅读3.6k次。需求背景EasyDarwin开发团队维护EasyDarwin开源流媒体服务器也已经很多年了,之前也陆陆续续尝试过很多种服务端录像的方案,有:在EasyDarwin中直接解析收到的RTP包,重新组包录像;也有:在EasyDarwin中新增一个RecordModule,再以RTSPClient的方式请求127.0.0.1自己的直播流录像,但这些始终都没有成气候;我们的想法是能够让整套EasyDarwin_开源录播系统

随便推点

http作业

(1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于。可以访问网站内容为 welcome to openlab!(2)访问缴费网站实现数据加密基于https访问。综合练习:请给openlab搭建web网站。

KVstore :键值映射存储服务器

使用hash表实现存储服务kvstore

java-php-python-ssm社区志愿者服务管理系统计算机毕业设计_社区 志愿服务系统源码 php-程序员宅基地

文章浏览阅读453次。java-php-python-ssm社区志愿者服务管理系统计算机毕业设计。springboot基于微服务架构的图书借阅系统的设计与实现。JSP酒店餐饮管理系统的设计与实现sqlserver。ssm基于JavaWeb的网上购书后台管理系统。ssm基于Vue.js的音乐播放器设计与实现。ssm基于SSM框架的在线健康系统设计与实现。springboot培训机构的人员管理系统。_社区 志愿服务系统源码 php

java/php/node.js/python病人跟踪治疗信息管理系统【2024年毕设】-程序员宅基地

文章浏览阅读21次。springboot基于springbootvue框架的零售店记账系统。springboot基于微信小程序的游戏账号交易系统。springboot基于Android的疫情信息系统。springboot微信小程序的健康体检预约系统。ssm基于微信小程序的汽车共享充电桩预约系统。jsp基于JavaWeb的B2C电商商城系统。ssm基于JavaWeb的班级量化评比系统。ssm基于Android的编程语言学习系统。ssm基于微信小程序的古诗词学习与推广系统。springboot电子银行业务办理系统。

空间数据引擎oracle_空间数据库引擎及其解决方案分析-程序员宅基地

文章浏览阅读350次。4WWW.GWN.COM.CN地理信息世界GEOMATICSWORLD技术应用0引言地理信息系统(GIS)以空间数据为研究对象,在实现对空间数据存储和操作的基础上进行空间分析和应用。以往受关系数据库不支持空间数据管理的限制,传统的GIS软件采用分离的方式管理数据,即空间数据采用文件形式和目录结构,属性数据由内置的关系型数据库进行管理。分离体系结构造成空间数据管理效率低下,无法获得数据库系统的有效支..._oracle空间数据库引擎

java发布rest服务器,使用Java restlet发布到服务器-程序员宅基地

文章浏览阅读177次。我正在尝试使用restlet向服务器发布JSONO对象。当我尝试使用POSTMAN发布它可以发布,但是当我尝试从使用restlet的java代码发布时,我得到一个错误:Unable to find a converter for this objectand Bad Request (400) - The request could not be understood by the server ..._触发 org.restlet.resource.resourceexception