当前位置: 首页 > news >正文

nginx-集成prometheus监控(k8s)

一. 方案选型: 

   对于nginx 的监控 ,是可以和prometheus 集成的。 实现的方案有两种,分别是基于第三封模块的nginx-vts-exporter 和官方维护的 nginx-exporter。 其中官方维护的分为社区版本和plus版本。社区版本的指标比较少,而plus版是收费的,故: 如果是生产环境而非plus版本,建议采用nginx-vts-exporter方式。 如只是需要监控基础指标(存活,活跃数量等),采用nginx-exporter即可。 

二.部署方式:

 1. 采用nginx-exporter:

  配置nginx指标暴露接口:

server {listen 80 default_server;server_name _;location /nginx_status {stub_status on;access_log off;allow 172.0.0.0/8;}location / {deny all;}
}

验证:

部署exporter:

  可以选择docker 方式,也可以选择独立程序,这里选择采用docker 部署在k8s。 

# Source: prometheus-nginx-exporter/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-exporternamespace: monitoringlabels:app.kubernetes.io/name: nginx-exporter
spec:replicas: 1selector:matchLabels:app.kubernetes.io/name: nginx-exportertemplate:metadata:labels:app.kubernetes.io/name: nginx-exporterspec:serviceAccountName: defaultsecurityContext:{}containers:- name: nginx-exportersecurityContext:{}image: "nginx/nginx-prometheus-exporter:1.4.2"imagePullPolicy: IfNotPresentargs:- "--nginx.scrape-uri=http://172.31.40.117/nginx_status"env:ports:- containerPort: 9113livenessProbe:httpGet:path: /port: 9113readinessProbe:httpGet:path: /port: 9113---svc
apiVersion: v1
kind: Service
metadata:name: nginx-exporternamespace: monitoringlabels:app.kubernetes.io/name: nginx-exporter
spec:type: ClusterIPports:- port: 9113targetPort: 9113protocol: TCPname: nginx-exporterselector:app.kubernetes.io/name: nginx-exporter

配置采集器:

可查看指标:

2. 采用nginx-vts-exporter方式部署: 

 需要先确定nginx 支持vts 模块。如果没有需要编译安装: 

nginx -V 2>&1 | grep -o 'vhost_traffic_status'

编译安装方式:

#下载模块源码(https://github.com/vozlt/nginx-module-vts),重新编译 Nginx 并添加模块./configure --add-module=/path/to/nginx-module-vts 

配置nginx启用vts模块:

http {vhost_traffic_status_zone;vhost_traffic_status_filter_by_host on; server {listen 80;server_name localhost;location /status {vhost_traffic_status_display;vhost_traffic_status_display_format json;}}server {listen 80;server_name example.com;}
}

部署nginx-vts-exporter:

wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.8/nginx-vts-exporter-0.10.8.linux-amd64.tar.gz
tar -zxvf nginx-vts-exporter-0.10.8.linux-amd64.tar.gz
mv nginx-vts-exporter-0.10.8.linux-amd64 /usr/local/nginx-vts-exporter#启动exporter
/usr/local/nginx-vts-exporter/nginx-vts-exporter \-nginx.scrape_uri=http://127.0.0.1/status/format/json \-web.listen-address=:9913

配置prometheus , 参考nginx-exporter

三. 和grafana 集成:

可通过开源dashbaord 配置导入:

--------------------------------------------------------------------------------------------

                        深耕运维行业多年,擅长运维体系建设,方案落地。欢迎交流!

                                                    V: ywjw996

                                                    《 运维经纬 》

http://www.dtcms.com/a/331063.html

相关文章:

  • GitHub 热榜项目 - 日榜(2025-08-14)
  • 一、linux内存管理学习(1):物理内存探测
  • 京东商品列表API开发指南
  • OpenCV对椒盐处理后的视频进行均值滤波处理
  • Opencv 边界填充 图像运算 阈值处理 和图像平滑处理
  • 文件上传接口接收不到文件入参
  • 题解:P4777 【模板】扩展中国剩余定理(EXCRT)
  • Qt项目查找依赖库打包
  • IDEA、Pycharm、DataGrip等激活破解冲突问题解决方案之一
  • Springboot项目重启后Session依旧存在
  • Python包性能优化与并发编程:构建高性能应用的核心技术(续)
  • 轻量级开源全文搜索引擎:Manticore Search 入门介绍
  • C++基础(①入门教程)
  • 本地jar导入到本地仓科和远程仓库
  • Maven学习笔记
  • 92、23种设计模式-单例模式
  • 项目日志框架与jar中日志框架冲突 解决
  • 《多级缓存架构设计与实现全解析》
  • 自动化测试|持续集成Git使用详解
  • label studio 服务器端打开+xshell端口转发设置
  • 01数据结构-最短路径Dijkstra
  • 【数据结构入门】
  • 移动机器人底盘在高校科研中的AI智能教育应用
  • (第十五期)HTML文本格式化标签详解:让文字更有表现力
  • Flutter GetX 全面指南:状态管理、路由与依赖注入的最佳实践
  • SpringMVC请求与响应
  • 三坐标测量仪:从机械精密到智能协同的技术
  • flutter 开发 鸿蒙 App
  • gitee_配置自动部署vue项目
  • Uniapp 获取系统信息:uni.getSystemInfo 与 uni.getSystemInfoSync