оператор Прометей - включить мониторинг всего во всех пространствах имен - PullRequest
1 голос
/ 16 марта 2020

Я хочу отслеживать пару приложений, работающих в кластере Kubernetes, в пространствах имен с именами development и production через оператор prometheus.

Используемая команда установки (согласно Github ) is:

helm install prometheus-operator stable/prometheus-operator -n production --set prometheusOperator.enabled=true,prometheus.service.type=NodePort,prometheusOperator.service.type=NodePort,alertmanager.service.type=NodePort,grafana.service.type=NodePort,grafana.service.nodePort=30906

Какие параметры мне нужно добавить к вышеприведенной команде, чтобы prometheus-operator обнаружил и проконтролировал все приложения / службы / модули, работающие во всех namespaces?

При этом Service Discovery показывает только некоторые prometheus-operator связанные services, но не приложение, которое я запускаю в производственном пространстве имен, даже если prometheus-operator установлен в том же namespace.

Что-нибудь, что мне не хватает?

Примечание. Выполняю все действия, используя одного и того же пользователя (который использует $HOME/.kube/config file), поэтому я предполагаю, что разрешения не являются проблемой.

версия kubectl - версия руля v1.17.3 - 3.1.2

PS На разных форумах есть множество статей по этому вопросу, но я до сих пор не нахожу простых и прямых ответов на это.

Ответы [ 3 ]

1 голос
/ 16 марта 2020

Я использовал values.yaml из https://github.com/helm/charts/blob/master/stable/prometheus-operator/values.yaml, измененные параметры * NilUsesHelmValues ​​в False, и, похоже, с этим все в порядке. helm install стабильный оператор-прометей / оператор-прометей -n мониторинг -f values.yaml

Кроме того, как указано { ссылка }, услуги действительно отображаются в Графане панель мониторинга, даже если они не отображаются в пользовательском интерфейсе Prometheus в разделе «Обнаружение служб или цели».

Надеюсь, это поможет другим новичкам, таким как я.

0 голосов
/ 16 марта 2020

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

kube-state-metrics Пример службы

apiVersion: v1
kind: Service
metadata:
  labels:
    app: kube-state-metrics
    k8s-app: kube-state-metrics
  annotations:
    alpha.monitoring.coreos.com/non-namespaced: "true"
  name: kube-state-metrics
spec:
  ports:
  - name: http-metrics
    port: 8080
    targetPort: metrics
    protocol: TCP
  selector:
    app: kube-state-metrics

Эта служба предназначена для всех модулей с меткой k8s-app: kube-state-metrics.

Generi c Пример ServiceMonitor

Этот ServiceMonitor нацелен на все Сервисы с меткой k8s-app (spe c .selector) и любым значением в пространствах имен kube-system и Monitoring (spe c .namespaceSelector).

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: k8s-apps-http
  labels:
    k8s-apps: http
spec:
  jobLabel: k8s-app
  selector:
    matchExpressions:
    - {key: k8s-app, operator: Exists}
  namespaceSelector:
    matchNames:
    - kube-system
    - monitoring
  endpoints:
  - port: http-metrics
    interval: 15s

https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/running-exporters.md

0 голосов
/ 16 марта 2020

Нет, это хорошо, но вы можете создать новое пространство имен для мониторинга и установить Prometheus там, где было бы хорошо управлять вещами, связанными с мониторингом.

helm install prometheus-operator stable/prometheus-operator -n monitoring
...