Prometheus — набор утилит с открытым кодом для мониторинга и уведомлений (alerts), созданный под вдохновением от Google Borg Monitor. Его разработку начинали в SoundCloud, а затем передали в фонд CNCF. Prometheus умеет автоматически собирать метрики с кластера и сервисов в нем, сохранять в нереляционную БД и отрисовывать их в Grafana. Встроенный Alertmanager умеет отправлять алерты в различные каналы коммуникаций, такие как Slack, email, а с помощью несложных действий – в Telegram, даже звонить.
Операторы – новый класс программного обеспечения, представленный в 2016 году CoreOS компании RedHat. Операторы предназначены для управления другим программным обеспечением в Kubernetes. Цель Оператора — предоставить пользователю API, который позволяет управлять множеством сущностей stateful-приложения в кластере Kubernetes, не задумываясь о том, что у него под капотом (какие данные и что с ними делать, какие команды необходимо еще выполнить для поддержания кластера). Фактически Оператор призван максимально упростить работу с приложением в рамках кластера, автоматизируя выполнение эксплуатационных задач, которые раньше приходилось решать вручную.
Устанавливаем Prometheus.
После успешной установки должны увидеть:
Prometheus Pod:
После этой команды, необходимо открыть браузер по адресу http://localhost:9090. Сервисы установленные по-умолчанию должны быть видны в Service Discovery.
Prometheus установлен и собирает метрики. Чтобы посмотреть, какие метрики собирает Prometheus, можно выполнить команду:
И получим:
Как мы видим, установка Prometheus Operator в Kubernetes действительно представляется одной командой, после которой, получаем эффективный набор инструментов для мониторинга кластера.
Есть вопросы по настройке Kubernetes? Обратитесь к нам любым удобным способом. Мы также обслуживаем кластеры Kubernetes в рамках DevOps-аутсорсинга.
Установка и настройка Prometheus Operator
Установка Prometheus Operator осуществляется с помощью helm. Клонируем репозиторий и обновляем переменные:cd charts/stable/prometheus-operator helm dependency update
chelm install --name prometheus --namespace monitoring prometheus-operator
kubectl get pod

Рисунок 1 – Установка Prometheus
- собственно сам Prometheus.
- Prometheus-config-reloader – плагин для Prometheus который мониторит изменения в prometheus.yaml и HTTP-запросом перегружает конфиг Prometheus.
- rules-configmap-reloader – мониторит изменения в файле уведомлений и также перезагружает файл настроек, если он поменялся.
- Alert Manager, который генерирует уведомления на прописанные правила и триггеры.
- config-reloader – надстройка к Alertmanager, который при изменении файла настроек перегружает Alertmanager через HTTP.
- Grafana – web-интерфейс, которые отрисовывает графики по метрикам, собранным Prometheus.
- Grafana-sc-dashboard – надстройка к Grafana, которая описывает ConfigMap-ресурсы и генерирует json-дашборды для Grafana.
kubectl port-forward prometheus-prometheus-prometheus-oper-prometheus-0 9090:9090

Рисунок 2 – Сервисы в 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