使用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

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.