Nginx входной контроллер не дает метрики для прометея - PullRequest
1 голос
/ 05 января 2020

Я пытаюсь развернуть входной контроллер nginx, мониторинг которого можно выполнить с помощью prometheus, однако я сталкиваюсь с проблемой, заключающейся в том, что ни одна метрика не создается, как большинство постов и документов, которые я нашел в онлайн-шоу.

Я использую 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

Все пространства имен уже существуют, так что это не должно быть проблемой, как для разработки, так и для пространств имен мониторинга, которые я видел в во многих местах это было приемлемо, поэтому я пошел с этим, чтобы было проще понять, что происходит.

1 Ответ

2 голосов
/ 06 января 2020

Я бы следовал этому руководству для настройки мониторинга для Nginx входного контроллера. Я считаю, что вам не хватает prometheus.yaml , который определяет конфигурацию очистки для входного контроллера Nginx и RBA C для того, чтобы прометей мог очистить Nginx Метрики входного контроллера.

Редактировать: Аннотировать nginx Контроллеры входного контроллера

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
...