k8s笔记21--prometheus 监控 nginx ingress

1 介绍

nginx ingress controller 是 k8s 集群中最常用的 ingress controller 之一, 它可以根据 ingress 为集群中的应用配置负载均衡,从而使外部网络通过域名访问集群内的应用。
实际项目中,除了使用 ingress 外,我们也需要监控 ingress 和 ingress controller 的相关信息,从而了解集群内服务和网络的可用性。
本文基于 nginx ingress controller 一步步讲述如何通过 prometheus监控 nginx ingress, 并使用 grafana 展示监控信息。

2 安装测试

前置条件,可以参考 k8s笔记12–grafana的配置和常见使用 安装 grafana, 参考 k8s笔记18–快速入门ingress和ingress controller 安装 ingress controller。

2.1 配置环境

  1. 在 Prometheus 的 job_name: kubernetes-service-endpoints 中新增命名空间 ingress-nginx, 如下所示
    - job_name: kubernetes-service-endpoints
      kubernetes_sd_configs:
      - role: endpoints
        follow_redirects: true
        namespaces:
          names:
          - lens-metrics
          - ingress-nginx
    
  2. 在ingress 的 deployment 新增 metrics 端口,在 ingress 的 svc 中新增注解相关的字段,如下所示
    # svc.yaml info
    metadata:
      annotations:
        prometheus.io/port: '10254'
        prometheus.io/scrape: 'true'
    status:
      loadBalancer: {}
    spec:
      ports:
        - name: prometheus
          protocol: TCP
          port: 10254
          targetPort: prometheus
    
    # deploy.yaml info
    spec:
      template:
        spec:
          containers:
            - name: controller
              ports:
                - name: prometheus
                  containerPort: 10254
                  protocol: TCP
    
    新增配置后,Prometheus 中即可看到对应 10254/metrics, 如下图所示 在这里插入图片描述
  3. 在 grafana 中导入 github.com/kubernetes/ingress-nginx/tree/main/deploy/grafana/dashboards 中的json文件

2.2 测试k8s 1.23.6

ingress controller v1.2.0
配置完成并导入数据后,过一段时间就可以在 grafana 上查看 ingress 相关的数据,如下图所示:
ingress controller
在这里插入图片描述
Request Handing Performance
在这里插入图片描述

3 注意事项

该文档中端口和实际不匹配,
https://docs.nginx.com/nginx-ingress-controller/logging-and-monitoring/prometheus/

ingress-nginx 官方文档 docs.nginx.com/nginx-ingress-controller/logging-and-monitoring/prometheus/ 中也介绍了nginx-ingress-controller 的日志监控方法, 但是文档中端口和实际不匹配,因此最好参考 github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/monitoring.md 来配置。

4 说明

软件环境:
grafana 8.5.2
k8s 1.23.6
ingress controller v1.2.0
参考文档:
k8s笔记12–grafana的配置和常见使用
k8s笔记18–快速入门ingress和ingress controller
github.com/kubernetes/ingress-nginx/tree/main/deploy/grafana/dashboards
github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/monitoring.md
基于k8s集群部署prometheus监控ingress nginx

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Prometheus可以监控nginx的流量。通过使用Prometheus的插件或者导出器可以收集nginx监控数据。其中,可以使用nginx-vts-exporter来收集Nginx监控数据,并将其通过HTTP暴露给Prometheus进行消费。nginx-vts-exporter是一个简单的服务器,它会抓取Nginx的vts(虚拟主机统计)统计数据,并通过HTTP接口提供给Prometheus。默认情况下,nginx-vts-exporter监听的端口号是9913。 Prometheus具有多维数据模型,可以很好地对nginx的指标进行收集和存储,例如流量。你可以自定义Prometheus的数据标签,以便针对不同的机房和项目对nginx进行监控。这样,你可以根据需要对各个维度的流量进行可视化展示,也可以使用Grafana等工具来生成图像展示和监控报告。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [用PrometheusNginx监控](https://blog.csdn.net/weixin_41709748/article/details/88063548)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [使用prometheus监控nginx](https://blog.csdn.net/Mob_com/article/details/89312413)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昕光xg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值