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

 

Проект Prometheus

Проект Prometheus стартовал в 2012 году как система мониторинга для музыкальной социальной сети SoundCloud. Дело в том, что под используемую в SoundCloud архитектуру микросерверов не совсем подходили традиционные системы мониторинга сервисов и хостов. Со временем Prometheus зарекомендовал себя как одно из лучших решений для подобных случаев.

Сегодня это базовая система в таких проектах, как Docker и Boxever. Представляет собой организованный набор инструментов, предлагающий метрики для хранения, агрегации, визуализации и оповещения. В большинстве традиционных систем агенты периодически отправляют данные на центральный сервер. В Prometheus децентрализованная самоуправляемая (self-managed) архитектура, когда легко можно контролировать сотни серверов с одного места, при этом отдельные команды могут использовать свои независимые серверы мониторинга.

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

Все данные представлены в виде временных рядов. Метки времени имеют точность до миллисекунд, значения представлены c 64-битной точностью. Гибкий язык запросов позволяет выбрать и при необходимости сохранить отдельно любую информацию из полученного набора, строить на их основе графики или генерировать алерты. Кроме этого, сервер при помощи клиентских библиотек или компонента pushgateway может получать информацию с систем, включающихся в сеть периодически.

Проект предоставляет клиентские библиотеки, написанные на Go, Java, Python и Ruby, есть сторонние решения на bash, Node.js, Haskell и С#/.NET. Для передачи данных между компонентами выбран HTTP.

Сервер способен отображать графики, но они подходят для эпизодического наблюдения или при отладке. В качестве постоянного интерфейса предлагается компонент PromDash, который может подключаться к любым выбранным серверам для визуализации данных на панелях. PromDash выводит данные с собственно Prometheus или Graphite. Доступен API, который может быть использован для визуализации собранных данных на сторонних инструментах, шаблоны консоли, позволяющие построить свою консоль для визуализации нужных данных, и консольный prometheus_cli.

За обработку алертов отвечает Alertmanager, умеющий на сегодня отправлять сообщения по email и PagerDuty, хотя при желании легко прикрутить другие варианты. Написан на Go (Golang) — это компилируемый многопоточный язык программирования, разработанный в Google. PromDash написан на Ruby. Распространяется на условиях Apache License 2.0.

 

Установка Prometheus на сервер Ubuntu 14.04 LTS

Проект предлагает исходные тексты и сборку сервера под 32- и 64-битные процессоры. Сборка рекомендуется для установки, но, если учесть, что Prometheus состоит из нескольких элементов, при необходимости доустановки их уже придется компилировать. Есть Chef cookbooks и контейнер для Docker. Проект предоставляет инструкцию по установке и документацию, описывающую разнообразные параметры. С ними следует ознакомиться, чтобы понять все возможности, заложенные в Prometheus.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Check Also

Исходный кот. Как заставить нейронную сеть ошибиться

Нейросети теперь повсюду, и распознавание объектов на картинках — это одно из самых популя…

Оставить мнение