В последнее время большая часть рынка мониторинга компьютерных систем принадлежит Zabbix, о котором написано чуть больше, чем всё. Но сегодня речь пойдет о системе мониторинга, взорвавшей мне мозг.
Программа Prometheus была создана в 2012 и обещает быть очень перспективным айти решением. Эта система актуальна при
обслуживании компьютерных систем в средних и крупных компаниях на аутсорсинге. Рассмотрим его поближе.
Особенности Prometheus
- Темпоральная база данных
- Гибкий язык запросов для работы с этой базой метрик
- Основная модель получения данных - pullPush. Модель доступна при использовании внешнего gateway.
Архитектура Prometheus
Prometheus сервер - это всего лишь один из компонентов, выполняющий функцию сбора метрик от различных источников. Такими источниками могут быть, например:
- Node Exporter, отвечающий за сбор метрик с физической машины (загрузка процессора, количество
- свободной памяти, количество ошибок на Ethernet интерфейсе),
- MySQLd Exporter, собирающий метрики с сервера MySQL и т.д.
- С полным списком можно ознакомиться на официальном сайте.
Модель хранения данных
Данные в хранятся в темпоральном виде и это звучит непонятно. Все данные - это наборы так называемых time series - совокупность метрик и лэйблов, привязанных к временной шкале. Каждая метрика - это общий уникальный идентификатор того, что мы хотим наблюдать (например, cpu_load_average). Лэйбл - это пара key:value, идентифицирующая отдельный экземпляр метрики.
Что это значит? Я думаю проще всего понять на примере. Допустим, мы хотим отслеживать состояние загрузки процессора на трех серверах, тогда нам нужно создать три различных time series:
- cpu_load_average{dc="sity1",hostname="server1"}
- cpu_load_average{dc="sity2",hostname="server2"}
- cpu_load_average{dc="sity3",hostname="server3"}
Для более детального ознакомления с Prometheus, предположим, что мы хотим мониторить состояние виртуального хостинга. Примерные шаги тогда будут такими:
- Установка и запуск сервера
- Установка и запуск Node Exporter
- Настройка оповещений
- Установка Grafana для более удобного графического представления информации
Продолжение статьи читайте в
части 1.