Оператор Прометея + Новый мини-куб Kubernetes = DeadMansSwitch + KubeControllerManagerDown + KubeSchedulerDown + TargetDown - PullRequest
0 голосов
/ 31 октября 2018

Если я запускаю свежий чистый пустой мини-куб и helm install последний stable/prometheus-operator со строгими настройками по умолчанию, я вижу четыре активных сигнала тревоги Прометея.

В этом супер упрощенном сценарии, где у меня чистый свежий мини-куб, на котором работает абсолютно ничего, кроме Прометея, не должно быть проблем и аварий. Являются ли эти сигналы ложными или сломанными? Что-то не так с моей настройкой или я должен отправить отчет об ошибке и на время отключить эти тревоги?

Вот мои основные шаги настройки:

minikube delete
# Any lower memory/cpu settings will experience problems
minikube start --memory 10240 --cpus 4 --kubernetes-version v1.12.2
eval $(minikube docker-env)
helm init
helm repo update
# wait a minute for Helm Tiller to start up.
helm install --name my-prom stable/prometheus-operator

Подождите несколько минут, пока все запустится, затем запустите переадресацию портов на сервере Prometheus и на Grafana:

kubectl port-forward service/my-prom-prometheus-operato-prometheus 9090:9090
kubectl port-forward service/my-prom-grafana 8080:80

Затем перейдите к http://localhost:9090/alerts и увидите:

DeadMansSwitch (1 active)
KubeControllerManagerDown (1 active)
KubeSchedulerDown (1 active)
TargetDown (1 active)

Это фальшивки? Что-то действительно не так? Должен ли я отключить это?

В двух из этих сигналов отсутствуют метрики:

  • KubeControllerManagerDown: absent(up{job="kube-controller-manager"} == 1)
  • KubeSchedulerВниз: absent(up{job="kube-scheduler"} == 1)

В http://localhost:9090/config я не вижу ни одного настроенного задания, но вижу очень тесно связанное задание со значениями job_name default/my-prom-prometheus-operato-kube-controller-manager/0 и default/my-prom-prometheus-operato-kube-scheduler/0. Это говорит о том, что значения job_name должны совпадать, и есть ошибка, когда они не совпадают. Я также не вижу собранных метрик для любой работы. Разрешены ли косые черты в именах должностей?

Два других сигнала тревоги:

  • DeadMansSwitch: выражение тревоги vector(1). Я понятия не имею, что это такое.
  • TargetDown: этот сигнал тревоги активируется по up{job="kubelet"}, который имеет два значения метрики: одно со значением 1,0 и одно со значением 0,0. Значение up для endpoint="http-metrics", а значение down для endpoint="cadvisor". Это последняя конечная точка должна быть? Почему бы не быть?

Я захожу на http://localhost:9090/graph и запускаю sum(up) by (job) Я вижу 1.0 значения для всех:

{job="node-exporter"}
{job="my-prom-prometheus-operato-prometheus"}
{job="my-prom-prometheus-operato-operator"}
{job="my-prom-prometheus-operato-alertmanager"}
{job="kubelet"}
{job="kube-state-metrics"}
{job="apiserver"}

фю, kubectl version показывает:

Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.2", GitCommit:"17c77c7898218073f14c8d573582e8d2313dc740", GitTreeState:"clean", BuildDate:"2018-10-30T21:39:16Z", GoVersion:"go1.11.1", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.2", GitCommit:"17c77c7898218073f14c8d573582e8d2313dc740", GitTreeState:"clean", BuildDate:"2018-10-24T06:43:59Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"}

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Предупреждение Watchdog (ранее называлось DeadManSwitch):

Предупреждение, предназначенное для обеспечения работоспособности всего конвейера предупреждений. Это предупреждение всегда срабатывает, поэтому оно всегда должно срабатывать в Alertmanager и всегда стреляйте по приемнику.

В Minikube kube-controller-manager и kube-scheduler по умолчанию слушают на 127.0.0.1 , поэтому Прометей не может очистить метрики от них. Вам необходимо запустить Minikube с прослушиванием этих компонентов на всех интерфейсах:

minikube start --kubernetes-version v1.12.2 \
--bootstrapper=kubeadm \
--extra-config=scheduler.address=0.0.0.0 \
--extra-config=controller-manager.address=0.0.0.0

Другая причина TargetDown заключается в том, что селекторы служб по умолчанию, созданные с помощью рулевой диаграммы Prometheus Operator, не соответствуют меткам, используемым компонентами Minikube. Вам необходимо сопоставить их, установив параметры штурвала kubeControllerManager.selector и kubeScheduler.selector.

Взгляните на эту статью: Попытка Оператора Прометея с Шлемом + Миникуб . В нем рассматриваются все эти проблемы, способы их решения и многое другое.

0 голосов
/ 01 ноября 2018

DeadManSwitchAlarm - это вектор (1), который является сигналом тревоги, который всегда срабатывает; обычно он используется для проверки того, работает ли ваш менеджер оповещений или нет.

Возможно, вы решаете эту проблему,

https://github.com/coreos/prometheus-operator/issues/1001

Надеюсь, это поможет.

...