nginx - Nginx 入口控制器没有为普罗米修斯提供指标
问题描述
我正在尝试部署一个可以使用 prometheus 监控的 nginx 入口控制器,但是我遇到了一个问题,即似乎没有像我在网上找到的大多数帖子和文档那样创建指标 pod。
我正在使用 helm 部署入口控制器并使用 CLI 参数来启用指标。
helm install ingress stable/nginx-ingress --set controller.metrics.enabled=true
这是我的入口文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
# add an annotation indicating the issuer to use.
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: "letsencrypt-dev"
# needed to allow the front end to talk to the back end
nginx.ingress.kubernetes.io/cors-allow-origin: "https://app.domain.com"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-methods: "GET, PUT, POST, DELETE, PATCH, OPTIONS"
# needed for monitoring
prometheus.io/scrape: "true"
prometheus.io/port: "10254"
name: dev-ingress
namespace: development
spec:
rules:
- host: api.<domain>.com
http:
paths:
- backend:
serviceName: api
servicePort: 8090
path: /
tls: # < placing a host in the TLS config will indicate a certificate should be created
- hosts:
- api.<domai>.com
secretName: dev-ingress-cert # < cert-manager will store the created certificate in this secre
如果这会有所不同,我将使用带有以下命令的 prometheus 操作员舵图。
helm install monitoring stable/prometheus-operator --namespace=monitoring
所有命名空间都已经存在,所以这不应该成为问题,至于我在很多地方看到的开发与监控命名空间,这是可以接受的,所以我使用它来让事情更容易弄清楚发生了什么。
解决方案
我会按照本指南为 Nginx 入口控制器设置监控。我相信您缺少的是prometheus.yaml,它定义了 Nginx 入口控制器的抓取配置和RBAC,以便普罗米修斯能够抓取 Nginx 入口控制器指标。
编辑:注释 nginx 入口控制器 pod
kubectl annotate pods nginx-ingress-controller-pod prometheus.io/scrape=true -n ingress-nginx --overwrite
kubectl annotate pods nginx-ingress-controller-pod prometheus.io/port=10254 -n ingress-nginx --overwrite
推荐阅读
- excel - 使用宏在 Excel 中用计数器替换新行
- python - sqlalchemy.exc.InterfaceError: (sqlite3.InterfaceError) 错误绑定参数 0 - 可能不受支持
- python - 如何使用python在PDF文件的所有页面中添加水印?
- php - 如何使用 PHP 在电子邮件中嵌入 HTML 代码
- reactjs - 使用 embla carousel 映射组件对分页渲染进行反应
- cpu - 内存访问的 CPU 指令跟踪
- visual-studio-code - 是否可以通知用户格式错误的文档?
- python - 如何从内容类型 text/html 中检索现有的 json;字符集=utf-8?
- javascript - 如何消除 HTML/CSS 中 jquery“折叠表”和“实时更新表”之间的冲突?
- javascript - Firefox 每次在移动设备上通过安全源 https 显示网络摄像头权限弹出窗口