Оператор Прометея + новый мини-куб Kubernetes = DeadMansSwitch + KubeControllerManagerDown + KubeSchedulerDown + TargetDown

Если я запускаю свежий чистый пустой мини-куб и 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)
  • KubeSchedulerDown: 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. Верхнее значение для endpoint="http-metrics" и вниз Вали для 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"}

FYI, 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"}

1 ответ

Решение

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

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

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

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

Watchdog оповещение (ранее называлось DeadManSwitch) является:

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

В Миникубе 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, не соответствуют меткам, используемым компонентами Minikube. Вам нужно сопоставить их, установив kubeControllerManager.selector а также kubeScheduler.selector параметры руля.

Взгляните на эту статью: Попробуйте Prometheus Operator с Helm + Minikube. Здесь рассматриваются все эти проблемы, способы их решения и многое другое.

Другие вопросы по тегам