1. Настройка правила сетевого обнаружения

Обзор

Для того чтобы настроить правило обнаружения сети, используемое в Zabbix для обнаружения узлов сети и сервисов:

  • Перейдите к Сбор данныхОбнаружение (Data collection→ Discovery)
  • Нажмите на Создать правило обнаружения (Create discovery rule) (или на имя существующего правила, чтобы изменить его)
  • Измените атрибуты правила обнаружения

Атрибуты правил

Все обязательные поля ввода отмечены красной звёздочкой.

Параметр Описание
Имя (Name) Уникальное имя правила. Например, «Локальная сеть».
Обнаружение через
(Discovery by)
Обнаружение выполняется:
Сервер (Server) — Zabbix сервером
Прокси (Proxy) — Zabbix прокси сервером (выбранным в поле имени прокси)
Диапазон IP адресов
(IP range)
Диапазон IP адресов обнаружения. Может принимать следующие форматы:
Один IP: 192.168.1.33
Диапазон IP адресов: 192.168.1-10.1-255. Диапазон ограничен общим количеством покрываемых адресов (менее чем 64К).
Маска IP: 192.168.4.0/24
поддерживаемые маски IP:
/16 — /30 для IPv4 адресов
/112 — /128 для IPv6 адресов
Список: 192.168.1.1-255, 192.168.2.1-100, 192.168.2.200, 192.168.4.0/24
Это поле поддерживает пробелы, символы табуляции и многострочность.
Интервал обновления
(Update interval)
Этот параметр определяет, как часто Zabbix будет выполнять это правило.
Задержка отсчитывается после того, как завершится выполнение предыдущего процесса обнаружения; таким образом, перекрытия не произойдёт.
Поддерживаются суффиксы времени, например, 30s, 1m, 2h, 1d.
Поддерживаются пользовательские макросы.
Обратите внимание, что, если используется пользовательский макрос и его значение изменилось (к примеру, 1w → 1h), следующая проверка будет выполнена в соответствии с предыдущим значением (далеко в будущем для данного примера значений).
Максимум одновременных проверок по каждому типу
(Maximum concurrent checks per type)
Задаёт максимальное количество рабочих потоков обнаружения (workers) на проверку сервиса для параллельной обработки проверок обнаружения:
Одна (One) — один поток
Без ограничения (Unlimited) — неограниченное количество потоков (но не более, чем в параметре StartDiscoverers)
Пользовательское (Custom) — задаёт пользовательское количество потоков (0-999)
Обратите внимание, что все правила обнаружения с асинхронными проверками сервисов SNMPv3 обрабатываются одним рабочим процессом из-за особенностей реализации libsnmp, т.е. увеличение числа рабочих процессов не повысит скорость обнаружения.
Проверки
(Checks)
Zabbix будет использовать этот список проверок для обнаружения.
Нажмите на (Добавить), чтобы во всплывающем окне настроить новую проверку.
Поддерживаемые проверки: SSH, LDAP, SMTP, FTP, HTTP, HTTPS, POP, NNTP, IMAP, TCP, Telnet, Zabbix агент, SNMPv1 агент, SNMPv2 агент, SNMPv3 агент, ICMP ping.
Обнаружение, основанное на протоколах, использует функционал net.tcp.service[] для тестирования каждого узла сети, за исключением SNMP, который выполняет запрос, используя SNMP OID. Zabbix агент тестируется запросом элемента данных в режиме без шифрования. Пожалуйста, смотрите элементы данных агентов для получения подробностей.
Параметр «Порты» может принимать следующие значения:
Один порт: 22
Диапазон портов: 22-45
Список: 22-45,55,60-70
Начиная с версии Zabbix 7.0, все проверки сервисов выполняются асинхронно, за исключением проверок LDAP.
Начиная с версии Zabbix 7.0, проверки HTTP/HTTPs выполняются через libcurl. Если Zabbix сервер/прокси скомпилирован без libcurl, то HTTP проверки будут работать аналогично тому, как это было в предыдущих версиях (т.е. как TCP проверки); однако, проверки HTTPS работать не будут.
Критерий уникальности устройства
(Device uniqueness criteria)
Критерием уникальности может быть:
IP адрес (IP address) — не обрабатывать несколько устройств с одним IP адресом. Если устройство с таким же IP адресом уже существует, то оно будет считаться уже обнаруженным и новый узел сети не будет добавлен.
<проверка обнаружения> — либо проверка Zabbix агента, либо проверка SNMP.
Обратите внимание, что критерии уникальности, используемые во время обнаружения, — это не то же самое, что идентификация узла сети в системе при выполнении действий. Критерии уникальности во время обнаружения определяют, являются ли два или более обнаруженных устройств одинм и тем же (или разными), тогда как критерием идентификации узла сети в Zabbix является только IP адрес (см. Создание узлов сети).
Имя узла сети
(Host name)
Задаёт техническое имя создаваемого узла сети, используя:
DNS имя (DNS name) — DNS имя (по умолчанию)
IP адрес (IP address) — IP адрес
<проверка обнаружения> — значение строки, полученной проверкой обнаружения (т.е. проверкой Zabbix агентом или SNMP агентом)
Смотрите также: Именование узлов сети.
Видимое имя
(Visible name)
Задаёт видимое имя создаваемого узла сети, используя:
Имя узла сети (Host name) — техническое имя узла сети (по умолчанию)
DNS имя (DNS name — DNS имя
IP адрес (IP address) — IP адрес
<проверка обнаружения> — значение строки, полученной проверкой обнаружения (т.е. проверкой Zabbix агентом или SNMP агентом)
Смотрите также: Именование узлов сети.
Активировано
(Enabled)
При отмеченном правиле, оно является активным и обрабатывается Zabbix сервером.
Если правило не отмечено, оно неактивно. Таким образом, не будет выполняться.
Превышение ограничения на количество дескрипторов файлов

При большом количестве одновременных проверок существует риск исчерпания лимита файловых дескрипторов для менеджера обнаружения (discovery manager).

Количество файловых дескрипторов, необходимых для обнаружения, равно количеству рабочих процессов обнаружения (discovery worker), умноженному на 1000. По умолчанию используется 5 рабочих процессов обнаружения, в то время как мягкий предел системы составляет приблизительно 1024.

При достижении этого лимита Zabbix уменьшит количество по умолчанию одновременных проверок каждого типа для каждого рабочих процессов обнаружения и запишет предупреждение в файл журнала. Однако, если пользователь установил значение Максимум одновременных проверок по каждому типу (Maximum concurrent checks per type) больше значения, рассчитанного Zabbix, Zabbix будет использовать заданное пользователем значение для одного рабочего процесса.

Сценарий из реальной жизни

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

В нашем сценарии мы хотим:

  • обнаруживать те узлы сети, на которых имеется Zabbix агент
  • выполнять обнаружение каждые 10 минут
  • добавлять узел сети для наблюдения, если время работы узла сети более 1 часа
  • удалять узел сети, если он недоступен на протяжении более 24 часов
  • добавлять узлы сети Linux в группу «Linux servers»
  • добавлять узлы сети Windows в группу «Windows servers»
  • использовать шаблон Linux для узлов сети Linux
  • использовать шаблон Windows для узлов сети Windows
Шаг 1

Добавим правило сетевого обнаружения для нашего диапазона IP адресов.

Zabbix будет пытаться обнаружить узлы сети в диапазоне IP адресов 192.168.1.1-192.168.1.254, подключаясь к Zabbix агенту и получая значение ключа system.uname. Полученное от агента значение может быть использовано для именования узла сети, а также для выполнения различных действий для разных операционных систем. Например, для присоединения шаблона Windows к серверам Windows, а шаблона Linux — к серверам Linux.

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

Когда правило будет добавлено, Zabbix автоматически запустит обнаружение и порождение событий, основанных на обнаружении, для их дальнейшей обработки.

Шаг 2

Определим действие для добавления обнаруженных Linux серверов в соответвующие группы/шаблоны.

Это действие будет активировано, если:

  • сервис «Zabbix agent» в состоянии «доступен»
  • значение system.uname (ключ Zabbix агента, который мы использовали при создании правила) содержит «Linux»
  • время работы — 1 час (3600 секунд) или больше

Это действие будет выполнять следующие операции:

  • добавление обнаруженного узла сети в группу «Linux servers» (а также добавление узла сети, если он не был добавлен ранее)
  • присоединение узла сети к шаблону Linux. Zabbix автоматически запустит наблюдение за узлом сети, используя элементы данных и триггеры из шаблона Linux.
Шаг 3

Зададим действие на обнаружение для добавления обнаруженных серверов Windows в соответствующие группы/шаблоны.

Шаг 4

Зададим действие на обнаружение для удаления потерянных серверов.

Сервер будет удалён, если сервис «Zabbix agent» в состоянии «Недоступен» на протяжении более чем 24 часов (86400 секунд).