Prometheus: полное руководство по установке и настройке системы

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Для кого эта статья:

  • Специалисты IT, занимающиеся мониторингом и управлением инфраструктурой
  • Инженеры DevOps и системные администраторы
  • Программисты, желающие освоить навыки работы с Prometheus и алертингом

    Мир IT-инфраструктур нуждается в надёжном мониторинге как никогда! Системные сбои, перегрузки серверов и внезапные отказы приложений могут стоить компаниям миллионы. Prometheus выступает мощным щитом, предотвращающим эти катастрофы, превращая сложный процесс мониторинга в точную науку. В этом руководстве я раскрою все секреты установки и настройки Prometheus — от базовых требований до продвинутых интеграций, позволяющих держать вашу инфраструктуру под полным контролем 24/7. 🛡️

Погружаясь в мир Prometheus и систем мониторинга, многие специалисты сталкиваются с необходимостью расширить свои навыки программирования для автоматизации процессов и создания собственных экспортеров. Курс «Python-разработчик» с нуля от Skypro — идеальный выбор для инженеров DevOps и системных администраторов. Вы освоите язык, который идеально подходит для создания инструментов мониторинга и анализа метрик Prometheus, выводя ваши профессиональные навыки на новый уровень.

Что такое Prometheus и почему он важен для мониторинга

Prometheus — это открытая система мониторинга и алертинга, изначально разработанная в SoundCloud. В 2016 году проект присоединился к Cloud Native Computing Foundation, став вторым размещенным проектом после Kubernetes. Сегодня Prometheus признан стандартом де-факто для мониторинга в экосистеме облачных решений.

В отличие от традиционных систем мониторинга, Prometheus работает по принципу "pull", а не "push" — он сам опрашивает ваши сервисы через HTTP, собирая метрики в виде временных рядов. Это коренное отличие обеспечивает надежность даже при частичных отказах системы. 📊

Ключевые преимущества Prometheus:

  • Многомерная модель данных — метрики хранятся как временные ряды с уникальными идентификаторами и парами ключ-значение
  • Мощный язык запросов PromQL — позволяет выполнять сложные операции над данными временных рядов
  • Автономная работа — не требует распределенных хранилищ или внешних зависимостей
  • Эффективное хранение — сжатие данных снижает требования к дисковому пространству
  • Простая интеграция — богатая экосистема экспортеров для сбора метрик с различных систем

Prometheus стал критически важным компонентом в стеке мониторинга современных инфраструктур по нескольким причинам:

ПричинаПочему это важно
Ориентирован на надежностьРаботает даже в условиях сбоев других частей инфраструктуры
Высокая производительностьМожет обрабатывать миллионы метрик в секунду с минимальным воздействием на систему
МасштабируемостьЛегко масштабируется горизонтально через функциональное шардирование
Встроенный алертингAlertManager обрабатывает оповещения и объединяет их для уменьшения шума
ВизуализацияИнтеграция с Grafana для создания интерактивных дашбордов

Александр Кириллов, DevOps-инженер

Когда я присоединился к финтех-стартапу, система мониторинга была утомительной смесью разрозненных инструментов. Каждое утро начиналось с проверки десятков разных дашбордов и логов. Команда постоянно пропускала критические инциденты, а время обнаружения проблем исчислялось часами.

Внедрение Prometheus кардинально изменило ситуацию. Мы настроили централизованный сбор метрик со всей инфраструктуры, создали единую систему алертинга и подключили Grafana для визуализации. Время обнаружения инцидентов сократилось с часов до минут.

Особенно впечатлил случай, когда Prometheus обнаружил аномальное поведение API за 17 минут до того, как пользователи начали сообщать о проблемах. Мы устранили узкое место до того, как оно привело к реальным убыткам. С тех пор я рассматриваю Prometheus не как опцию, а как обязательный компонент любой серьезной инфраструктуры.

Кинга Идем в IT: пошаговый план для смены профессии

Подготовка к установке Prometheus: системные требования

Перед установкой Prometheus необходимо убедиться, что ваша система соответствует минимальным требованиям. Хотя Prometheus весьма эффективен с точки зрения использования ресурсов, его потребности растут в зависимости от объема мониторинга и количества метрик. 🖥️

Минимальные системные требования для небольшого развертывания:

  • CPU: 2 ядра
  • RAM: 4 ГБ
  • Дисковое пространство: 50 ГБ (зависит от объема хранимых метрик)
  • ОС: Linux (предпочтительно), можно также использовать macOS или Windows
  • Сетевой доступ: открытые порты для сбора метрик (по умолчанию 9090)

Для расчета необходимых ресурсов важно понимать, что потребление памяти и места на диске Prometheus напрямую зависит от трех основных факторов:

  • Количество временных рядов (метрик) в вашей системе
  • Частота скрейпинга (как часто Prometheus опрашивает цели)
  • Период хранения данных (retention period)
Масштаб мониторингаCPURAMДискПримечания
Небольшой (до 10K метрик)2 ядра4 ГБ50 ГБПодходит для мониторинга нескольких небольших приложений
Средний (10K-100K метрик)4 ядра8-16 ГБ100-300 ГБОптимально для большинства организаций среднего размера
Крупный (100K-1M метрик)8+ ядер32+ ГБ500 ГБ – 1 ТБРекомендуется шардирование и оптимизация запросов
Очень крупный (1M+ метрик)16+ ядер64+ ГБ2+ ТБТребуется федерация и оптимизированная архитектура хранения

Помимо базовых системных требований, важно учитывать следующие рекомендации:

  • Файловая система: XFS или ext4 для оптимальной производительности
  • Сетевые настройки: убедитесь, что firewall не блокирует порты Prometheus
  • Настройка Docker (если используется): выделите достаточно ресурсов для контейнеров
  • Мониторинг самого мониторинга: рассмотрите возможность установки отдельного "метрик Prometheus" для отслеживания основного экземпляра

Для расчета приблизительного потребления места на диске можно использовать следующую формулу:

Размер_хранилища = Количество_метрик × Частота_сбора × Период_хранения × Размер_метрики

Где:
- Количество_метрик – общее число временных рядов
- Частота_сбора – количество измерений в секунду
- Период_хранения – сколько времени хранить данные (в секундах)
- Размер_метрики – приблизительно 2 байта на сэмпл (после сжатия)

Например, для системы с 10,000 метрик, сбором каждые 15 секунд и хранением в течение 15 дней потребуется приблизительно:

10000 × (1/15) × (15 × 24 × 60 × 60) × 2 = 8,64 ГБ

Предварительная подготовка системы должна также включать:

  • Создание выделенного пользователя с ограниченными правами для запуска Prometheus
  • Настройку логирования и ротации логов
  • Планирование резервного копирования данных Prometheus
  • Настройку мониторинга производительности системы хранения

Пошаговая установка Prometheus на разных платформах

Установка Prometheus может варьироваться в зависимости от платформы и предпочитаемого метода развертывания. Рассмотрим несколько основных подходов, которые подойдут для большинства сценариев. 🛠️

Установка на Linux с использованием бинарных файлов

Этот метод универсален и работает на большинстве дистрибутивов Linux:

  1. Создайте пользователя для Prometheus:
Bash
Скопировать код
sudo useradd --no-create-home --shell /bin/false prometheus
  1. Создайте необходимые директории:
Bash
Скопировать код
sudo mkdir /etc/prometheus /var/lib/prometheus
  1. Загрузите последнюю версию Prometheus (проверьте актуальную версию на https://prometheus.io/download/):
Bash
Скопировать код
wget https://github.com/prometheus/prometheus/releases/download/v2.42.0/prometheus-2.42.0.linux-amd64.tar.gz
  1. Распакуйте архив:
Bash
Скопировать код
tar -xvf prometheus-2.42.0.linux-amd64.tar.gz
  1. Скопируйте бинарные файлы:
Bash
Скопировать код
sudo cp prometheus-2.42.0.linux-amd64/prometheus /usr/local/bin/
sudo cp prometheus-2.42.0.linux-amd64/promtool /usr/local/bin/
  1. Скопируйте консольные библиотеки и установите права доступа:
Bash
Скопировать код
sudo cp -r prometheus-2.42.0.linux-amd64/consoles /etc/prometheus
sudo cp -r prometheus-2.42.0.linux-amd64/console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
  1. Создайте базовый конфигурационный файл:
Bash
Скопировать код
sudo nano /etc/prometheus/prometheus.yml

Добавьте базовую конфигурацию:

yaml
Скопировать код
global:
scrape_interval: 15s
evaluation_interval: 15s

scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
  1. Настройте systemd для автоматического запуска:
Bash
Скопировать код
sudo nano /etc/systemd/system/prometheus.service

Добавьте следующее содержимое:

ini
Скопировать код
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target
  1. Запустите Prometheus и включите его автозапуск:
Bash
Скопировать код
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
sudo systemctl status prometheus

Установка с использованием Docker

Docker предлагает более простой способ развертывания Prometheus, особенно для тестирования или при использовании контейнеризованных сред:

  1. Создайте директорию для хранения данных и конфигурации:
Bash
Скопировать код
mkdir -p /path/to/prometheus/data /path/to/prometheus/config
  1. Создайте базовый конфигурационный файл:
Bash
Скопировать код
nano /path/to/prometheus/config/prometheus.yml

Добавьте базовую конфигурацию (аналогичную предыдущему примеру).

  1. Запустите контейнер Prometheus:
Bash
Скопировать код
docker run -d \
--name prometheus \
-p 9090:9090 \
-v /path/to/prometheus/config:/etc/prometheus \
-v /path/to/prometheus/data:/prometheus \
prom/prometheus

Установка через Docker Compose

Для более сложных сценариев, особенно когда вам нужна интеграция с другими сервисами (например, Grafana), Docker Compose предлагает элегантное решение:

  1. Создайте файл docker-compose.yml:
yaml
Скопировать код
version: '3'
services:
prometheus:
image: prom/prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus/config:/etc/prometheus
- ./prometheus/data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
restart: always

grafana:
image: grafana/grafana
ports:
- "3000:3000"
volumes:
- ./grafana/data:/var/lib/grafana
depends_on:
- prometheus
restart: always
  1. Создайте необходимые директории и конфигурационные файлы:
Bash
Скопировать код
mkdir -p ./prometheus/config ./prometheus/data ./grafana/data
touch ./prometheus/config/prometheus.yml
  1. Настройте prometheus.yml (аналогично предыдущим примерам)
  2. Запустите сервисы:
Bash
Скопировать код
docker-compose up -d

Установка на Kubernetes с использованием Prometheus Operator

Для развертывания в кластерах Kubernetes рекомендуется использовать Prometheus Operator, который значительно упрощает управление экземплярами Prometheus:

  1. Установите Prometheus Operator с помощью Helm:
Bash
Скопировать код
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack
  1. Проверьте установку:
Bash
Скопировать код
kubectl get pods -n default
  1. Получите доступ к Prometheus UI:
Bash
Скопировать код
kubectl port-forward svc/prometheus-kube-prometheus-prometheus 9090:9090

Мария Соколова, SRE-инженер

В прошлом году нам поручили модернизировать мониторинг для распределенной системы обработки платежей. Существующая система на базе устаревших инструментов не справлялась с нагрузкой, а некоторые проблемы обнаруживались только после жалоб клиентов.

Мы выбрали Prometheus для мониторинга и начали с установки в Docker-контейнерах для тестирования. Быстро убедились в его эффективности и решили масштабировать решение на весь продакшен, выбрав установку через Kubernetes Operator.

Внедрение шло поэтапно: сначала мониторинг инфраструктуры, затем критичные бизнес-метрики, и, наконец, полный охват всех сервисов. Ключевым моментом стала автоматизация развертывания через Terraform и Helm-чарты.

Результаты превзошли ожидания. Система стала выявлять аномалии на 15-20 минут раньше, чем начинались видимые пользователям сбои. А когда произошел инцидент с перегрузкой одного из сегментов, Prometheus помог выявить причину за считанные минуты вместо часов диагностики.

После установки проверьте доступность интерфейса Prometheus, перейдя по адресу http://localhost:9090 (или соответствующему IP-адресу вашего сервера).

Базовая настройка и конфигурация Prometheus

После успешной установки Prometheus необходимо настроить его для эффективного сбора и хранения метрик. Ключевым элементом конфигурации является файл prometheus.yml. Рассмотрим основные разделы этого файла и их настройку. ⚙️

Структура конфигурационного файла

Конфигурация Prometheus состоит из нескольких ключевых разделов:

yaml
Скопировать код
global: # Глобальные настройки
...

alerting: # Настройки алертинга
...

rule_files: # Файлы с правилами алертинга и записи
...

scrape_configs: # Конфигурация сбора метрик (targets)
...

remote_write: # Настройки удаленной записи (опционально)
...

remote_read: # Настройки удаленного чтения (опционально)
...

Глобальные настройки

Раздел global определяет параметры, влияющие на работу всего сервера Prometheus:

yaml
Скопировать код
global:
scrape_interval: 15s # Как часто собирать метрики
evaluation_interval: 15s # Как часто оценивать правила
scrape_timeout: 10s # Таймаут для сбора метрик

# Внешние лейблы, которые будут добавлены ко всем временным рядам
external_labels:
region: 'production'
datacenter: 'eu-west-1'

Настройка алертинга

Для настройки отправки уведомлений используется раздел alerting:

yaml
Скопировать код
alerting:
alertmanagers:
- static_configs:
- targets:
- 'alertmanager:9093'

Правила

Для определения правил алертинга и предварительного расчета метрик используется раздел rule_files:

yaml
Скопировать код
rule_files:
- 'rules/alert_rules.yml'
- 'rules/recording_rules.yml'

Настройка сбора метрик

Основной частью конфигурации является scrape_configs, определяющий, откуда и как Prometheus будет собирать метрики:

yaml
Скопировать код
scrape_configs:
# Сбор метрик самого Prometheus
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']

# Сбор метрик Node Exporter
- job_name: 'node'
static_configs:
- targets: ['node-exporter:9100']

# Динамическое обнаружение целей через файлы
- job_name: 'file-discovery'
file_sd_configs:
- files:
- 'targets/*.json'
refresh_interval: 5m

Конфигурация хранения данных

По умолчанию Prometheus хранит данные в локальной директории, но эти параметры можно изменить при запуске:

Bash
Скопировать код
prometheus --storage.tsdb.path=/data \
--storage.tsdb.retention.time=15d \
--storage.tsdb.retention.size=30GB

Ключевые параметры хранения:

  • storage.tsdb.path – путь к директории хранения данных
  • storage.tsdb.retention.time – как долго хранить данные (по умолчанию 15 дней)
  • storage.tsdb.retention.size – максимальный размер хранилища данных

Настройка безопасности

Для защиты Prometheus рекомендуется настроить базовую аутентификацию и TLS:

Bash
Скопировать код
prometheus --web.config.file=/etc/prometheus/web-config.yml

Пример файла web-config.yml:

yaml
Скопировать код
tls_server_config:
cert_file: server.crt
key_file: server.key

basic_auth_users:
admin: $2y$12$mTjhWNgB8RzQ5iKpfSYd.uVBBP4BC/fHsG9V.R3XzCyMT9PQUZ1YK

Проверка конфигурации

Перед применением новой конфигурации всегда проверяйте её на ошибки:

Bash
Скопировать код
promtool check config prometheus.yml

Для более детальной проверки можно использовать:

Bash
Скопировать код
promtool check rules rules/alert_rules.yml

Лучшие практики конфигурации

  • Релабелинг – используйте механизм relabel_configs для модификации меток целей до сбора метрик:
yaml
Скопировать код
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['server1:9100', 'server2:9100']
relabel_configs:
- source_labels: [__address__]
regex: '(.*):9100'
target_label: instance
replacement: '$1'
  • Организация конфигурации – для больших развертываний разделите конфигурацию на несколько файлов:
yaml
Скопировать код
scrape_configs:
- job_name: file-discovered-targets
file_sd_configs:
- files:
- 'targets/databases/*.json'
- 'targets/webservers/*.json'
  • Мониторинг с интервалами – адаптируйте частоту сбора для разных типов сервисов:
yaml
Скопировать код
scrape_configs:
- job_name: 'critical-services'
scrape_interval: 5s
static_configs:
- targets: ['api-gateway:9090']

- job_name: 'background-services'
scrape_interval: 30s
static_configs:
- targets: ['batch-processor:9090']

Настройка Prometheus — ответственный процесс, который часто требует знания не только систем мониторинга, но и программирования. Не знаете, с какой IT-профессией начать свой путь? Тест на профориентацию от Skypro поможет определить, подходит ли вам роль DevOps-инженера или системного администратора, работающего с системами мониторинга, или, возможно, ваше призвание — разработка инструментов мониторинга. Результаты теста дадут персонализированные рекомендации по развитию в IT.

Практические сценарии использования и интеграции системы

Настроив базовую установку Prometheus, вы готовы перейти к более продвинутым сценариям использования и интеграциям, которые раскроют полный потенциал системы мониторинга. 🚀

Мониторинг инфраструктуры с Node Exporter

Node Exporter — один из наиболее популярных экспортеров, который собирает системные метрики с Linux-серверов:

  1. Установка Node Exporter:
Bash
Скопировать код
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.5.0.linux-amd64.tar.gz
cd node_exporter-1.5.0.linux-amd64
./node_exporter
  1. Добавление Node Exporter в конфигурацию Prometheus:
yaml
Скопировать код
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['node1:9100', 'node2:9100', 'node3:9100']

Ключевые метрики, которые предоставляет Node Exporter:

  • node_cpu_seconds_total — общее использование CPU
  • node_memory_MemAvailable_bytes — доступная память
  • node_filesystem_avail_bytes — свободное место на дисках
  • node_network_receive_bytes_total — сетевой трафик
  • node_load1, node_load5, node_load15 — средняя нагрузка

Мониторинг контейнеров с cAdvisor

Для мониторинга Docker-контейнеров можно использовать cAdvisor:

Bash
Скопировать код
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
gcr.io/cadvisor/cadvisor:latest

Конфигурация в Prometheus:

yaml
Скопировать код
scrape_configs:
- job_name: 'cadvisor'
static_configs:
- targets: ['cadvisor:8080']

Мониторинг баз данных

Существуют специализированные экспортеры для различных баз данных:

База данныхЭкспортерКлючевые метрики
MySQL/MariaDBmysqld_exporterСоединения, запросы, репликация, буферы
PostgreSQLpostgres_exporterСоединения, транзакции, блокировки, IO
MongoDBmongodb_exporterОперации, репликация, соединения, память
Redisredis_exporterКоманды, память, клиенты, ключи
Elasticsearchelasticsearch_exporterJVM, индексы, запросы, кластер

Интеграция с Kubernetes

Для мониторинга Kubernetes ключевыми компонентами являются:

  • kube-state-metrics — для сбора метрик состояния объектов Kubernetes
  • metrics-server — для метрик использования ресурсов (CPU/Memory)
  • ServiceMonitor и PodMonitor — в случае использования Prometheus Operator

Пример создания ServiceMonitor для автоматического обнаружения сервисов:

yaml
Скопировать код
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: api-service-monitor
namespace: monitoring
spec:
selector:
matchLabels:
app: api
endpoints:
- port: metrics
interval: 15s
namespaceSelector:
matchNames:
- default

Создание алертов для критических ситуаций

Настройка правил алертинга в файле alert_rules.yml:

yaml
Скопировать код
groups:
- name: example
rules:
- alert: HighCPULoad
expr: 100 – (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "High CPU Load on {{ $labels.instance }}"
description: "CPU load is above 80% for 5 minutes (current value: {{ $value }}%)"

- alert: DiskSpaceFilling
expr: (node_filesystem_size_bytes – node_filesystem_free_bytes) / node_filesystem_size_bytes * 100 > 85
for: 10m
labels:
severity: warning
annotations:
summary: "Disk space filling on {{ $labels.instance }}"
description: "Disk space is more than 85% full on {{ $labels.mountpoint }} (current value: {{ $value }}%)"

Интеграция с Grafana для визуализации

После настройки сбора метрик следующим логичным шагом является создание дашбордов в Grafana:

  1. Добавление Prometheus как источника данных в Grafana:
    • Configuration → Data sources → Add data source
    • Выбрать Prometheus
    • URL: http://prometheus:9090
    • Save & Test
  2. Создание дашбордов или импорт готовых:
    • Для Node Exporter: Dashboard ID 1860
    • Для MySQL: Dashboard ID 7362
    • Для Kubernetes: Dashboard ID 315

Масштабирование Prometheus

Для крупных инсталляций необходимо масштабирование:

  • Федерация – Prometheus может скрейпить метрики с других Prometheus-серверов:
yaml
Скопировать код
scrape_configs:
- job_name: 'federated-prometheus'
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="node"}'
- '{job=~"api.*"}'
static_configs:
- targets:
- 'prometheus-1:9090'
- 'prometheus-2:9090'
  • Шардирование – разделение мониторинга на несколько независимых Prometheus-серверов по функциональным или географическим признакам
  • Thanos или Cortex – системы для долгосрочного хранения метрик и создания глобального обзора

Мониторинг приложений с использованием клиентских библиотек

Чтобы собирать метрики из собственных приложений, используйте клиентские библиотеки Prometheus:

  • Go: github.com/prometheus/client_golang
  • Python: prometheus_client
  • Java: io.prometheus:simpleclient
  • Node.js: prom-client
  • .NET: prometheus-net

Пример инструментирования Python-приложения:

Python
Скопировать код
from prometheus_client import Counter, Histogram, start_http_server
import time
import random

# Создаем метрики
REQUEST_COUNT = Counter('app_requests_total', 'Total app HTTP requests')
REQUEST_LATENCY = Histogram('app_request_latency_seconds', 'Request latency')

# Запускаем HTTP-сервер для экспорта метрик
start_http_server(8000)

# Симуляция приложения
while True:
# Увеличиваем счетчик запросов
REQUEST_COUNT.inc()

# Измеряем время выполнения
with REQUEST_LATENCY.time():
# Симуляция работы
time.sleep(random.uniform(0.1, 0.5))

Настройка Prometheus для сбора метрик с приложения:

yaml
Скопировать код
scrape_configs:
- job_name: 'python-app'
static_configs:
- targets: ['app-server:8000']

Использование экспортеров веб-серверов и служб

Для популярных веб-серверов и служб существуют специальные экспортеры:

  • nginx-exporter — для NGINX
  • apache_exporter — для Apache
  • blackbox_exporter — для проверки доступности сервисов через HTTP, TCP, DNS и другие протоколы

Пример конфигурации blackbox_exporter для проверки доступности веб-сайтов:

yaml
Скопировать код
scrape_configs:
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Проверяем HTTP 200 OK
static_configs:
- targets:
- https://example.com
- https://api.example.com/status
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: blackbox-exporter:9115

Построение эффективной системы мониторинга с Prometheus — это не просто технический процесс, а стратегическое решение для обеспечения устойчивости вашей инфраструктуры. Правильно настроенный Prometheus становится не просто инструментом сбора метрик, а полноценной системой раннего предупреждения, позволяющей видеть малейшие отклонения в работе систем задолго до того, как они превратятся в критические инциденты. Освоив принципы работы с Prometheus, вы получаете не только видимость происходящего в вашей инфраструктуре, но и возможность принимать проактивные решения, основанные на реальных данных. Помните: лучший инцидент — это тот, который никогда не произошел благодаря вовремя замеченной аномалии.