Kubernetes - Prometheus 缺少所有 NGINX 入口指标?
Kubernetes - Prometheus Missing All NGINX Ingress Metrics?
我有一个 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 中进行监控。
然而,其中 none 出现在普罗米修斯 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,而且我不知道要寻找什么。
谢谢
看来您是从头开始部署 Prometheus。 Nginx 入口指标仅在您通过 prometheus-operator 部署 Prometheus 时有效。
我终于到了。我必须创建一个 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,并重新加载配置。
我认为您也可以使用它在其他命名空间中找到您的选择器并让它们活跃起来。我 运行 遇到了与您相同的 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
我有一个 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 中进行监控。
然而,其中 none 出现在普罗米修斯 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,而且我不知道要寻找什么。
谢谢
看来您是从头开始部署 Prometheus。 Nginx 入口指标仅在您通过 prometheus-operator 部署 Prometheus 时有效。
我终于到了。我必须创建一个 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,并重新加载配置。
我认为您也可以使用它在其他命名空间中找到您的选择器并让它们活跃起来。我 运行 遇到了与您相同的 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