1 Обнаружение сети

Обзор

Zabbix предлагает функциональность автоматического обнаружения сети, которая является эффективной и очень гибкой.

При правильной настройке обнаружения сети вы можете:

  • ускорить развертывание Zabbix
  • упростить администрирование
  • использовать Zabbix в быстро меняющихся средах без избыточного администрирования

Обнаружение сети в Zabbix основано на следующей информации:

  • диапазоны IP-адресов
  • доступность внешних сервисов (FTP, SSH, WEB, POP3, IMAP, TCP и т. д.)
  • информация, полученная от Zabbix агент (поддерживается только незашифрованный режим)
  • информация, полученная от SNMP-агент

Оно НЕ предоставляет:

  • обнаружение топологии сети

Обнаружение сети в основном состоит из двух фаз: обнаружение и действия.

Обнаружение

Zabbix периодически сканирует диапазоны IP-адресов, заданные в правилах обнаружения сети. Частота проверки настраивается отдельно для каждого правила.

Для каждого правила задан набор проверок сервисов, которые должны выполняться для диапазона IP-адресов.

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

Размер очереди сетевых проверок ограничен приблизительно 2000000 или 4 ГБ памяти. Если очередь переполнится, правило обнаружения будет пропущено, а в журнал будет выведено предупреждающее сообщение. Для мониторинга количества проверок обнаружения в очереди можно использовать внутренний элемент данных zabbix[discovery_queue].

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

Если правило обнаружения изменено во время выполнения, текущее выполнение обнаружения будет прервано.

Каждая проверка сервиса и узла сети (IP), выполняемая модулем обнаружения сети, генерирует событие обнаружения.

Событие Результат проверки сервиса
Сервис обнаружен Сервис находится в состоянии 'up' после состояния 'down' или при обнаружении в первый раз.
Сервис доступен Сервис находится в состоянии 'up' после того, как он уже был в состоянии 'up'.
Сервис потерян Сервис находится в состоянии 'down' после состояния 'up'.
Сервис недоступен Сервис находится в состоянии 'down' после того, как он уже был в состоянии 'down'.
Узел сети обнаружен По крайней мере один сервис узла сети находится в состоянии 'up' после того, как все сервисы этого узла сети были в состоянии 'down', либо обнаружен сервис, принадлежащий незарегистрированному узлу сети.
Узел сети доступен По крайней мере один сервис узла сети находится в состоянии 'up' после того, как по крайней мере один сервис уже был в состоянии 'up'.
Узел сети потерян Все сервисы узла сети находятся в состоянии 'down' после того, как по крайней мере один из них был в состоянии 'up'.
Узел сети недоступен Все сервисы узла сети находятся в состоянии 'down' после того, как они уже были в состоянии 'down'.

Действия

События обнаружения могут служить основой для соответствующих действий, таких как:

  • Отправка уведомлений
  • Добавление/удаление узлов сети
  • Включение/отключение узлов сети
  • Добавление узлов сети в группу
  • Удаление узлов сети из группы
  • Добавление тегов к узлу сети
  • Удаление тегов с узла сети
  • Привязка шаблона к узлам сети/отвязка шаблона от узлов сети
  • Выполнение удалённых скриптов

Эти действия можно настроить с учётом типа устройства, IP-адреса, состояния, времени работы/простоя и т. д. Подробную информацию о настройке действий для событий на основе обнаружения сети см. на страницах операций и условий действия.

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

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

Создание узла сети

Узел сети добавляется, если выбрана операция Add host. Узел сети также будет добавлен, даже если операция Add host отсутствует, если вы выберете операции, приводящие к действиям над узлом сети. Такими операциями являются:

  • включить узел сети
  • отключить узел сети
  • добавить узел сети в группу узлов сети
  • привязать шаблон к узлу сети

Созданные узлы сети добавляются в группу Discovered hosts (по умолчанию; настраивается в Administration > General > Other). Если вы хотите, чтобы узлы сети добавлялись в другую группу, добавьте операцию Remove from host groups (указав "Discovered hosts"), а также операцию Add to host groups (указав другую группу узлов сети), поскольку узел сети должен принадлежать группе узлов сети.

IP-адрес обнаруженного устройства вместе с источником обнаружения (сервер Zabbix, прокси Zabbix или группа прокси) и типом интерфейса используется в качестве критерия для поиска узла сети в системе. Если узел сети с тем же IP-адресом, типом интерфейса и источником обнаружения уже существует, именно этот узел сети будет целевым для выполнения операций. Если источник обнаружения отличается, обнаруженный объект рассматривается как другой узел сети, и может быть создан новый узел сети.

Если IP-адрес обнаруженного узла сети изменён или интерфейс удалён, при следующем обнаружении будет создан новый узел сети.

Именование узлов сети

При добавлении узлов сети имя узла сети определяется по результату обратного DNS-запроса или по IP-адресу, если обратное разрешение имени не удалось. Поиск выполняется с сервера Zabbix или прокси Zabbix, в зависимости от того, кто выполняет обнаружение. Если поиск не удался на прокси, на сервере он повторно не выполняется. Если узел сети с таким именем уже существует, к имени следующего узла сети будет добавлено _2, затем _3 и так далее.

Также можно не использовать DNS/IP-поиск и вместо этого использовать значение элемента данных в качестве имени узла сети, например:

  • Можно обнаружить несколько серверов с запущенным агентом Zabbix, используя элемент данных агента Zabbix для обнаружения, и автоматически назначить им корректные имена на основе строкового значения, возвращаемого этим элементом данных
  • Можно обнаружить несколько сетевых устройств SNMP, используя элемент данных агента SNMP для обнаружения, и автоматически назначить им корректные имена на основе строкового значения, возвращаемого этим элементом данных

Если имя узла сети было задано с использованием значения элемента данных, оно не обновляется при последующих проверках обнаружения. Если задать имя узла сети с использованием значения элемента данных невозможно, используется значение по умолчанию (имя DNS).

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

Удаление узла сети

Узлы сети, обнаруженные правилом сетевого обнаружения, автоматически удаляются из Monitoring > Discovery, если обнаруженный объект больше не находится в диапазоне IP-адресов правила. Узлы сети удаляются немедленно.

Создание интерфейсов при добавлении узлов сети

Когда узлы сети добавляются в результате сетевого обнаружения, для них создаются интерфейсы в соответствии со следующими правилами:

  • Обнаруженные сервисы — например, если проверка SNMP выполнена успешно, будет создан интерфейс SNMP.
  • Если узел сети ответил как на запросы Zabbix агент, так и на запросы SNMP, будут созданы оба типа интерфейсов.
  • Если критериями уникальности являются данные, возвращаемые Zabbix агент или SNMP, первый найденный для узла сети интерфейс будет создан как интерфейс по умолчанию. Другие IP-адреса будут добавлены как дополнительные интерфейсы. Условия действия (например, Host IP) не влияют на добавление интерфейсов. Обратите внимание, что это будет работать, если все интерфейсы обнаружены одним и тем же правилом обнаружения. Если другое правило обнаружения обнаружит другой интерфейс того же узла сети, будет добавлен дополнительный узел сети.
  • Если узел сети ответил только на проверки агента, он будет создан только с интерфейсом агента. Если позже он начнет отвечать на SNMP, будут добавлены дополнительные интерфейсы SNMP.
  • Если изначально были созданы 3 отдельных узла сети, обнаруженные по критерию уникальности "IP", а затем правило обнаружения изменено так, что узлы сети A, B и C имеют одинаковый результат критерия уникальности, B и C будут созданы как дополнительные интерфейсы для A, первого узла сети. Отдельные узлы сети B и C сохранятся. В Monitoring > Discovery добавленные интерфейсы будут отображаться в столбце "Discovered device" черным шрифтом и с отступом, но в столбце "Monitored host" будет отображаться только A, первый созданный узел сети. Для IP-адресов, которые считаются дополнительными интерфейсами, "Uptime/Downtime" не измеряется.

Изменение настройки прокси

Узлы сети, обнаруженные разными прокси, не всегда рассматриваются как разные узлы сети. Проверки обнаружения и уникальности зависят от структуры группы прокси: когда прокси выполняет правило обнаружения и создает узел сети, этот узел сети добавляется в родительскую группу прокси данного прокси, а не назначается самому прокси. Когда Zabbix проверяет уникальность IP-адресов во время обнаружения, он проверяет узлы сети, которые мониторятся родительской группой прокси. Узлы сети, мониторящиеся отдельными прокси в этой группе (включая прокси, который выполнил обнаружение), игнорируются при проверке уникальности, что может привести к появлению дублирующихся узлов сети, если несколько прокси мониторят пересекающиеся подсети.

Хотя такое поведение позволяет обнаружению работать в перекрывающихся диапазонах IP-адресов, используемых разными подсетями, изменение прокси, назначенного уже мониторящейся подсети, является более сложной задачей, поскольку изменения прокси должны последовательно применяться к обнаруженным узлам сети и к членству в родительской группе прокси, чтобы избежать дубликатов.

Например, шаги для замены прокси в правиле обнаружения:

  1. отключить правило обнаружения
  2. синхронизировать конфигурацию прокси
  3. заменить прокси в правиле обнаружения
  4. заменить прокси для всех узлов сети, обнаруженных этим правилом (убедитесь, что узлы сети в родительской группе прокси и все узлы сети, мониторящиеся отдельными прокси в этой группе, обновлены во избежание дубликатов)
  5. включить правило обнаружения