我有一个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中。我尝试将prometheus标志添加到我的所有入口中,但仍然一无所获。例如
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,而且我在寻找的东西上处于死胡同。
谢谢
答案 0 :(得分:1)
最后我到了那里。我必须创建一个普罗米修斯工作,才能观看NGINX Metrics服务器。我发现,我的设置和所有在线示例(即使我使用了相同的舵图)之间的区别在于,我有一个单独的NGINX指标服务,该服务在不同的端口上运行。因此,OOB Prometheus尚未配置为对其进行检查。
- job_name: nginx-ingress
metrics_path: /metrics
scrape_interval: 5s
static_configs:
- targets:
- nginx-ingress-controller-metrics:9913
将其添加到prometheus configmap中,并重新加载了配置。
答案 1 :(得分:0)
似乎您是从头开始部署Prometheus的。 Nginx入口指标仅在您通过prometheus-operator部署Prometheus时有效。
答案 2 :(得分:0)
我认为您也可以在其他名称空间中找到选择器并使它们生效。我遇到了与您相同的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