Nginx配置VTS模块-对接Promethues监控

一、背景

        Nginx有一个stub_status模块,可以获取到Nginx的一些相关指标。stub_status 模块用于提供基本的 Nginx 性能统计数据。这个模块不是默认编译进 Nginx 的,所以如果需要使用它,确保 Nginx 是带有 --with-http_stub_status_module 选项编译的。

        stub_status 模块可以用来监控 Nginx 的活动连接数、接受和处理的请求数以及读取、写入或保持的请求数等信息。   

  • Active connections 是当前活跃的连接数量。
  • accepts 是已经接受的连接总数。
  • handled 是已经处理的连接总数。
  • requests 是接收到的客户端请求数。
  • Reading 表示Nginx正在从客户端读取请求头的连接数。
  • Writing 表示Nginx正在向客户端返回响应的连接数。
  • Waiting 表示处于 keep-alive 状态等待请求的连接数。 

        Nginx 的 stub_status 模块和 Nginx VTS (Virtual Host Traffic Status) 模块都提供了关于 Nginx 性能的监控信息,但它们的功能有所不同。以下是 stub_status 相对于 VTS 缺少的一些功能:

  1. 详细的虚拟主机统计

    • VTS 提供了每个虚拟主机(server block)的详细流量统计数据,包括响应时间、请求数、状态码分布等。
    • stub_status 只提供整个服务器级别的基础连接和请求统计数据。
  2. 缓存统计

    • VTS 能够展示有关 FastCGI、uWSGI 和代理缓存的使用情况和命中率等信息。
    • stub_status 不包含这些高级缓存统计信息。
  3. 上游服务器群集统计

    • VTS 可以显示与 upstream 群集相关的统计数据,比如每个后端服务器的健康状况、响应时间和失败次数等。
    • stub_status 并不提供对 upstream 服务器的任何监控信息。
  4. HTTP 方法和状态代码统计

    • VTS 支持按 HTTP 方法(GET, POST, PUT 等)和 HTTP 状态代码(200, 404, 500 等)进行分类统计。
    • stub_status 没有如此细粒度的统计能力。
  5. 自定义指标

    • VTS 允许通过配置文件添加自定义的监控指标。
    • stub_status 则是一个更为静态的模块,提供的指标是固定的。
  6. 图形界面支持

    • VTS 通常会配合一个前端界面来可视化收集到的数据,便于理解和分析。
    • stub_status 输出的是纯文本格式的数据,需要额外的工作才能将这些数据转化为易于理解的形式。
  7. 扩展性

    • VTS 是一个更加灵活和可扩展的解决方案,它可以通过 JSON 格式输出监控数据,方便与其他监控系统集成。
    • stub_status 提供的数据格式较为简单,主要用于基本的性能监测。

        要更深入和全面的 Nginx 流量及性能监控,VTS 是一个更加强大且适合的选择。并且VTS支持的数据格式很多,如JSON、HTML、以及我们熟悉的Promethues数据格式。

        将Nginx指标纳管到Prometheus正好能够符合我们的监控和告警体系,与我们要建设的可观测平台不谋而合!

二、配置过程

1、nginx编译vts模块

  vts模块地址: https://github.com/vozlt/nginx-module-vts

  需要注意的是,下载的vts版本和Nginx的版本号最好保持一致.否则可能出现兼容性问题,和es搭配kibana一样,也是要一一对应肯定最好的.

解压nginx源码包

解压vts模块压缩包

./configure --prefix=/usr/local/nginx --without-http_rewrite_module --without-http_gzip_module --a
dd-module=/root/nginx/nginx-module-vts-0.1.18/

2、配置nginx

location /status {vhost_traffic_status_display;vhost_traffic_status_display_format prometheus; # html、json、prometheus
}

3、配置promethues

访问nginx的/status页面,例如配置html则显示html页面,也可以显示json:

配置prometheus响应的数据格式后,显示prometheus数据:

4、配置grafana面板

官方的Grafana面板: https://grafana.com/grafana/dashboards/9785-nginx-vts/

面板ID: 9785

三、总结

        VTS模块能够获取比stub_status更详细、更丰富的指标,可以有助于我们对nginx有更全面的监控和配置更加合理的告警信息,便于问题的及时发现以及相关优化!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1215.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 寻找数据拐点

import numpy as np import cv2 from scipy.signal import find_peaks# 示例数据 y_data [365.63258786, 318.34824281, 258.28434505, 228.8913738, 190.87220447, 158.28434505, 129.53035144, 111.95846645, 111.95846645, 120.26517572, 140.71246006, 161.79872204, 180.…

【Leetcode 热题 100】84. 柱状图中最大的矩形

问题背景 给定 n n n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 1 1。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 输入: h e i g h t s [ 2 , 1 , 5 , 6 , 2 , 3 ] heights [2,1…

网络原理(三)—— 传输层 之 UDP 和 TCP协议

传输层 在传输层两大关键的协议就是UDP和TCP协议了,除此之外,还有别的传输层协议,本文章将介绍UDP和TCP协议,重点介绍TCP协议。 首先回顾TCP和UDP 的特点: UDP:不可靠传输,面向数据包&#xf…

MySQL素材怎么导入Navicat???

不管用什么方法都要先关掉MySQL服务,并且提前备份数据! 1.有sql文件时候。 打开navicat,运行sql文件 然后点击后面三个点,选中要运行的sql文件,开始。 鼠标右键刷新一下,就能看到sql文件中的表了 2.没有s…

Windows安装ES单机版设置密码

下载ES ES下载链接 我用的是7.17.26 启动前配置 解压之后打开D:\software\elasticsearch-7.17.26\bin\elasticsearch-env.bat 在elasticsearch-env.bat文件中修改jdk的路径 修改前 修改内容 if defined ES_JAVA_HOME (set JAVA"D:\software\elasticsearch-7.17.26\…

mac intel芯片下载安卓模拟器

一、调研 目前主流两个模拟器: 雷神模拟器 不支持macosmumu模拟器pro版 不支持macos intel芯片 搜索到mumu的Q&A中有 “Intel芯片Mac如何安装MuMu?” q&a🔗:https://mumu.163.com/mac/faq/install-on-intel-mac.html 提…

系统看门狗配置--以ubuntu为例

linux系统配置看门狗 以 ubuntu 系统配置看门狗为例 配置看门狗使用的脚本文件,需要使用管理员权限来执行: 配置是:系统每 30S 喂一次狗,超过 60S 不进行投喂,就会自动重启。 1. 系统脚本内容: #!/bin/b…

每天五分钟深度学习框架pytorch:快速搭建VGG网络的基础模块VGG块

本文重点 前面我们介绍了VGG神经网络,我们知道VGG是由许多的VGG块构成,那么本文我们将使用pytorch搭建VGG块 代码实现: import torch from torch import nn def vgg_block(num_convs,in_channels,out_channels): net=[nn.Conv2d(in_channels,out_channels,kernel_size=3,p…

RocketMQ 知识速览

文章目录 一、消息队列对比二、RocketMQ 基础1. 消息模型2. 技术架构3. 消息类型4. 消费者类型5. 消费者分组和生产者分组 三、RocketMQ 高级1. 如何解决顺序消费和重复消费2. 如何实现分布式事务3. 如何解决消息堆积问题4. 如何保证高性能读写5. 刷盘机制 (topic 模…

2_CSS3 背景 --[CSS3 进阶之路]

CSS3 中的背景属性提供了许多强大的功能来增强网页设计,包括但不限于多背景图像、渐变、背景大小控制等。以下是一些关键的 CSS3 背景属性及其用法示例。 1. 多重背景图像 CSS3 允许你为一个元素设置多个背景图像。这些图像按照它们在 background-image 属性中定义…

Kutools for Excel 简体中文版 - 官方正版授权

Kutools for Excel 是一款超棒的 Excel 插件,就像给你的 Excel 加了个超能助手。它有 300 多种实用功能,现在还有 AI 帮忙,能把复杂的任务变简单,重复的事儿也能自动搞定,不管是新手还是老手都能用得顺手。有了它&…

腾讯云AI代码助手编程挑战赛-智能聊天助手

作品简介 本作品开发于腾讯云 AI 代码助手编程挑战赛,旨在体验腾讯云 AI 代码助手在项目开发中的助力。通过这一开发过程,体验到了 AI 辅助编程的高效性。 技术架构 前端: 使用 VUE3、TypeScript、TDesign 和 ElementUI 实现。 后端: 基于 Python 开发…

Spring Data Elasticsearch简介

一、Spring Data Elasticsearch简介 1 SpringData ElasticSearch简介 Elasticsearch是一个实时的分布式搜索和分析引擎。它底层封装了Lucene框架,可以提供分布式多用户的全文搜索服务。 Spring Data ElasticSearch是SpringData技术对ElasticSearch原生API封装之后的产物,它通…

STM32之LWIP网络通讯设计-下(十五)

STM32F407 系列文章 - ETH-LWIP(十五) 目录 前言 一、软件设计 二、CubeMX实现 1.配置前准备 2.CubeMX配置 1.ETH模块配置 2.时钟模块配置 3.中断模块配置 4.RCC及SYS配置 5.LWIP模块配置 3.生成代码 1.main文件 2.用户层源文件 3.用户层头…

AI浪潮下的IT变革之路:机遇、挑战与重塑未来

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 AI浪…

Edge浏览器网页设置深色模式/暗模式

文章目录 需求分析1. 浏览器中的设置——外观——深色。2. 在Edge浏览器的地址栏如下网址:edge://flags/,直接搜索Dark则有内容弹出,将Default更改为Enable即可设置成功。3. 成果 需求 长期对着电脑屏幕,白色实在太刺眼&#xff…

Type-C双屏显示器方案

在数字化时代,高效的信息处理和视觉体验已成为我们日常生活和工作的关键需求。随着科技的进步,一款结合了便携性和高效视觉输出的设备——双屏便携屏,逐渐崭露头角,成为追求高效工作和娱乐体验人群的新宠。本文将深入探讨双屏便携…

Redis 优化秒杀(异步秒杀)

目录 为什么需要异步秒杀 异步优化的核心逻辑是什么? 阻塞队列的特点是什么? Lua脚本在这里的作用是什么? 异步调用创建订单的具体逻辑是什么? 为什么要用代理对象proxy调用createVoucherOrder方法? 对于代码的详细…

机器学习基础-机器学习的常用学习方法

目录 半监督学习的概念 规则学习的概念 基本概念 机器学习里的规则 逻辑规则 规则集 充分性与必要性 冲突消解 命题逻辑 → 命题规则 序贯覆盖 单条规则学习 剪枝优化 强化学习的概念 1. 强化学习对应了四元组 2. 强化学习的目标 强化学习常用马尔可夫决策过程…

国产3D CAD将逐步取代国外软件

在工业软件的关键领域,计算机辅助设计(CAD)软件对于制造业的重要性不言而喻。近年来,国产 CAD 的发展态势迅猛,展现出巨大的潜力与机遇,正逐步改变着 CAD 市场长期由国外软件主导的格局。 国产CAD发展现状 …