Skip to content

Общая информация

Функционал

Glaber - это система мониторинга.

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

Основная задача и цель Glaber - сделать так, чтобы пользователь (оператор) имел максимально быстро и оперативно понимание о состоянии домена мониторинга.

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

Оптимизация Glaber для высокой производительности обеспечила низкую ресурсоемкость.

История проекта

Системные требования

Для типового мониторинга до 15 тысяч устройств, и скоростью снятия и записи метрик 10 тысяч метрик в секунду нужен сервер с 8 ядрами, 16 Gb памяти и дисковым пространством достаточным для хранения метрик.

Место на диске стоит планировать как примерно 2 байта на одну метрику. При преобладании строковых или лог-данных цифра может быть больше.

Для скорости записи в 10 тысяч метрик в секунду, потребуется примерно 1.8 Gb места в сутки.

SSD диски не обязательны. Сервер может работать в Docker, но рекомендуется работа с системами виртуализации и изоляции, поддерживающими полноценную работу с сетевым стеком для использования эффективных методов работы с сетью (RAW сокеты, PCAP интерфейс)

Рассчет ресурсов сервера

Совместимость

Сервер и прокси -сервер работают в большинстве актуальных Linux систем. Агенты существуют под большинство существующих ОС, включая Microsoft Windows, Apple MacOS.

Архитектура

Glaber состоит из трех основных компонентов: СУБД для хранения конфигурации и списка инцидентов, Time-series базы данных для хранения накопленных метрик, логов и трендов, сервера-приложения, который занимается сбором метрик, сохранением, подсчетом и обработкой триггеров и эскалаций, и API и веб интерфейса.

Структурно эти системы связаны между собой так:

Архитектура Glaber

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

Прокси используются для разделения нагрузки, либо для организации «локального присутствия» мониторинга, чтобы не терять метрики в случае проблем с надежностью каналов связи с удаленными локациями. Для сборки метрик с серверов существует агент под большинство ОС.

Управление конфигурацией, просмотр результатов мониторинга происходит через веб-интерфейс. Интерфейс реализован как типичное LAMP приложение посредством языка PHP. Также для автоматизированных средства есть JSON интерфейс (API), реализованный там-же.

Конфигурация сохраняется в реляционной базе данных. Поддерживаются MySQL и Postgres сервера.

Сервер выгружает метрики в базу данных для хранения временных метрик. Поддерживаются ClickHouse, VictoriaMetrics, возможно легкая адаптация других подходящих решений. Для оперативного взаимодействия и для получения метрик API и пользовательский интерфейс могут напрямую запрашивать данные из сервера напрямую через trapper интерфейс

Технические детали реализации:

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

Web UI написан на языке PHP, для работы UI используется JQuery. Для некоторых элементов используются специфичные js библиотеки: для таблиц и для динамических топологий