Базовая задача любой системы мониторинга — получать данные о состоянии серверов, сети и приложений. Для этого используются два метода: агентный и безагентный. В статье рассмотрим, как устроен агент мониторинга, чем Zabbix agent отличается от Zabbix agent 2 и как с этой темой работает продукт «Пульт».
Разобраться в теме нам помогает Дмитрий Унтила, CPO «Пульта» и «Графини» в «Лаборатории Числитель», более 10 лет работающий с системами мониторинга.
Оглавление
- Что такое агент мониторинга простыми словами
- Зачем ИТ-инфраструктуре собственный агент мониторинга
- Путь данных — от хоста до дашборда
- Агентный и безагентный мониторинг: чем отличаются подходы
- Примеры агентов мониторинга
- Плюсы и ограничения агентного подхода
- Как понять, нужен ли вам агент мониторинга
- Частые ошибки при внедрении агента
- Итоги
- FAQ
Что такое агент мониторинга простыми словами
Представьте, что за каждым сервером закреплен свой помощник. Он ничего не пропускает и по запросу или по расписанию докладывает системе мониторинга, что происходит.
Таким образом, под агентом понимают программу, которая устанавливается на хост (сервер, компьютер, сетевое устройство) и отвечает за сбор метрик: загрузки процессора, памяти, свободного места на диске и других показателей. Собранные данные передаются на сервер мониторинга, где они превращаются в графики, дашборды и оповещения.
Альтернативным методом мониторинга является безагентный. В таком случае система без установки чего-либо на хост либо самостоятельно собирает данные с оборудования по протоколу (например, SNMP,) либо обрабатывает полученные события. Оба подхода используются на практике, выбор зависит от задачи.
Зачем ИТ‑инфраструктуре собственный агент мониторинга
Несмотря на развитие безагентных протоколов, агенты мониторинга все еще остаются востребованными.
Агент работает локально, поэтому собирает больше данных — в том числе чувствительных и недоступных по внешнему протоколу. Он расширяем: безагентные протоколы дают фиксированный набор возможностей, а конфигурацию агента можно донастроить под сбор почти любой информации с устройства. Также доступна простая автоматизация: если на сервере падает служба, система мониторинга может поручить агенту перезапустить ее. ИБ-специалисты относятся к этому настороженно, но при разумном ограничении прав — это рабочий сценарий.
Агент упрощает эксплуатацию. В «Пульте» для многих типовых сервисов, включая СУБД, уже есть готовые шаблоны сбора метрик — достаточно поставить агента и включить необходимый.
Наконец, агентный мониторинг бывает выгоднее для безопасности сети. Чтобы безагентно опрашивать десятки сервисов, для каждого приходится открывать отдельный доступ, то есть создавать лишние точки уязвимости. С агентом достаточно одного порта до сервера мониторинга: данные собираются на месте и уходят одним каналом.
Путь данных — от хоста до дашборда
Что агент собирает на хосте
К базовым показателям, которые снимает почти любой агент мониторинга, относятся загрузка процессора, использование оперативной памяти, свободное место на диске и похожие системные метрики. Поверх этого можно донастроить сбор специфичных для конкретного приложения показателей.
Как данные попадают на сервер мониторинга
После сбора агент передает метрики на сервер мониторинга — центральный коллектор, который принимает данные со всех хостов, хранит их и строит на их основе дашборды и оповещения. В «Пульте», как и в Zabbix, логика сбора описывается через шаблоны, поэтому конфигурацию не нужно придумывать с нуля.
Активный и пассивный режим агента
Пассивный агент сидит на хосте и ничего не делает, пока к нему не обратится сервер мониторинга с конкретным запросом. Например: «Дай значение загрузки процессора». Активный агент устроен иначе: он сам подключается к серверу мониторинга, спрашивает, какие задачи нужно выполнить, собирает данные и отправляет их.
Активный режим удобен при централизованной массовой раскатке: агенты сами регистрируются на сервере после установки, а сервер мониторинга при этом меньше нагружен. Есть и плюс в безопасности: при активном режиме на хосте можно вообще не открывать входящий порт, поэтому найти в агенте уязвимость снаружи не получится. Пассивный агент обязан слушать входящие подключения, а значит — требует открытого порта.
Ниже — краткое сравнение двух режимов.
Таблица составлена на основе интервью с Дмитрием Унтилой и официальной документации Zabbix — раздела «Passive and active checks».
Агентный и безагентный мониторинг: чем отличаются подходы
Возьмем мониторинг сервера на Linux. Его можно решить агентом мониторинга или безагентно — например, через SSH, выполняя команды удаленно. Для стандартного набора метрик из коробки разница невелика. Но при кастомной проверке картина меняется: в агентном мониторинге придется зайти на каждый хост и поменять конфигурацию агента, а при тысячах серверов это отдельная задача автоматизации. В безагентном методе достаточно один раз описать новую команду в самой системе мониторинга, ничего не меняя на хостах. Но если агентов можно расширять почти бесконечно, то безагентный протокол ограничен изначальной конфигурацией.
Есть сценарии, в которых агентный мониторинг вообще не применим. Это сетевое оборудование, которое поддерживает только протоколы вроде SNMP и физически не дает поставить на себя стороннее ПО; программно-аппаратные комплексы (ПАК), где производитель запрещает установку стороннего софта под угрозой снятия с поддержки; и случаи, когда установку агента запрещает внутренний регламент безопасности компании.
Примеры агентов мониторинга
Zabbix agent и Zabbix agent 2: в чем разница
Zabbix agent — это классический агент мониторинга с открытым исходным кодом, который устанавливается на хост и передает метрики на сервер Zabbix. Первая версия написана на языке C и расширялась ограниченно — через выполнение внешних команд.
Zabbix agent 2 — следующее поколение, написанное на Go, с архитектурой на подключаемых модулях. Это позволяет не ждать обновления самого агента для новой задачи, а написать отдельный плагин. По данным официальной документации Zabbix, agent 2 задуман как полноценная замена классическому агенту: он поддерживает всю прежнюю функциональность, пассивные проверки работают так же, как в Zabbix agent, а активные получили более гибкое расписание. То есть главное отличие между агентами — не в принципах активного и пассивного режима, а в языке реализации и удобстве расширения.
Агент «Пульта»: совместимость с экосистемой Zabbix
«Пульт» продолжает историю Zabbix в России. Его агент совместим с Zabbix agent в обе стороны: агент Zabbix может работать с сервером «Пульта», а агент «Пульта» — с сервером на базе Zabbix.
Собственный агент был разработан вендором, чтобы полностью контролировать код решения, что особенно важно в контексте импортозамещения. Другая значимая причина — совместимость с отечественными операционными системами. У «Пульта» есть агент в Docker-контейнере, работающий на любой системе с Docker, а также готовые пакетные сборки под Astra Linux 1.8 и RED OS 8. Кроме того, решение проходит сертификацию по требованиям ФСТЭК России (четвертый уровень доверия — показатель того, насколько ПО можно доверять с точки зрения информационной безопасности), и агенты будут сертифицированы вместе с остальным продуктом.
Как и в Zabbix, в российском аналоге вся логика сбора метрик оформлена в виде шаблонов, большинство которых описывают безагентные проверки. Реестр готовых шаблонов опубликован на сайте продукта, что снимает с новичка задачу собирать конфигурацию с нуля.
Плюсы и ограничения агентного подхода
Среди основных плюсов:
- доступ к более широкому набору метрик;
- расширяемость под нестандартные задачи;
- безопасная сетевая модель без открытых входящих портов при активном режиме.
Что касается ограничений: во-первых, агента нужно устанавливать, обновлять и настраивать на каждом хосте — а при большом парке серверов это отдельный процесс автоматизации. Во-вторых, часть оборудования не поддерживает установку агента. В-третьих, в некоторых компаниях действует внутренний запрет на стороннее ПО на серверах — тогда агентный мониторинг оказывается вне игры независимо от технических плюсов.
Как понять, нужен ли вам агент мониторинга
Рациональнее всего делать выбор в четыре этапа:
- оценить, можно ли мониторить нужный объект агентом (если это «железо» без операционной системы или закрытый ПАК, ответ очевиден);
- проверить, есть ли безагентная альтернатива, которая закрывает ту же задачу;
- сопоставить плюсы и минусы: есть ли готовый шаблон для агентного мониторинга нужного сервиса «из коробки» и существует ли доступное безагентное решение, если агент не подходит;
- учесть ограничения информационной безопасности: не запрещает ли регламент установку стороннего софта и какой режим агента (активный или пассивный) допустим с точки зрения сетевой политики компании.
Частые ошибки при внедрении агента
На практике администраторы чаще всего сталкиваются с одними и теми же сложностями:
- забывают открыть порт, который нужен агенту для работы (без этого связь с сервером мониторинга не установится);
- ставят сборку агента не под ту операционную систему, хотя совместимость версии агента с ОС нужно обязательно перепроверять;
- забывают указать адрес сервера мониторинга при настройке пассивного режима, из-за чего агент отказывается отвечать незнакомому серверу;
- не добавляют агента в автозагрузку — тогда все работает до первой перезагрузки, после которой агент не поднимается сам, передача данных прекращается, и в системе мониторинга разом «краснеет» половина инфраструктуры.
Итоги
Агент мониторинга — это программа на хосте, которая собирает метрики и передает их на сервер мониторинга в активном или пассивном режиме. Он дает более широкий доступ к данным и гибкость настройки, но требует установки и обслуживания на каждом хосте. При этом выбирая между агентным и безагентным методами, почти всегда стоит балансировать между гибкостью сбора данных и стоимостью обслуживания парка агентов.
FAQ
Что такое агент мониторинга простыми словами?
Агент — это программа, которая устанавливается на хост (сервер, компьютер, сетевое устройство) и собирает метрики: загрузку процессора, использование памяти, свободное место на диске и другие показатели. Собранные данные передаются на сервер мониторинга, где превращаются в графики, дашборды и оповещения.
Чем агентный мониторинг отличается от безагентного?
Агент работает локально и собирает больше данных, в том числе чувствительных, а его конфигурацию можно расширить под нестандартные задачи. Безагентный метод обходится без установки на хост — данные собираются по протоколу (например, SNMP) или через обработку событий, но набор возможностей ограничен изначальной конфигурацией.
В чем разница между активным и пассивным режимом агента?
Пассивный агент отвечает только на запросы сервера мониторинга и требует открытого входящего порта на хосте. Активный агент сам подключается к серверу, узнает задачи и отправляет данные — это удобно при массовой раскатке и не требует открывать входящий порт.
Чем Zabbix agent 2 отличается от Zabbix agent?
Zabbix agent написан на C и расширяется через выполнение внешних команд. Zabbix agent 2 написан на Go и построен на подключаемых модулях — новые задачи решаются отдельным плагином без ожидания обновления самого агента. Активные и пассивные проверки при этом работают по тем же принципам, что и в первой версии.
Совместим ли агент «Пульта» с Zabbix?
Да, совместимость двусторонняя: агент Zabbix может работать с сервером «Пульта», а агент «Пульта» — с сервером на базе Zabbix.
Агент — это программа, которая устанавливается на хост (сервер, компьютер, сетевое устройство) и собирает метрики: загрузку процессора, использование памяти, свободное место на диске и другие показатели. Собранные данные передаются на сервер мониторинга, где превращаются в графики, дашборды и оповещения.
Чем агентный мониторинг отличается от безагентного?
Агент работает локально и собирает больше данных, в том числе чувствительных, а его конфигурацию можно расширить под нестандартные задачи. Безагентный метод обходится без установки на хост — данные собираются по протоколу (например, SNMP) или через обработку событий, но набор возможностей ограничен изначальной конфигурацией.
В чем разница между активным и пассивным режимом агента?
Пассивный агент отвечает только на запросы сервера мониторинга и требует открытого входящего порта на хосте. Активный агент сам подключается к серверу, узнает задачи и отправляет данные — это удобно при массовой раскатке и не требует открывать входящий порт.
Чем Zabbix agent 2 отличается от Zabbix agent?
Zabbix agent написан на C и расширяется через выполнение внешних команд. Zabbix agent 2 написан на Go и построен на подключаемых модулях — новые задачи решаются отдельным плагином без ожидания обновления самого агента. Активные и пассивные проверки при этом работают по тем же принципам, что и в первой версии.
Совместим ли агент «Пульта» с Zabbix?
Да, совместимость двусторонняя: агент Zabbix может работать с сервером «Пульта», а агент «Пульта» — с сервером на базе Zabbix.