- Exporters - разнообразные источники метрик в формате Prometheus. Метрики может отдавать непосредственно приложение, так и специально написанные для приложений экспортёры.
- Хранилище метрик создано на базе приложения victoriametrics. Используем вариант victoriametrics single - один экземпляр приложения. Предназначен для небольших объемов и сроков хранения данных.
- vmagent - приложение, собирающее метрики из экспортёров и помещающее их в хранилище метрик. Имеет возможность работать не только с экспортёрами метрик Prometheus, но и с другими системами (Graphite, InfluxDB agent и т.д.). Может быть запущено несколько vmagent.
- vmalert - Формирует алёрты на основании метрик, хранящихся в базе victoriametrics. Сгенерированные алёрты отправляет в alertmanager для дальнейшей обработки.
- alertmanager - обрабатывает алёрты, отправляемые клиентскими приложениями. Он заботится о дедупликации, группировке и маршрутизации алёртов к получателям. Также может выключать и запрещать алёрты.
- karma - Приложение, формирующее дашборды на основании информации из alertmanager. Отображает текущие (не закрытые) алёрты. Позволяет гибко фильтровать информацию, основываясь на метках.
- grafana - Приложение для создания дашбордов на основании различных источников данных. В том числе находящихся в victoriametrics.
Предоставляет основную информацию о кластере kubernetes. Данные берёт из запросов к API kubernetes.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install kube-state-metrics charts/ksm
Информация о Linux машинах.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install node-exporter charts/nexporter
helm repo add vm https://victoriametrics.github.io/helm-charts/
helm repo update
helm install victoriametrics charts/vm -f charts/vm/my-values.yaml -n monitoring
helm repo add vm https://victoriametrics.github.io/helm-charts/
helm repo update
helm install vmagent charts/vmagent -f charts/vmagent/my-values.yaml -n monitoring
Пришлось отказаться от ingress из стандартного чарта. Он не поддерживает генерацию ingressClassName, только соответствующую аннотацию.
Что бы не "лезть руками" в чарт grafana, добавил генерацию своего ingress. Это конечно костыли, но они работают.
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install grafana charts/grafana -f charts/grafana/my-values.yaml -n monitoring
Пароль пользователя admin можно посмотреть в сикрете.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install alertmanager charts/alertmanager -f charts/alertmanager/my-values.yaml -n monitoring
Запускаем с минимальными настройками. Боле точно настроем его позднее, когда будем заниматься конкретными алёртами.
helm repo add vm https://victoriametrics.github.io/helm-charts/
helm repo update
helm install vmalert charts/vmalert -f charts/vmalert/my-values.yaml -n monitoring
Запускаем с одним настроенным алёртом. Иначе не запустится. Более точно будем настраивать позднее.
helm repo add wiremind https://wiremind.github.io/wiremind-helm-charts
helm repo update
helm install karma charts/karma -f charts/karma/my-values.yaml -n monitoring
Тоже базовые настройки. Позднее будем тюнить.