1. Сетевое обнаружение
Обзор
Zabbix предлагает функцию автоматического обнаружения сети, которая отличается эффективностью и высокой гибкостью.
При правильной настройке обнаружения сети вы можете:
- Ускорить развертывание Zabbix.
- Упростить администрирование.
- Использовать Zabbix в быстро меняющихся средах без чрезмерных затрат на администрирование.
Обнаружение сети в Zabbix основано на следующей информации:
- Диапазоны IP-адресов
- Доступность внешних служб (FTP, SSH, WEB, POP3, IMAP, TCP и т. д.)
- Информация, полученная от агента Zabbix (поддерживается только незашифрованный режим)
- Информация, полученная от SNMP-агента
Оно НЕ предоставляет обнаружение топологии сети.
Обнаружение сети в основном состоит из двух фаз: обнаружения и действий.
Обнаружение
Zabbix периодически сканирует диапазоны IP-адресов, определенные в правилах сетевого обнаружения. Частота проверки настраивается отдельно для каждого правила.
Для каждого правила определяется набор проверок служб, которые должны выполняться для диапазона IP-адресов.
Правила обнаружения обрабатываются менеджером обнаружения. Менеджер обнаружения создает задание для каждого правила со списком задач (сетевых проверок). Сетевые проверки выполняются параллельно доступными рабочими процессами обнаружения (их количество настраивается во веб-интерфейсе отдельно для каждого правила). Исключение составляют проверки SNMPv3, которые обрабатываются одним рабочим процессом. Последовательно планируются только проверки с одинаковыми IP-адресом и портом, поскольку некоторые устройства не принимают параллельные подключения к одному и тому же порту.
Размер очереди сетевых проверок ограничен примерно 2000000 или 4 ГБ памяти.
Если очередь переполнится, правило обнаружения будет пропущено, а в журнале будет выведено предупреждение.
Для мониторинга количества проверок обнаружения в очереди можно использовать внутренний элемент данных zabbix[discovery_queue].
Проверки обнаружения обрабатываются независимо от других проверок. Если какие-либо проверки не находят службу (или завершаются с ошибкой), остальные проверки все равно будут выполнены.
Если правило обнаружения изменяется во время выполнения, текущее выполнение обнаружения будет прервано.
Каждая проверка службы и узла сети (IP), выполняемая модулем сетевого обнаружения, генерирует событие обнаружения.
| Событие | Результат проверки службы |
|---|---|
| Служба обнаружена | Служба находится в состоянии 'up' после состояния 'down' или обнаружена впервые. |
| Служба up | Служба находится в состоянии 'up', после того как уже была в состоянии 'up'. |
| Служба потеряна | Служба находится в состоянии 'down' после состояния 'up'. |
| Служба down | Служба находится в состоянии 'down', после того как уже была в состоянии 'down'. |
| Узел сети обнаружен | По крайней мере одна служба узла сети находится в состоянии 'up' после того, как все службы этого узла сети были в состоянии 'down', или обнаружена служба, относящаяся к незарегистрированному узлу сети. |
| Узел сети up | По крайней мере одна служба узла сети находится в состоянии 'up', после того как по крайней мере одна служба уже была в состоянии 'up'. |
| Узел сети потерян | Все службы узла сети находятся в состоянии 'down' после того, как хотя бы одна была в состоянии 'up'. |
| Узел сети down | Все службы узла сети находятся в состоянии 'down', после того как они уже были в состоянии 'down'. |
Действия
События обнаружения могут быть основой соответствующих действий, таких как:
- Отправка оповещений
- Добавление/удаление узлов сети
- Активация/деактивация узлов сети
- Добавление узлов сети в группу
- Удаление узлов сети из группы
- Добавление тегов к узлу сети
- Удаление тегов с узла сети
- Присоединение шаблона к узлам сети/отсоединение шаблона от узлов сети
- Выполнение удалённых скриптов
Эти действия можно задать с учётом типа устройства, IP, состояния, времени доступности/недоступности и т.п. Для получения более подробных сведений о настройке действий на события, основанных на сетевом обнаружении, смотрите страницы операций действий и условий действий.
Поскольку действия на сетевое обнаружение основаны на событиях, они будут срабатывать и когда обнаруженный узел сети активен (online), и когда неактивен (offline). Крайне рекомендуется добавить условие действия Состояние обнаружения: доступен, чтобы избежать ситуации, когда такие действия как Добавить узел сети срабатывали бы при событиях Сервис потерян / Сервис недоступен. В противном случае, если обнаруженный узел сети удаляется вручную, по-прежнему будут генерироваться события Сервис потерян / Сервис недоступен, и он будет пересоздан во время следующего цикла обнаружения.
Присоединение обнаруженного узла сети к шаблонам будет массово заканчиваться неудачей, если любой из присоединяемых шаблонов имеет уникальные объекты (например, ключ элемента данных), совпадающие с уникальными объектами (т.е. ключом элемента данных), уже присутствующими на этом узле сети или в другом присоединяемом шаблоне.
Создание узла сети
Узел сети добавляется, если выбрана операция Добавить узел сети. Узел сети также добавляется, даже если операция Добавить узел сети отсутствует, если вы выбираете операции, приводящие к действиям над узлом сети. Такие операции:
- Включить узел сети.
- Отключить узел сети.
- Добавить узел сети в группу узлов сети.
- Связать шаблон с узлом сети.
Созданные узлы сети добавляются в группу 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, первый созданный узел сети. "Uptime/Downtime" не измеряется для IP-адресов, которые считаются дополнительными интерфейсами.
Изменение настройки прокси
Узлы сети, обнаруженные разными прокси, не всегда считаются разными узлами сети. Проверки обнаружения и уникальности зависят от структуры группы прокси: когда прокси выполняет правило обнаружения и создает узел сети, этот узел сети добавляется в родительскую группу прокси, а не назначается самому прокси. Когда Zabbix проверяет уникальность IP-адресов во время обнаружения, он проверяет узлы сети, контролируемые родительской группой прокси. Узлы сети, контролируемые отдельными прокси в этой группе (включая прокси, который выполнил обнаружение), игнорируются при проверке уникальности, что может привести к появлению дублирующихся узлов сети, если несколько прокси контролируют пересекающиеся подсети.
Хотя такое поведение позволяет выполнять обнаружение в пересекающихся диапазонах IP-адресов, используемых разными подсетями, изменение прокси, назначенного уже контролируемой подсети, является более сложной задачей, поскольку изменения прокси должны последовательно применяться как к обнаруженным узлам сети, так и к составу родительской группы прокси, чтобы избежать дубликатов.
Например, шаги для замены прокси в правиле обнаружения:
- Отключите правило обнаружения.
- Синхронизируйте конфигурацию прокси.
- Замените прокси в правиле обнаружения.
- Замените прокси для всех узлов сети, обнаруженных этим правилом (убедитесь, что узлы сети в родительской группе прокси и любые узлы сети, контролируемые отдельными прокси в этой группе, обновлены, чтобы избежать дубликатов).
- Включите правило обнаружения.