prometheus通过nginx-vts-exporter监控nginx

Prometheus监控nginx有两种方式。

一种是通过nginx-exporter监控,需要开启nginx_stub_status,主要是nginx自身的status信息,metrics数据相对较少;

另一种是使用nginx-vts-exporter监控,但是需要在编译nginx的时候添加nginx-module-vts模块,监控数据较多,提供了包含server、upstream以及cache的相关监控指标,指标更加丰富

综合上述两种优缺点,我采用nginx-vts-exporter实现对nginx的监控。

0.实验环境

版本地址
nginx1.26.0https://blog.csdn.net/liulunan_lln/article/details/140295547
nginx-module-vts0.2.2https://github.com/vozlt/nginx-module-vts/archive/refs/tags/v0.2.1.tar.gz
nginx-vts-exporter0.10.3https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz

1.对现有nginx升级

1.1 安装nginx-module-vts

# 进入nginx安装目录
cd /root/nginx/nginx-1.26.0
# 下载新的nginx-module-vts
wget https://github.com/vozlt/nginx-module-vts/archive/refs/tags/v0.2.2.tar.gz
# 解压
tar -zxvf v0.2.2.tar.gz
# 预编译 需要新增--add-module=nginx-module-vts-0.2.2   --prefix是nginx的安装目录,需要跟现有的nginx保持一致
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --add-module=nginx-module-vts-0.2.2
# 编译(这里只make,不要make install,不然会覆盖。如果是新装nginx,可以继续make install)
make
make install

1.2 调整配置文件

cd /usr/local/nginx/conf/
# 备份原配置文件
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
vi /usr/local/nginx/conf/nginx.conf
# 修改nginx.conf配置,增加以下内容
http {# 需要配置vhost_traffic_status_zone;  vhost_traffic_status_filter_by_host on;server {listen  80; #端口任意server_name localhost;# 主要是这个location配置location /status/ {vhost_traffic_status_display;vhost_traffic_status_display_format html;}}
}

添加在nginx.conf中的http段落下。

开启基础监控
vhost_traffic_status_zone;

开启详细状态码统计
vhost_traffic_status_filter on;
vhost_traffic_status_filter_by_set_key $status $server_name;

开启URL统计
vhost_traffic_status_filter on;
vhost_traffic_status_filter_by_set_key u r i u r i s : : uri uris:: uriuris::server_name;

配置建议:

  1. 打开vhost过滤vhost_traffic_status_filter_by_host on;
    开启此功能,在Nginx配置有多个server_name的情况下,会根据不同的server_name进行流量的统计,否则默认会把流量全部计算到第一个server_name上。
  2. 在不想统计流量的server区域禁用vhost_traffic_status,在sever中添加vhost_traffic_statusoff;假如nginx没有规范配置server_name或者无需进行监控的server上,那么建议在此vhost上禁用统计监控功能。否则会出现“127.0.0.1”,hostname等的域名监控信息。

1.3 重启nginx

# 停止旧nginx
/usr/local/nginx/sbin/nginx -s stop
# 启动nginx
/usr/local/nginx/sbin/nginx# 查看nginx是否包含nginx-module-vts-0.2.2 
# configure arguments: 最后是否有 --add-module=nginx-module-vts-0.2.2
[root@master nginx]# ./sbin/nginx -V
nginx version: nginx/1.26.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --add-module=nginx-module-vts-0.2.2

1.4 验证

浏览器访问:http://ip:port/status
请添加图片描述

2.指标采集器nginx-vts-exporter

2.1 下载

wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
tar -zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
mv nginx-vts-exporter-0.10.3.linux-amd64 /root/exporter/nginx_exporter/
rm -rf nginx-vts-exporter-0.10.3.linux-amd64 nginx-vts-exporter-0.10.3.linux-amd64.tar.gz

2.2 启动采集器

nohup /root/exporter/nginx_exporter/nginx-vts-exporter  -nginx.scrape_uri https://192.168.56.110/status/format/json -telemetry.address=:49148 >> /root/exporter/nginx_exporter/nginx_vts_exporter.log 2>&1 &

2.3 查看效果请添加图片描述

3.配置到prometheus

打开prometheus配置文件prometheus.yml,然后使配置生效执行curl -X POST http://192.168.56.110:9090/-/reload
在这里插入图片描述

4.grafana添加nginx看板

面板地址:https://grafana.com/grafana/dashboards/2949-nginx-vts-stats/
导入模板编号:2949
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.监控指标说明

  • nginx_server_requests:统计nginx各个host 各个请求的总数,精确到状态码
  • nginx_upstream_requests:统计各个upstream 请求总数,精确到状态码
  • nginx_server_connections:统计nginx几种连接状态type的连接数
  • nginx_server_cache:统计nginx缓存计算器,精确到每一种状态和转发type
  • nginx_server_bytes: 统计nginx进出的字节计数可以精确到每个host,in进,out出
  • nginx_upstream_bytes: 统计nginx各个 upstream 分组的字节总数,细分到进出
  • nginx_upstream_responseMsec:统计各个upstream 平均响应时长,精确到每个节点
  • nginx_server_info:可以用于判断nginx是否存活
  • nginx_vts_exporter_build_info:可以用于判断nginx vts exporter是否存活

参考

  • prometheus通过nginx-vts-exporter监控nginx
  • Prometheus nginx-vts-exporter 监控 Nginx

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Vuex 入门与实战

引言 Vuex 是 Vue.js 官方推荐的状态管理库,它可以帮助我们更好地管理 Vue 应用的状态。在大型应用中,组件之间的状态共享和通信是一个非常重要的问题,而 Vuex 提供了一种优雅的解决方案。 在 Vue 应用中,数据的流动一般是单向的…

Android Perfetto 学习

1、如何抓取性能日志 方式1、通过手机里的System Tracing抓取 1、点击Settings->System->Developer options->System Tracing->Record trace 打开 2、操作完成后,点击Settings->System->Developer options->System Tracing->Record trace…

初始泛型【超级详细哦~】

初始泛型【超级详细哦~】 1、包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和拆箱 2、泛型2.1 什么是泛型2.2 泛型的语法2.3泛型的使用2.4 泛型的上界2.4.1 语法2.4.2 示例 1、包装类 1.1 基本数据类型和对应的包装类 1.2 装箱和拆箱 int i10;//装箱操作&a…

PCL 点云圆柱邻域搜索

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更新) 一、概述 本文将介绍如何使用PCL库进…

【白皮书下载】分布式功能安全的创新与突破

近日,Imagination 推出全新性能最高且具有高等级功能安全性的汽车 GPU IP——Imagination DXS GPU,并且是Imagination 第一款带有“分布式安全机制”的处理器。 下载白皮书,获取完整分布式安全机制解决方案 根据 ISO 26262 汽车安全完整性等级…

11.1图像的腐蚀和膨胀

基本概念-图像腐蚀 图像腐蚀是一种用于去除图像中小的对象或者突出物体边缘的形态学操作。 图像腐蚀(erosion)的基本概念 图像腐蚀通常用于二值图像,其基本原理是从图像中“侵蚀”掉一些像素点,这些像素点通常是边界上的或者是孤…

【有啥问啥】OpenAI o1的思考之前训练扩展定律、后训练扩展定律与推理扩展定律:原理与应用详解

OpenAI o1的思考之前训练扩展定律、后训练扩展定律与推理扩展定律:原理与应用详解 随着深度学习技术的不断发展,模型的规模和复杂度也迅速提升。研究人员发现了模型训练和推理过程中性能变化的规律,这些规律为我们提供了优化模型设计与训练的…

BGP 路由反射器

转载:BGP 路由反射器 / 实验介绍: / 原理概述 缺省情况下,路由器从它的一个 IBGP 对等体那里接收到的路由条目不会被该路由器再传递给其他IBGP对等体,这个原则称为BGP水平分割 原则,该原则的根本作用是防止 AS 内部的 BGP 路由…

linux入门——“linux基本指令”下

1.mv指令 mv指令用于移动文件或者目录。语法是mv 源文件 目标文件。它的用法需要注意: 当目标文件不存在的时候,默认是将源文件进行重命名操作,名字就是目标文件的名字,当目标文件存在的时候才会把源文件移动到目标文件。 目标文…

微服务远程调用(nacos及OpenFeign简单使用)

问题&#xff1a;在微服务中&#xff0c;每个项目是隔离开的&#xff0c;当有一个项目请求其他项目中的数据时&#xff0c;必须发起网络请求&#xff0c;本文即对此问题展开讨论。 1.使用restTemplate发送请求 //发送请求ResponseEntity<List<ItemDTO>> response …

Microsoft 365 Copilot: Wave 2 发布,开启AI时代下的全新工作流

本周一&#xff08;9月16日&#xff09;&#xff0c;微软对 Microsoft 365 Copilot 办公辅助工具进行了重大升级&#xff0c;推出 Wave 2 版本。新版 Copilot 将为 Microsoft 365 用户带来一系列新功能和改进&#xff0c;进一步提升工作效率与用户体验&#xff0c;正式开启AI时…

【machine learning-13-线性回归的向量化】

向量化 向量化简洁并行计算 向量化 线性回归的向量化表示如下&#xff0c;其中w 和 x 都分别加了箭头表示这是个向量&#xff0c;后续不加也可以表示为向量&#xff0c;w和x点乘加上b&#xff0c;就构成了多元线性回归的表达方式&#xff0c;如下&#xff1a; 那么究竟为什么…

uniapp|微信小程序 实现输入四位数 空格隔开

<template><page-meta :page-style"cssVar"></page-meta><view class"container"><u-navbartitle"优惠券兑换"placeholderbgColor"#fff":autoBack"true":titleStyle"{fontFamily: SourceHa…

navicat无法连接远程mysql数据库1130报错的解决方法

出现报错&#xff1a;1130 - Host ipaddress is not allowed to connect to this MySQL serve navicat&#xff0c;当前ip不允许连接到这个MySQL服务 解决当前ip无法连接远程mysql的方法 1. 查看mysql端口&#xff0c;并在服务器安全组中放开相应入方向端口后重启服务器 sud…

MySQL篇(存储引擎 - InnoDB存储引擎架构)(持续更新迭代)

目录 一、逻辑存储结构 1. 表空间 2. 段 3. 区 4. 页 5. 行 二、架构 1. 简介 2. 内存结构&#xff08;四部分&#xff09; Buffer Pool Change Buffer Adaptive Hash Index Log Buffer 3. 磁盘结构&#xff08;七部分&#xff09; System Tablespace File-Per-…

【工具变量】科技金融试点城市DID数据集(2000-2023年)

时间跨度&#xff1a;2000-2023年数据范围&#xff1a;286个地级市包含指标&#xff1a; year city treat post DID&#xff08;treat*post&#xff09; 样例数据&#xff1a; 包含内容&#xff1a; 全部内容下载链接&#xff1a; 参考文献-pdf格式&#xff1a;https://…

大觅网之环境部署(Environment Deployment of Da Mi Network)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

World of Warcraft [CLASSIC] International translation bug

internationalization i18n_getinternationalizationjs-CSDN博客 1&#xff09;国际化翻译不完整 Chance on melee and ranged critical strike to increase your attack power by 1262 for 10s. 2&#xff09;更新美酒节&#xff0c;服务器并发太高&#xff0c;被提出副本 Wo…

[Redis][String][下]详细讲解

目录 1.其他命令1.APPEND2.GETRANGE3.SETRANGE4.STRLEN 2.内部编码3.典型使用场景1.缓存(Cache)功能2.计数(Counter)功能3.共享会话(Session) 1.其他命令 1.APPEND 功能&#xff1a; 如果key已经存在并且是⼀个string&#xff0c;命令会将value追加到原有string的后边如果key…

第二十节:学习Redis缓存数据库实现增删改查(自学Spring boot 3.x的第五天)

这节记录下如何使用redis缓存数据库。 第一步&#xff1a; 先在服务器端安装redis&#xff0c; 下载地址&#xff1a;Releases tporadowski/redis GitHub。 第二步&#xff1a; 安装redis客户端可视化管理软件redisDesktopmanager Redis Desktop Manager - Download 第…