当前位置: 首页 > 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.lryc.cn/news/621052.html

相关文章:

  • 高并发内存池 性能瓶颈分析与基数树优化(9)
  • anaconda创建pytorch1.10.0和pytorch2.0.0的GPU环境
  • lesson38:MySQL数据库核心操作详解:从基础查询到高级应用
  • app-4 日志上传
  • 第一章 java基础
  • 在IAR Embedded Workbench for Arm中实现NXP S32K3安全调试
  • Wireshark中捕获的大量UDP数据
  • 一次 Unity ↔ Android 基于 RSA‑OAEP 的互通踩坑记
  • 【题解】P1000 超级玛丽游戏 题解
  • 2025中国快递物流智能装备产业发展论坛将于9月3日上海举办
  • 如何选择图表库|2025 年实现强大数据可视化的 6 个 JavaScript 图表库对比
  • 二进制与进制转换
  • SpringBoot+Vue线上部署MySQL问题解决
  • WinForm之自定义布局(了解)
  • Centos9傻瓜式linux部署CRMEB 开源商城系统(PHP)
  • C++ 仿RabbitMQ实现消息队列项目
  • ClickHouse 日常运维命令总结
  • JMeter性能测试详细版(适合0基础小白学习--非常详细)
  • 前端css学习笔记5:列表表格背景样式设置
  • 回归算法:驱动酒店智能化定价与自动化运营的引擎—仙盟创梦IDE
  • 手写MyBatis第17弹:ResultSetMetaData揭秘:数据库字段到Java属性的桥梁
  • uniapp对接极光消息推送
  • Webpack Plugin 深度解析:从原理到实战开发指南
  • 读取Kaggle下载的数据集(数据的读取 f’{path}\\CMaps\\train_FD001.txt’)
  • mlir operand
  • Day54 Java面向对象08 继承
  • Java中Record的应用
  • 机器翻译:回译与低资源优化详解
  • Java 8 新特性介绍
  • 51单片机-驱动LED模块教程