Что делает Prometheus?
Prometheus собирает метрики и выполняет правила:
- Для каждого target (цели мониторинга) с заданной периодичностью
scrape_intervalPrometheus выполняет HTTP-запрос на этот target, получает в ответ метрики в собственном формате и сохраняет их в свою базу данных. - Каждый
evaluation_intervalобрабатывает правила (rules), на основании чего:- отправляет алерты;
- или сохраняет новые метрики (результат выполнения правил) в свою базу данных.
Как работает Prometheus?
Prometheus устанавливается модулем prometheus-operator DVP, который выполняет следующие функции:
- определяет следующие кастомные ресурсы:
Prometheus— определяет инсталляцию (кластер) PrometheusServiceMonitor— определяет, как собирать метрики с сервисовAlertmanager— определяет кластер Alertmanager‘овPrometheusRule— определяет список Prometheus rules
- следит за этими ресурсами, а также:
- генерирует
StatefulSetс самим Prometheus - создает секреты с необходимыми для работы Prometheus конфигурационными файлами (
prometheus.yaml— конфигурация Prometheus, иconfigmaps.json— конфигурация дляprometheus-config-reloader); - следит за ресурсами
ServiceMonitorиPrometheusRuleи на их основании обновляет конфигурационные файлы Prometheus через внесение изменений в секреты.
- генерирует
Включить модуль можно с использованием следующего ModuleConfig:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: prometheus
spec:
version: 2
enabled: true
settings:
auth:
password: xxxxxx
retentionDays: 7
storageClass: rbd
nodeSelector:
node-role/monitoring: ""
tolerations:
- key: dedicated.deckhouse.io
operator: Equal
value: monitoring
Полное описание всех настроек доступно в документации модуля prometheus.
Как настраивается Prometheus?
- У сервера Prometheus есть config и есть rule files (файлы с правилами)
- В
configимеются следующие секции:scrape_configs— настройки поиска target’ов (целей для мониторинга, см. подробней следующий раздел).-
rule_files— список директорий, в которых лежат rule’ы, которые необходимо загружать:rule_files: - /etc/prometheus/rules/rules-0/* - /etc/prometheus/rules/rules-1/* alerting— настройки поиска Alert Manager’ов, в которые слать алерты. Секция очень похожа наscrape_configs, только результатом ее работы является список endpoint’ов, в которые Prometheus будет слать алерты.