【问题标题】:Kubernetes - Prometheus Missing All NGINX Ingress Metrics?Kubernetes - Prometheus 缺少所有 NGINX 入口指标?
【发布时间】:2019-10-07 09:20:43
【问题描述】:

我有一个 DigitalOcean Kubernetes 集群。我已经通过 Helm 安装了 NGINX Ingress Controller,还安装了 Prometheus 和 Grafana。

我的入口位于 default 命名空间中,我的监控位于 monitoring 命名空间中。

这是我安装的图表版本。

❯ helm list
NAME            REVISION    UPDATED                     STATUS      CHART                   APP VERSION NAMESPACE
grafana         1           Mon Oct  7 08:04:15 2019    DEPLOYED    grafana-3.8.18          6.3.5       monitoring
metrics-server  1           Thu Aug 29 09:07:21 2019    DEPLOYED    metrics-server-2.8.2    0.3.2       kube-system
nginx-ingress   1           Wed Aug 21 21:32:06 2019    DEPLOYED    nginx-ingress-1.17.1    0.25.1      default
prometheus      1           Mon Oct  7 09:24:21 2019    DEPLOYED    prometheus-9.1.2        2.11.1      monitoring

我正在尝试获取一些 NGINX 指标,以便在 Grafana 中进行监控。

但是,它们都没有出现在 Prometheus UI 中。我尝试将普罗米修斯标志添加到我所有的入口中,但仍然一无所获。例如

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ****-ingress
  namespace: monitoring
  annotations:
    kubernetes.io/ingress.class: nginx
    enable-vts-status: "true"
    prometheus.io/scrape: "true"
    prometheus.io/port: "10254"

我为 nginx 控制器使用了默认的 values.yaml 文件,但我确实更改为启用指标:

  metrics:
    enabled: true

根据我的阅读,它应该开箱即用。所以我不知道出了什么问题。

看起来确实可疑的一件事是,服务发现似乎没有监控任何服务,但我从未使用过 Prometheus,而且我在寻找什么方面陷入了死胡同。

谢谢

【问题讨论】:

    标签: nginx kubernetes prometheus kubernetes-ingress


    【解决方案1】:

    我终于到了那里。我必须创建一个 prometheus 作业,以查看 NGINX Metrics 服务器。我想,我的设置和所有在线示例之间的区别(即使我使用了相同的 helm 图表)是我有一个单独的 NGINX 指标服务,在不同的端口上运行。所以没有配置OOB Prometheus来检查它。

    - job_name: nginx-ingress
          metrics_path: /metrics
          scrape_interval: 5s
          static_configs:
            - targets:
              - nginx-ingress-controller-metrics:9913
    

    将其添加到 prometheus configmap,并重新加载配置。

    【讨论】:

    • 嘿 Lloyd,您能否详细说明“将其添加到 prometheus configmap 并重新加载配置”?我不确定我该怎么做。谢谢
    【解决方案2】:

    您似乎从头开始部署 Prometheus。 Nginx 入口指标仅在您通过 prometheus-operator 部署 Prometheus 时有效。

    【讨论】:

      【解决方案3】:

      我认为您也可以使用在其他命名空间中找到您的选择器并让它们活跃起来。我遇到了与您相同的 nginx 入口问题(相同的端口等)。我不确定哪些是关键线,所以我把它们都添加了,但它让我的活了起来,我认为这更有利于未来。

        values:
          prometheus:
            prometheusSpec:
              # Use all prometheus rules on the cluster
              ruleNamespaceSelector:
                any: true
              ruleSelectorNilUsesHelmValues: false
      
              # Use all service monitors on the cluster
              serviceMonitorNamespaceSelector:
                any: true
              serviceMonitorSelectorNilUsesHelmValues: false
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-13
        • 2019-10-16
        • 1970-01-01
        • 2020-11-04
        • 1970-01-01
        • 2020-08-14
        • 1970-01-01
        相关资源
        最近更新 更多