使用nginx-module-vts监控各虚拟主机的流量

2023-12-13 23:32

本文主要是介绍使用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-vtsstatic_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

这篇关于使用nginx-module-vts监控各虚拟主机的流量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/490337

相关文章

使用Dify访问mysql数据库详细代码示例

《使用Dify访问mysql数据库详细代码示例》:本文主要介绍使用Dify访问mysql数据库的相关资料,并详细讲解了如何在本地搭建数据库访问服务,使用ngrok暴露到公网,并创建知识库、数据库访... 1、在本地搭建数据库访问的服务,并使用ngrok暴露到公网。#sql_tools.pyfrom

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Spring Cloud之注册中心Nacos的使用详解

《SpringCloud之注册中心Nacos的使用详解》本文介绍SpringCloudAlibaba中的Nacos组件,对比了Nacos与Eureka的区别,展示了如何在项目中引入SpringClo... 目录Naacos服务注册/服务发现引⼊Spring Cloud Alibaba依赖引入Naco编程s依

Java springBoot初步使用websocket的代码示例

《JavaspringBoot初步使用websocket的代码示例》:本文主要介绍JavaspringBoot初步使用websocket的相关资料,WebSocket是一种实现实时双向通信的协... 目录一、什么是websocket二、依赖坐标地址1.springBoot父级依赖2.springBoot依赖

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Nginx如何进行流量按比例转发

《Nginx如何进行流量按比例转发》Nginx可以借助split_clients指令或通过weight参数以及Lua脚本实现流量按比例转发,下面小编就为大家介绍一下两种方式具体的操作步骤吧... 目录方式一:借助split_clients指令1. 配置split_clients2. 配置后端服务器组3. 配

Nginx实现前端灰度发布

《Nginx实现前端灰度发布》灰度发布是一种重要的策略,它允许我们在不影响所有用户的情况下,逐步推出新功能或更新,通过灰度发布,我们可以测试新版本的稳定性和性能,下面就来介绍一下前端灰度发布的使用,感... 目录前言一、基于权重的流量分配二、基于 Cookie 的分流三、基于请求头的分流四、基于请求参数的分

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP