Мониторинг
February 18

Pull или Push: какую систему мониторинга выбрать? (1 часть)

Типы систем мониторинга

Мониторинг всегда был основным компонентом ИТ-систем. Он отвечает за обнаружение и помощь в локализации проблем. Разработчикам (и тестировщикам) необходимо обращать внимание на систему мониторинга и участвовать в ее построении и оптимизации. Сейчас существует более сотни систем мониторинга, которые состоят из:

  • Объект мониторинга:
    1. Общий - общий метод мониторинга, подходит для большинства объектов мониторинга;
    2. Специализированный - настраивается под конкретную функцию, например, система Java JMX, защита от перегрева процессора, защита от сбоев питания жесткого диска и т.д.
  • Метод сбора данных:
    1. Push (CollectD, Zabbix и InfluxDB) - агенты сами пишут в базу данных;
    2. Pull (Prometheus, SNMP и JMX) - система мониторинга собирает с каждого агента информацию
  • Режим развертывания:
    1. Coupled (связанный режим) - мониторинговая система развертывается вместе с основным ПО;
    2. Standalone (автономный режим) - отдельное развертывание мониторинговой системы, которая работает независимо от других компонентов;
    3. Distributed (распределённый режим) - cистема мониторинга построена на распределённой архитектуре, что позволяет масштабировать её горизонтально;
    4. SaaS (software as a service — программное обеспечение как услуга) - не требует развертывания, предоставляется сторонними компаниями. Не нужно разворачивать собственные инстанции — они просто используют готовое решение через облако
  • Метод получения данных:
    1. Тип интерфейса - данные можно получить только через API;
    2. DSL (Domain-Specific Language) - использование специализированного языка запросов, разработанного для конкретной задачи, например PromQL и GraphQL;
    3. SQL - используется стандартный SQL или его вариации (SQL-like), чтобы запрашивать данные из баз данных
  • Инструменты
    1. Open-source и бесплатные - системы с открытым исходным кодом, которые можно использовать бесплатно (например, Prometheus и InfluxDB standalone edition);
    2. Коммерческие с открытым исходным кодом - эти системы имеют открытый исходный код, но их расширенные функции предоставляются на коммерческой основе (например, InfluxDB cluster edition, Elastic Search X-Pack);
    3. Коммерческие с закрытым исходным кодом - это полностью проприетарные (закрытые) системы, которые разрабатываются частными компаниями и доступны только на платной основе(например, DataDog, Splunk и AWS Cloud Watch).

Pull или Push?

Существует множество вариантов построения платформы системы мониторинга для внутреннего использования, будь то самостоятельная сборка с использованием решений с открытым исходным кодом или коммерческих SaaS-продуктов. Однако независимо от того, будет ли это решение с открытым исходным кодом или коммерческий SaaS-продукт, при реальном внедрении необходимо продумать, как передать данные платформе мониторинга или как платформа мониторинга может получить эти данные. Для этого нужно сделать выбор метода получения данных: Pull или Push.

Система мониторинга на основе Pull-модели, как следует из названия, активно запрашивает метрики у объектов мониторинга, которые должны обладать возможностью быть доступными удалённо. В отличие от неё, Push-модель мониторинга не запрашивает данные самостоятельно — объекты мониторинга сами отправляют метрики в систему.

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

Источник alibabacloud |

📢 Канал в телеграмм

😊 Для донатов