+7 495 230 03 03 8 800 222 50 03
DevOps

Настройка мониторинга Kubernetes с помощью Prometheus Operator

Prometheus — набор утилит с открытым кодом для мониторинга и уведомлений (alerts), созданный под вдохновением от Google Borg Monitor. Его разработку начинали в SoundCloud, а затем передали в фонд CNCF. Prometheus умеет автоматически собирать метрики с кластера и сервисов в нем, сохранять в нереляционную БД и отрисовывать их в Grafana. Встроенный Alertmanager умеет отправлять алерты в различные каналы коммуникаций, такие как Slack, email, а с помощью несложных действий – в Telegram, даже звонить. Операторы – новый класс программного обеспечения, представленный в 2016 году CoreOS компании RedHat. Операторы предназначены для управления другим программным обеспечением в Kubernetes. Цель Оператора — предоставить пользователю API, который позволяет управлять множеством сущностей stateful-приложения в кластере Kubernetes, не задумываясь о том, что у него под капотом (какие данные и что с ними делать, какие команды необходимо еще выполнить для поддержания кластера). Фактически Оператор призван максимально упростить работу с приложением в рамках кластера, автоматизируя выполнение эксплуатационных задач, которые раньше приходилось решать вручную.

Установка и настройка Prometheus Operator

Установка Prometheus Operator осуществляется с помощью helm. Клонируем репозиторий и обновляем переменные:
cd charts/stable/prometheus-operator
helm dependency update
Устанавливаем Prometheus.
chelm install --name prometheus --namespace monitoring prometheus-operator
После успешной установки должны увидеть:
kubectl get pod
Установка Prometheus

Рисунок 1 – Установка Prometheus

Prometheus Pod:
  • собственно сам Prometheus.
  • Prometheus-config-reloader – плагин для Prometheus который мониторит изменения в prometheus.yaml и HTTP-запросом перегружает конфиг Prometheus.
  • rules-configmap-reloader – мониторит изменения в файле уведомлений и также перезагружает файл настроек, если он поменялся.
Alertmanager Pod:
  • Alert Manager, который генерирует уведомления на прописанные правила и триггеры.
  • config-reloader – надстройка к Alertmanager, который при изменении файла настроек перегружает Alertmanager через HTTP.
Grafana Pod:
  • Grafana – web-интерфейс, которые отрисовывает графики по метрикам, собранным Prometheus.
  • Grafana-sc-dashboard – надстройка к Grafana, которая описывает ConfigMap-ресурсы и генерирует json-дашборды для Grafana.
После того, как все поды запустились, мы можем зайти на страницы Prometheus:
kubectl port-forward prometheus-prometheus-prometheus-oper-prometheus-0 9090:9090
После этой команды, необходимо открыть браузер по адресу http://localhost:9090. Сервисы установленные по-умолчанию должны быть видны в Service Discovery.
Сервисы в Prometheus

Рисунок 2 – Сервисы в Prometheus

Prometheus установлен и собирает метрики. Чтобы посмотреть, какие метрики собирает Prometheus, можно выполнить команду:
kubectl get servicemonitors.monitoring.coreos.com
И получим:
prometheus-prometheus-oper-alertmanager              19d
prometheus-prometheus-oper-apiserver                 19d
prometheus-prometheus-oper-coredns                   19d
prometheus-prometheus-oper-grafana                   19d
prometheus-prometheus-oper-kube-controller-manager   19d
prometheus-prometheus-oper-kube-etcd                 19d
prometheus-prometheus-oper-kube-proxy                19d
prometheus-prometheus-oper-kube-scheduler            19d
prometheus-prometheus-oper-kube-state-metrics        19d
prometheus-prometheus-oper-kubelet                   19d
prometheus-prometheus-oper-operator                  19d
prometheus-prometheus-oper-prometheus                19d
Как мы видим, установка Prometheus Operator в Kubernetes действительно представляется одной командой, после которой, получаем эффективный набор инструментов для мониторинга кластера. Есть вопросы по настройке Kubernetes? Обратитесь к нам любым удобным способом. Мы также обслуживаем кластеры Kubernetes в рамках DevOps-аутсорсинга.
Дата публикации: 26 декабря 2022
Не нашли ответа на свой вопрос?

Смотрите также

Обсуждение материала

  • Аноним

    есть ли инструкции по gitlab? я новичок…

    • https://efsol.ru/ EFSOL

      Добрый день, Тимур. Обязательно опубликуем материал на эту тему.

Содержание

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.