2 added
2 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>19 мар 2025</li>
2
<ul><li>19 мар 2025</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Простое введение для тех, кто знакомится с системами мониторинга.</p>
4
</ul><p>Простое введение для тех, кто знакомится с системами мониторинга.</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Пишет о сетях, инструментах для разработчиков и языках программирования. Любит готовить, играть в инди‑игры и программировать на Python.</p>
6
<p>Пишет о сетях, инструментах для разработчиков и языках программирования. Любит готовить, играть в инди‑игры и программировать на Python.</p>
7
<p>Наверняка вы хоть раз получали оповещения от МЧС о заморозках, сильном ветре или тумане. Эти предупреждения формируются на основе данных метеорологических систем мониторинга, которые отслеживают погодные условия в реальном времени. Подобные системы используются и в IT-сфере для контроля работоспособности серверов, приложений и инфраструктуры.</p>
7
<p>Наверняка вы хоть раз получали оповещения от МЧС о заморозках, сильном ветре или тумане. Эти предупреждения формируются на основе данных метеорологических систем мониторинга, которые отслеживают погодные условия в реальном времени. Подобные системы используются и в IT-сфере для контроля работоспособности серверов, приложений и инфраструктуры.</p>
8
<p>Одна из самых популярных таких систем - Prometheus. В этой статье мы разберём её устройство, принципы работы и особенности использования.</p>
8
<p>Одна из самых популярных таких систем - Prometheus. В этой статье мы разберём её устройство, принципы работы и особенности использования.</p>
9
<p><strong>Содержание</strong></p>
9
<p><strong>Содержание</strong></p>
10
<ul><li><a>Что такое Prometheus</a></li>
10
<ul><li><a>Что такое Prometheus</a></li>
11
<li><a>Как работает Prometheus</a></li>
11
<li><a>Как работает Prometheus</a></li>
12
<li><a>Как пользоваться Prometheus</a></li>
12
<li><a>Как пользоваться Prometheus</a></li>
13
</ul><p>Prometheus - это система мониторинга и оповещения с открытым исходным кодом, которая в реальном времени собирает и анализирует метрики работы приложений и серверов. Название системы происходит от титана Прометея из греческой мифологии, который подарил людям огонь. Подобно своему тёзке, Prometheus "освещает" работу IT-систем - помогает администраторам следить за процессами и быстро реагировать на возникающие проблемы.</p>
13
</ul><p>Prometheus - это система мониторинга и оповещения с открытым исходным кодом, которая в реальном времени собирает и анализирует метрики работы приложений и серверов. Название системы происходит от титана Прометея из греческой мифологии, который подарил людям огонь. Подобно своему тёзке, Prometheus "освещает" работу IT-систем - помогает администраторам следить за процессами и быстро реагировать на возникающие проблемы.</p>
14
-
<p>Представьте интернет-магазин, который находится под наблюдением Prometheus. Система отслеживает количество посе��ителей, среднюю скорость загрузки страниц, частоту критических ошибок и другие метрики. Если происходит что-то необычное - например, во время распродажи резко возрастает поток покупателей - Prometheus тут же оповещает администратора, чтобы тот мог предотвратить сбои в работе магазина.</p>
14
+
<p>Представьте интернет-магазин, который находится под наблюдением Prometheus. Система отслеживает количество посетителей, среднюю скорость загрузки страниц, частоту критических ошибок и другие метрики. Если происходит что-то необычное - например, во время распродажи резко возрастает поток покупателей - Prometheus тут же оповещает администратора, чтобы тот мог предотвратить сбои в работе магазина.</p>
15
<p>История Prometheus<a>началась</a>в 2012 году в компании SoundCloud, когда произошёл переход на микросервисную архитектуру - подход, при котором приложение разбивается на множество небольших, независимых сервисов. Тогдашние инструменты мониторинга не справлялись с отслеживанием такого большого количества сервисов, особенно когда их число постоянно менялось из-за масштабирования системы. В результате команда SoundCloud создала Prometheus - собственный инструмент мониторинга, разработанный специально для современных распределённых систем.</p>
15
<p>История Prometheus<a>началась</a>в 2012 году в компании SoundCloud, когда произошёл переход на микросервисную архитектуру - подход, при котором приложение разбивается на множество небольших, независимых сервисов. Тогдашние инструменты мониторинга не справлялись с отслеживанием такого большого количества сервисов, особенно когда их число постоянно менялось из-за масштабирования системы. В результате команда SoundCloud создала Prometheus - собственный инструмент мониторинга, разработанный специально для современных распределённых систем.</p>
16
<p>В 2016 году Prometheus вошёл в состав Cloud Native Computing Foundation (CNCF) и стал вторым после Kubernetes проектом в этой организации. Поддержка CNCF позволила Prometheus быстро развиться и стать одним из самых популярных инструментов мониторинга для облачных систем.</p>
16
<p>В 2016 году Prometheus вошёл в состав Cloud Native Computing Foundation (CNCF) и стал вторым после Kubernetes проектом в этой организации. Поддержка CNCF позволила Prometheus быстро развиться и стать одним из самых популярных инструментов мониторинга для облачных систем.</p>
17
<p>Процесс мониторинга в Prometheus включает несколько основных этапов: сбор метрик, хранение данных и обработку полученных запросов.</p>
17
<p>Процесс мониторинга в Prometheus включает несколько основных этапов: сбор метрик, хранение данных и обработку полученных запросов.</p>
18
<p><strong>Сбор метрик.</strong>На этом этапе Prometheus по заданному расписанию опрашивает настроенные точки мониторинга через HTTP-эндпойнты и собирает числовые показатели их работы. Например, каждые 15 секунд система получает данные о загрузке процессора, объёме используемой памяти, количестве активных пользователей, времени отклика сервера, сетевых задержках и других ключевых параметрах производительности.</p>
18
<p><strong>Сбор метрик.</strong>На этом этапе Prometheus по заданному расписанию опрашивает настроенные точки мониторинга через HTTP-эндпойнты и собирает числовые показатели их работы. Например, каждые 15 секунд система получает данные о загрузке процессора, объёме используемой памяти, количестве активных пользователей, времени отклика сервера, сетевых задержках и других ключевых параметрах производительности.</p>
19
<p><strong>Хранение данных.</strong>Все собранные показатели Prometheus сохраняет в специализированной временной базе данных (TSDB). Эта база организована как таблица с двумя колонками: временем измерения и значением метрики. Например, каждые 15 секунд Prometheus записывает использование памяти сервера: в 17:00 - 80%, в 17:00:15 - 82%. Такая структура позволяет легко отслеживать изменения показателей за любой выбранный период.</p>
19
<p><strong>Хранение данных.</strong>Все собранные показатели Prometheus сохраняет в специализированной временной базе данных (TSDB). Эта база организована как таблица с двумя колонками: временем измерения и значением метрики. Например, каждые 15 секунд Prometheus записывает использование памяти сервера: в 17:00 - 80%, в 17:00:15 - 82%. Такая структура позволяет легко отслеживать изменения показателей за любой выбранный период.</p>
20
<p>Если выражаться более техническим языком, Prometheus хранит метрики в формате временных рядов - это структура данных, похожая на таблицу, где каждая запись включает значение метрики и время измерения. Также к метрикам можно добавлять специальные метки (labels) - дополнительную информацию для более точной идентификации и классификации данных.</p>
20
<p>Если выражаться более техническим языком, Prometheus хранит метрики в формате временных рядов - это структура данных, похожая на таблицу, где каждая запись включает значение метрики и время измерения. Также к метрикам можно добавлять специальные метки (labels) - дополнительную информацию для более точной идентификации и классификации данных.</p>
21
<p>Например, когда мы измеряем количество HTTP-запросов метрикой http_requests_total, мы добавляем метки method (GET для получения данных или POST для отправки) и endpoint (конкретный адрес запроса). Это похоже на маркировку папок с документами - вместо простой надписи "Документы" мы указываем "Документы по проекту X за 2025 год". Такая детальная маркировка позволяет быстро находить нужную информацию.</p>
21
<p>Например, когда мы измеряем количество HTTP-запросов метрикой http_requests_total, мы добавляем метки method (GET для получения данных или POST для отправки) и endpoint (конкретный адрес запроса). Это похоже на маркировку папок с документами - вместо простой надписи "Документы" мы указываем "Документы по проекту X за 2025 год". Такая детальная маркировка позволяет быстро находить нужную информацию.</p>
22
<p><strong>Обработка запросов.</strong>После сохранения метрик во временной базе (TSDB) администратор приступает к настройке мониторинга:</p>
22
<p><strong>Обработка запросов.</strong>После сохранения метрик во временной базе (TSDB) администратор приступает к настройке мониторинга:</p>
23
<ul><li>Создаёт запросы на языке PromQL для извлечения и анализа данных. Например, можно написать запрос rate(http_requests_total[1h]) для подсчёта среднего количества HTTP-запросов за последний час или count(error_count > 0) для отслеживания числа ошибок в минуту.</li>
23
<ul><li>Создаёт запросы на языке PromQL для извлечения и анализа данных. Например, можно написать запрос rate(http_requests_total[1h]) для подсчёта среднего количества HTTP-запросов за последний час или count(error_count > 0) для отслеживания числа ошибок в минуту.</li>
24
<li>Настраивает информативные панели мониторинга (дашборды) в <a>Grafana</a>или других системах визуализации. На этих панелях в виде графиков и диаграмм отображаются основные показатели работы системы, что помогает быстро замечать проблемы и изменения.</li>
24
<li>Настраивает информативные панели мониторинга (дашборды) в <a>Grafana</a>или других системах визуализации. На этих панелях в виде графиков и диаграмм отображаются основные показатели работы системы, что помогает быстро замечать проблемы и изменения.</li>
25
<li>Выставляет пороговые значения для ключевых метрик в Alertmanager - системе оповещений Prometheus. Например, если загрузка процессора превышает 90% более пяти минут, система должна отправить SMS дежурному администратору. Или, если число HTTP-ошибок превысит десять в минуту, - предупредить всю команду через Telegram.</li>
25
<li>Выставляет пороговые значения для ключевых метрик в Alertmanager - системе оповещений Prometheus. Например, если загрузка процессора превышает 90% более пяти минут, система должна отправить SMS дежурному администратору. Или, если число HTTP-ошибок превысит десять в минуту, - предупредить всю команду через Telegram.</li>
26
</ul><p>После завершения настройки Prometheus переходит в автоматический режим: он регулярно собирает метрики, анализирует данные по заданным правилам и отправляет уведомления при обнаружении нарушений.</p>
26
</ul><p>После завершения настройки Prometheus переходит в автоматический режим: он регулярно собирает метрики, анализирует данные по заданным правилам и отправляет уведомления при обнаружении нарушений.</p>
27
<p><strong>Основные компоненты архитектуры Prometheus</strong></p>
27
<p><strong>Основные компоненты архитектуры Prometheus</strong></p>
28
<em>Изображение:<a>Prometheus</a></em><p><strong>Prometheus server</strong> - центральный элемент системы мониторинга. Он выполняет рад задач:</p>
28
<em>Изображение:<a>Prometheus</a></em><p><strong>Prometheus server</strong> - центральный элемент системы мониторинга. Он выполняет рад задач:</p>
29
<ul><li>собирает метрики с серверов и приложений (Retrieval);</li>
29
<ul><li>собирает метрики с серверов и приложений (Retrieval);</li>
30
<li>хранит их в базе (TSDB);</li>
30
<li>хранит их в базе (TSDB);</li>
31
<li>позволяет выполнять запросы через HTTP (HTTP server).</li>
31
<li>позволяет выполнять запросы через HTTP (HTTP server).</li>
32
</ul><p><strong>Service discovery</strong> - автоматически обнаруживает сервисы для мониторинга. Например, в Kubernetes или через файлы конфигурации.</p>
32
</ul><p><strong>Service discovery</strong> - автоматически обнаруживает сервисы для мониторинга. Например, в Kubernetes или через файлы конфигурации.</p>
33
<p><strong>Alertmanager</strong>- управляет системой оповещения и отправляет уведомления при сбоях.</p>
33
<p><strong>Alertmanager</strong>- управляет системой оповещения и отправляет уведомления при сбоях.</p>
34
<p><strong>Источники метрик (targets)</strong></p>
34
<p><strong>Источники метрик (targets)</strong></p>
35
<ul><li>Exporters - собирают метрики из сервисов (например, MySQL, Redis).</li>
35
<ul><li>Exporters - собирают метрики из сервисов (например, MySQL, Redis).</li>
36
<li>Short-lived jobs - передают данные через Pushgateway.</li>
36
<li>Short-lived jobs - передают данные через Pushgateway.</li>
37
<li>Node Exporter - отправляет системные метрики (нагрузка на CPU, использование дисков HDD/SSD и так далее).</li>
37
<li>Node Exporter - отправляет системные метрики (нагрузка на CPU, использование дисков HDD/SSD и так далее).</li>
38
</ul><p><strong>Инструменты визуализации</strong></p>
38
</ul><p><strong>Инструменты визуализации</strong></p>
39
<ul><li>Prometheus Web UI - базовый интерфейс для просмотра данных.</li>
39
<ul><li>Prometheus Web UI - базовый интерфейс для просмотра данных.</li>
40
<li>Grafana - создаёт дашборды и графики.</li>
40
<li>Grafana - создаёт дашборды и графики.</li>
41
<li>API Clients - позволяют интегрировать Prometheus с другими приложениями.</li>
41
<li>API Clients - позволяют интегрировать Prometheus с другими приложениями.</li>
42
-
</ul><p>Для начала перейдите на сайт<a>prometheus.io</a>и скачайте актуальную версию приложения для вашей операционной системы. После этого распакуйте архив и запустите исполняемый файл prometheus.exe. В результате вы должны увидеть командную строку с логами сервера, информацией о загрузке конфигурации, инициализации компонентов и сборе метрик.</p>
42
+
</ul><p>Для начала перейдите на сайт<a>prometheus.io</a>и скачайте актуальную версию приложения для вашей операционной системы. После этого распакуйте архив �� запустите исполняемый файл prometheus.exe. В результате вы должны увидеть командную строку с логами сервера, информацией о загрузке конфигурации, инициализации компонентов и сборе метрик.</p>
43
<p>Эти логи нужны для отладки и мониторинга работы Prometheus. Не закрывайте окно командной строки - это основной процесс, который должен работать в фоновом режиме. При закрытии окна сервер остановится.</p>
43
<p>Эти логи нужны для отладки и мониторинга работы Prometheus. Не закрывайте окно командной строки - это основной процесс, который должен работать в фоновом режиме. При закрытии окна сервер остановится.</p>
44
Пример запущенного сервера Prometheus в операционной системе Windows<em>Скриншот: командная строка Windows / Skillbox Media</em><p>Теперь откройте в браузере адрес http://localhost:9090. Если всё корректно работает, перед вами должен появиться веб-интерфейс Prometheus:</p>
44
Пример запущенного сервера Prometheus в операционной системе Windows<em>Скриншот: командная строка Windows / Skillbox Media</em><p>Теперь откройте в браузере адрес http://localhost:9090. Если всё корректно работает, перед вами должен появиться веб-интерфейс Prometheus:</p>
45
Интерфейс Prometheus в браузере Google Chrome<em>Скриншот:<a>Prometheus</a>/ Skillbox Media</em><p>Следующий шаг - выбор объекта для мониторинга. Это может быть веб-сервер, база данных или операционная система. Кроме того, вам потребуется экспортер - специальный инструмент, который собирает метрики с сервиса и преобразует их в формат, понятный для Prometheus.</p>
45
Интерфейс Prometheus в браузере Google Chrome<em>Скриншот:<a>Prometheus</a>/ Skillbox Media</em><p>Следующий шаг - выбор объекта для мониторинга. Это может быть веб-сервер, база данных или операционная система. Кроме того, вам потребуется экспортер - специальный инструмент, который собирает метрики с сервиса и преобразует их в формат, понятный для Prometheus.</p>
46
<p>Самый простой способ начать - установить<a>Node Exporter</a>для Linux и macOS или<a>Windows Exporter</a>. После настройки экспортера Prometheus начнёт собирать основные метрики компьютера: загрузку процессора, сетевой трафик, использование памяти, состояние дисков и другие показатели.</p>
46
<p>Самый простой способ начать - установить<a>Node Exporter</a>для Linux и macOS или<a>Windows Exporter</a>. После настройки экспортера Prometheus начнёт собирать основные метрики компьютера: загрузку процессора, сетевой трафик, использование памяти, состояние дисков и другие показатели.</p>
47
На изображении показаны два активных задания (jobs) в интерфейсе Prometheus: одно отвечает за сбор метрик самого Prometheus, другое - за сбор метрик операционной системы Windows через Windows Exporter<em>Скриншот:<a>Prometheus</a>/ Skillbox Media</em><p>После добавления экспортера в Prometheus вы сможете анализировать данные с помощью языка запросов PromQL и встроенных инструментов визуализации. Например, чтобы отследить изменение загрузки процессора в пользовательском режиме за последние пять минут, введите следующий запрос:</p>
47
На изображении показаны два активных задания (jobs) в интерфейсе Prometheus: одно отвечает за сбор метрик самого Prometheus, другое - за сбор метрик операционной системы Windows через Windows Exporter<em>Скриншот:<a>Prometheus</a>/ Skillbox Media</em><p>После добавления экспортера в Prometheus вы сможете анализировать данные с помощью языка запросов PromQL и встроенных инструментов визуализации. Например, чтобы отследить изменение загрузки процессора в пользовательском режиме за последние пять минут, введите следующий запрос:</p>
48
rate(windows_cpu_time_total{mode="user"}[5m])<p>Затем перейдите на вкладку Graph, чтобы увидеть результаты в виде графика. В этом режиме вам доступны настройки временного диапазона и других параметров визуализации для детального анализа данных:</p>
48
rate(windows_cpu_time_total{mode="user"}[5m])<p>Затем перейдите на вкладку Graph, чтобы увидеть результаты в виде графика. В этом режиме вам доступны настройки временного диапазона и других параметров визуализации для детального анализа данных:</p>
49
График PromQL-запроса в Prometheus, который отображает загрузку процессора за пятиминутный период через Windows Exporter<em>Скриншот:<a>Prometheus</a>/ Skillbox Media</em><p>После основ вы можете перейти к более продвинутым возможностям: настройке сложных запросов, подключению Grafana для более наглядной визуализации и использованию других инструментов мониторинга. Вот полезные ресурсы для углублённого самостоятельного изучения:</p>
49
График PromQL-запроса в Prometheus, который отображает загрузку процессора за пятиминутный период через Windows Exporter<em>Скриншот:<a>Prometheus</a>/ Skillbox Media</em><p>После основ вы можете перейти к более продвинутым возможностям: настройке сложных запросов, подключению Grafana для более наглядной визуализации и использованию других инструментов мониторинга. Вот полезные ресурсы для углублённого самостоятельного изучения:</p>
50
<ul><li><a>официальная документация Prometheus</a>;</li>
50
<ul><li><a>официальная документация Prometheus</a>;</li>
51
<li><a>руководство по использованию PromQL</a>;</li>
51
<li><a>руководство по использованию PromQL</a>;</li>
52
<li><a>инструкция по подключению Grafana к Prometheus</a>;</li>
52
<li><a>инструкция по подключению Grafana к Prometheus</a>;</li>
53
<li><a>примеры файлов конфигурации на GitHub</a>;</li>
53
<li><a>примеры файлов конфигурации на GitHub</a>;</li>
54
<li><a>каталог поддерживаемых экспортеров</a>;</li>
54
<li><a>каталог поддерживаемых экспортеров</a>;</li>
55
<li><a>руководство по настройке оповещений через Alertmanager</a>;</li>
55
<li><a>руководство по настройке оповещений через Alertmanager</a>;</li>
56
<li><a>библиотека готовых правил оповещения</a>.</li>
56
<li><a>библиотека готовых правил оповещения</a>.</li>
57
</ul><a>Практический курс: "Профессия DevOps-инженер" Узнать о курсе</a>
57
</ul><a>Практический курс: "Профессия DevOps-инженер" Узнать о курсе</a>