Zabbix предлагает функционал эффективного и очень гибкого автоматического обнаружения сетевых устройств.
При наличии настроенного должным образом сетевого обнаружения вы сможете:
Обнаружение сетевых устройств в Zabbix базируется на основе следующей информации:
Обнаружение НЕ предоставляет:
Сетевое обнаружение, по сути, состоит из двух этапов: обнаружение и действия.
Zabbix периодически сканирует указанные в правилах сетевого обнаружения диапазоны IP. Частота проверок настраивается для каждого правила отдельно.
Каждое правило имеет заданный набор проверок сервисов, которые будут выполняться по диапазону IP.
Правила обнаружения обрабатываются менеджером обнаружения (процесс discovery manager). Менеджер обнаружения создаёт задание для каждого правила со списком задач (сетевых проверок). Сетевые проверки выполняются параллельно доступными рабочими процессами обнаружения (процессы discovery worker, их количество настраивается в веб-интерфейсе для каждого правила). Последовательно планируются только проверки с одинаковым IP-адресом и портом, поскольку некоторые устройства не принимают параллельные подключения к одному и тому же порту.
Размер очереди сетевых проверок ограничен 2000000 или примерно 4 ГБ памяти. Если очередь заполняется, правило обнаружения будет пропущено, а в журнал будет выведено предупреждение. Вы можете использовать внутренний элемент данных zabbix[discovery_queue] для отслеживания количества проверок обнаружения в очереди.
Проверки обнаружения обрабатываются независимо от остальных проверок. Если какие-либо проверки не находят сервис (или завершаются с ошибкой), то другие проверки всё равно выполняются.
Если правило обнаружения изменяется во время выполнения, то текущее выполнение обнаружения прерывается.
Каждая проверка сервиса и хоста (IP), выполняемая модулем сетевого обнаружения, генерирует событие обнаружения.
| Событие | Результат проверки сервиса |
|---|---|
| Сервис обнаружен (Service Discovered) |
Сервис «доступен» после того, как был «недоступен» или когда обнаружен первый раз. |
| Сервис доступен (Service Up) |
Сервис «доступен» после того, как уже был «доступен». |
| Сервис потерян (Service Lost) |
Сервис «недоступен» после того, как был «доступен». |
| Сервис недоступен (Service Down) |
Сервис «недоступен» после того, как уже был «недоступен». |
| Узел сети обнаружен (Host Discovered) |
По крайней мере один сервис на узле сети «доступен» после того, как все сервисы на этом узле сети были «недоступны», либо обнаружен сервис, относящийся к ещё не зарегистрированному узлу сети. |
| Узел сети доступен (Host Up) |
По крайней мере один сервис на узле сети «доступен» после того, как по крайней мере один сервис на узле сети уже был «доступен». |
| Узел сети потерян (Host Lost) |
Все сервисы на узле сети «недоступны» после того, как по крайней мере один был «доступен». |
| Узел сети недоступен (Host Down) |
Все сервисы на узле сети «недоступны» после того, как они уже были «недоступны». |
События обнаружения могут быть основой соответствующих действий, таких как:
Эти действия можно задать с учётом типа устройства, IP, состояния, времени доступности/недоступности и т.п. Для получения более подробных сведений о настройке действий на события, основанных на сетевом обнаружении, смотрите страницы операций действий и условий действий.
Поскольку действия на сетевое обнаружение основаны на событиях, они будут срабатывать и когда обнаруженный узел сети активен (online), и когда неактивен (offline). Крайне рекомендуется добавить условие действия Состояние обнаружения: доступен, чтобы избежать ситуации, когда такие действия как Добавить узел сети срабатывали бы при событиях Сервис потерян / Сервис недоступен. В противном случае, если обнаруженный узел сети удаляется вручную, по-прежнему будут генерироваться события Сервис потерян / Сервис недоступен, и он будет пересоздан во время следующего цикла обнаружения.
Присоединение обнаруженного узла сети к шаблонам будет массово заканчиваться неудачей, если любой из присоединяемых шаблонов имеет уникальные объекты (например, ключ элемента данных), совпадающие с уникальными объектами (т.е. ключом элемента данных), уже присутствующими на этом узле сети или в другом присоединяемом шаблоне.
Узел сети добавляется, если выбрана операция Добавить узел сети. Узел сети также добавляется, даже если операция Добавить узел сети пропущена, если вы выбрали операции, приводящие к действиям над узлом сети. Это такие операции, как:
Созданные узлы сети добавляются в группу Discovered hosts (по умолчанию, настраивается в Администрирование → Общие → Прочие (Administration → General →Other)). Если вы желаете, чтобы узлы сети добавлялись в другую группу, добавьте операцию Удалить из группы узлов сети (укажите «Discovered hosts») и также добавьте операцию Добавить в группу узлов сети (укажите другую группу узлов сети), так как узел сети должен принадлежать по крайней мере одной группе узлов сети.
IP-адрес обнаруженного устройства вместе с источником обнаружения (Zabbix сервер, Zabbix прокси либо группа прокси) и типом интерфейса используются как критерии при поиске узла сети в системе. Если узел сети с таким IP-адресом, типом интерфейса и источником обнаружения уже существует, то он и будет целью для выполняемых операций. Если источник обнаружения отличается, то обнаруженный объект рассматривается как другой узел сети и может быть создан новый узел сети.
Если IP-адрес обнаруженного узла сети изменяется или интерфейс удаляется, то при следующем обнаружении будет создан новый узел сети.
При добавлении узлов сети имя узла сети является результатом обратного преобразования DNS или IP адресом, если обратное преобразование завершилось неудачей. Преобразование выполняется на стороне Zabbix сервера или Zabbix прокси, в зависимости от того, кто выполняет обнаружение. Если преобразование завершается неудачей на прокси, оно не повторяется на стороне сервера. Если узел сети с таким же именем уже существует, следующий узел сети получит добавление к имени _2, затем _3 и так далее.
Также возможно переопределить преобразования DNS/IP и вместо этого для имени узла сети использовать значение элемента данных, например:
Если имя узла сети было назначено, используя значение элемента данных, оно не обновляется во время последующих проверок обнаружения. Если невозможно назначить имя узла сети, используя значение элемента данных, то используется значение по умолчанию (DNS имя).
Если узел сети с обнаруженным IP адресом уже существует и источник обнаружения (Zabbix сервер, прокси или группа прокси) не изменился, новый узел сети не создаётся. Если источник обнаружения отличается, обнаруженный объект считается другим и может быть создан новый узел сети. Однако, если действие на обнаружение содержит операции (присоединение шаблона, добавление в группу узлов сети и так далее), они будут выполнены над существующим узлом сети, который имеет совпадающие IP адрес, тип интерфейса и источник обнаружения.
Узлы сети, которые созданы правилом сетевого обнаружения, удаляются автоматически из Мониторинг → Обнаружение (Monitoring → Discovery), если обнаруженный объект более не входит в диапазон IP адресов этого правила. Узлы сети удаляются немедленно.
Когда узлы сети добавляются в результате сетевого обнаружения, они получают интерфейсы, созданные в соответствии со следующими правилами:
Узлы сети, обнаруженные различными прокси, не всегда рассматриваются как разные. Обнаружение и проверки уникальности зависят от структуры групп прокси: когда прокси выполняет правило обнаружения и создаёт узел сети, этот узел сети добавляется в родительскую группу прокси этого прокси-сервера, а не назначается самому прокси-серверу. Когда Zabbix оценивает уникальность IP во время обнаружения, проверяются узлы сети, контролируемые родительской группой прокси. Узлы сети, контролируемые отдельными прокси-серверами внутри этой группы (в том числе прокси-сервером, выполняющим обнаружение), игнорируются при проверке уникальности, что может привести к дублированию узлов сети, если несколько прокси-серверов контролируют перекрывающиеся подсети.
В то время как такое поведение позволяет обнаружению выполняться на перекрывающихся диапазонах IP, используемых различными подсетями, замена прокси, назначенного уже контролируемой подсети, является более сложным процессом, поскольку во избежание дубликатов нужно согласованно поменять прокси на обнаруженных узлах сети, а также поменять членство в родительской группе прокси.
Например, шаги по замене прокси в правиле обнаружения: