3. Низкоуровневое обнаружение (LLD)

Обзор

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

Пользователь может определить собственные типы обнаружения при условии, что они следуют определенному JSON-протоколу.

Общая архитектура процесса обнаружения выглядит следующим образом.

Сначала пользователь создает правило обнаружения в Сбор данных > Шаблоны, в столбце Обнаружение. Правило обнаружения состоит из (1) элемента данных, который обнаруживает необходимые сущности (например, файловые системы или сетевые интерфейсы), и (2) прототипов элементов данных, триггеров и графиков, которые должны быть созданы на основе значения этого элемента данных.

Элемент данных, который обнаруживает необходимые сущности, похож на обычный элемент данных, встречающийся в других местах: сервер запрашивает у агента Zabbix (или у того типа, который задан для элемента данных) значение этого элемента данных, а агент отвечает текстовым значением. Разница в том, что значение, которое возвращает агент, должно содержать список обнаруженных сущностей в формате JSON. Хотя детали этого формата важны только для разработчиков собственных проверок обнаружения, необходимо знать, что возвращаемое значение содержит список пар макрос → значение. Например, элемент данных "net.if.discovery" может вернуть две пары: "{#IFNAME}" → "lo" и "{#IFNAME}" → "eth0".

Эти макросы используются в именах, ключах и других полях прототипов, где затем подставляются полученные значения для создания реальных элементов данных, триггеров, графиков или даже узлов сети для каждой обнаруженной сущности. См. полный список параметров для использования макросов LLD.

Когда сервер получает значение для элемента данных обнаружения, он анализирует пары макрос → значение и для каждой пары создает реальные элементы данных, триггеры и графики на основе их прототипов. В приведенном выше примере с "net.if.discovery" сервер создал бы один набор элементов данных, триггеров и графиков для петлевого интерфейса "lo" и еще один набор для интерфейса "eth0".

Обратите внимание, что начиная с Zabbix 4.2 формат JSON, возвращаемого правилами низкоуровневого обнаружения, был изменен. Теперь не ожидается, что JSON будет содержать объект "data". Низкоуровневое обнаружение теперь принимает обычный JSON, содержащий массив, чтобы поддерживать новые возможности, такие как предварительная обработка значения элемента данных и пользовательские пути к значениям макросов низкоуровневого обнаружения в JSON-документе.

Встроенные ключи обнаружения были обновлены так, чтобы возвращать массив строк LLD в корне JSON-документа. Zabbix автоматически извлечет макрос и значение, если поле массива использует синтаксис {#MACRO} в качестве ключа. Все новые встроенные проверки обнаружения будут использовать новый синтаксис без элементов "data". При обработке значения низкоуровневого обнаружения сначала определяется корень (массив в $. или $.data).

Хотя элемент "data" был удален из всех встроенных элементов данных, связанных с обнаружением, для обратной совместимости Zabbix по-прежнему будет принимать JSON-нотацию с элементом "data", хотя ее использование не рекомендуется. Если JSON содержит объект только с одним элементом массива "data", то содержимое этого элемента будет автоматически извлечено с использованием JSONPath $.data. Низкоуровневое обнаружение теперь принимает необязательные пользовательские макросы LLD с пользовательским путем, указанным в синтаксисе JSONPath.

В результате указанных выше изменений более новые агенты больше не смогут работать со старым сервером Zabbix.

См. также: Обнаруженные сущности

Настройка низкоуровневого обнаружения

Мы продемонстрируем низкоуровневое обнаружение на примере обнаружения файловой системы.

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

  • Перейдите в раздел: Сбор данных > Шаблоны или Узлы сети.
  • Нажмите Обнаружение в строке соответствующего шаблона/узла сети.

  • Нажмите Создать правило обнаружения в правом верхнем углу экрана.
  • Заполните форму правила обнаружения, указав необходимые сведения.

Правило обнаружения

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

  • Правило обнаружения (Discovery rule) — самое главное, определяет встроенный элемент данных или пользовательский сценарий для получения данных обнаружения.
  • Предобработка (Preprocessing) — применяет какую-либо предобработку к данным обнаружения.
  • LLD макросы (LLD macros) — позволяет извлечь значения некоторых макросов, чтобы использовать в обнаруженных элементах данных, триггерах и т.д.
  • Фильтры (Filters) — позволяет отфильтровать обнаруженные значения.
  • Замещения (Overrides) — позволяет изменить прототипы элементов данных, триггеров, графиков или узлов сети, когда они применяются к конкретным найденным объектам.

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

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

Параметр Описание
Имя (Name) Имя правила обнаружения.
Тип
(Type)
Тип проверки выполняемого обнаружения.
В данном примере мы используем тип Zabbix агент.
Правило обнаружения также может являться зависимым элементом данных, зависящим от обычного элемента данных. Оно не может зависеть от другого правила обнаружения. Для зависимых элементов данных выберите соответствующий тип (Зависимый элемент данных (Dependent item)) и укажите основной элемент данных в поле «Основной элемент данных (Master item)». Основной элемент данных должен существовать.
Ключ
(Key)
Введите ключ элемента данных, используемого для обнаружения (до 2048 символов).
Например, вы можете использовать встроенный ключ элемента данных «vfs.fs.discovery», который возвращает строку JSON со списком файловых систем, присутствующих в компьютере, их типов и опций монтирования.
Обратите внимание, что другой вариант обраружения файловых систем — это использовать результаты, возвращаемые ключом агента «vfs.fs.get» (смотрите пример).
Интервал обновления
(Update interval)
Это поле задаёт, как часто Zabbix выполняет обнаружение. Вначале, когда вы только настраиваете обнаружение файловых систем, вы можете указать маленький интервал; но как только вы удостоверитесь что всё работает, вы можете установить его в 30 минут или более, потому что обычно файловые системы не меняются очень часто.
Поддерживаются суффиксы времени, например: 30s, 1m, 2h, 1d.
Поддерживаются пользовательские макросы.
Обратите внимание: интервал обновления может быть выставлен в «0» только если существует пользовательский интервал с ненулевым значением. Если укажете значение, равное «0», и пользовательский интервал (переменный или по расписанию) с ненулевым значением существует, элемент данных будет опрашиваться в течение действия переменного интервала.
Новые правила обнаружения будут проверяться в течение 60 секунд с момента их создания, если только для них не заданы интервал обновления по расписанию или переменный интервал обновления, а Интервал обновления (Update interval) не установлен в 0.
Обратите внимание, что уже созданное правило обнаружения можно выполнить незамедлительно нажатием кнопки Выполнить сейчас.
Пользовательские интервалы
(Custom intervals)
Вы можете создавать пользовательские правила проверки элемента данных:
Гибкий (Flexible) — создание исключений из Интервала обновления (интервал с другой частотой обновления)
По расписанию (Scheduling) — создание пользовательского расписания проверки.
Для получения более подробной информации смотрите Пользовательские интервалы.
Время ожидания
(Timeout)
Укажите тайм-аут проверки обнаружения. Выберите вариант тайм-аута:
Глобальный (Global) — используется глобальный тайм-аут или тайм-аут прокси (отображается в поле Время ожидания на сером фоне);
Замещения (Override) — применяется пользовательский тайм-аут (заданный в поле Время ожидания; допустимый диапазон: 1 - 600s). Поддерживаются суффиксы времени, например: 30s, 1m; также поддерживаются пользовательские макросы.
Щелчок по ссылке Время ожидания (Timeouts) позволяет настроить тайм-ауты прокси либо глобальные тайм-ауты (если прокси не используется). Обратите внимание, что ссылка Время ожидания (Timeouts) видна только пользователям с типом Супер-администратор, имеющим доступ к разделам веб-интерфейса Администрирование (Administration)Общие (General) или Администрирование (Administration)Прокси (Proxies).
Удаление потерянных ресурсов
(Delete lost resources)
Укажите, через какое время обнаруженный объект будет удалён, после того как его состояние обнаружения станет «более не обнаруживается (Not discovered anymore)»:
Никогда (Never) — не будет удалён;
Незамедлительно (Immediately) — будет удалён сразу же;
После (After) — будет удалён по истечении указанного периода времени. Значение должно быть больше, чем значение в поле Деактивация потерянных ресурсов (Disable lost resources).
Поддерживаются суффиксы времени, например: 2h, 1d.
Поддерживаются пользовательские макросы.
Обратите внимание: Использование значения «Незамедлительно (Immediately)» не рекомендуется, так как простое ошибочное изменение фильтра может закончиться тем, что объект будет удалён вместе со всеми данными истории.
Обратите внимание, что ресурсы, деактивированные вручную, правилом низкоуровневого обнаружения удалены не будут.
Деактивация потерянных ресурсов
(Disable lost resources)
Укажите, через какое время обнаруженный объект будет деактивирован, после того как его состояние обнаружения станет «более не обнаруживается (Not discovered anymore)»:
Никогда (Never) — не будет деактивирован;
Незамедлительно (Immediately) — будет деактивирован сразу же;
После (After) — будет деактивирован по истечении указанного периода времени. Значение должно быть больше, чем интервал обновления правила обнаружения.
Обратите внимание, что автоматически деактивированные ресурсы будут активированы снова, если будут заново обнаружены низкоуровневым обнаружением. Ресурсы, деактивированные вручную, не станут активированы снова при повторном обнаружении.
Это поле не отображается, если параметр Удаление потерянных ресурсов (Delete lost resources) задан в «Незамедлительно (Immediately)».
Поддерживаются суффиксы времени, например: 2h, 1d.
Поддерживаются пользовательские макросы.
Описание (Description) Введите описание.
Активировано (Enabled) Если отмечено, правило будет обрабатываться.

История правил обнаружения не сохраняется.

Предобработка

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

Смотрите также:

Тип
Преобразование Описание
Текст (Text)
Регулярное выражение
(Regular expression)
Сопоставить полученное значение с регулярным выражением <шаблона> и заменить значение тем, что извлекается в <выводе>. Регулярное выражение поддерживает извлечение максимум 10 захваченных групп с помощью последовательностей \N.
Параметры:
шаблон (pattern) — регулярное выражение
вывод (output) — шаблон форматирования вывода. \N (где N=1…9) — управляющая последовательность заменяется N-ной совпадающей группой. Управляющая последовательность \0 заменяется совпадающим текстом.
Если выбрана опция Другое при ошибке (Custom on fail), появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
Замена
(Replace)
Поиск нужной строки и замена её на другую (или пустотой). Будут заменены все экземпляры искомой строки.
Параметры:
строка поиска (search string) — строка для поиска и замены, с учётом регистра (обязательно)
замена (replacement) — строка для замены строки поиска. Строка замены может быть и пустой, что позволяет эффективно удалять строку поиска при ее обнаружении.
Можно использовать управляющие последовательности для поиска или замены переводов строки, возврата каретки, табуляции и пробелов "\n \r \t \s"; обратную косую черту можно экранировать как "\\", а управляющие последовательности можно экранировать как "\\n". При низкоуровневом обнаружении экранирование переводов строки, возвратов каретки, табуляций выполняется автоматически.
Составные данные (Structured data)
JSONPath Извлечение значения или фрагмента из данных JSON с использованием функционала JSONPath.
Если выбрана опция Другое при ошибке (Custom on fail), элемент данных не перейдёт в неподдерживаемое состояние при неуспешном завершении шага предобработки, и появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
XML XPath Извлечение значения или фрагмента из XML данных с использованием функционала XPath.
Чтобы эта опция работала, Zabbix сервер должен быть скомпилирован с поддержкой libxml.
Примеры:
number(/document/item/value) извлечёт 10 из <document><item><value>10</value></item></document>
number(/document/item/@attribute) извлечёт 10 из <document><item attribute="10"></item></document>
/document/item извлечёт <item><value>10</value></item> из <document><item><value>10</value></item></document>
Обратите внимание на то, что пространства имён не поддерживаются.
Если выбрана опция Другое при ошибке (Custom on fail), появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
CSV в JSON
(CSV to JSON)
Конвертация данных файла CSV в формат JSON.
Для получения дополнительной информации смотрите: Преобразование CSV в JSON.
XML в JSON
(XML to JSON)
Конвертация данных в XML формате в JSON.
Для получения дополнительной информации смотрите: Правила сериализации.
Если выбрана опция Другое при ошибке (Custom on fail), появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
SNMP
Значение SNMP walk
(SNMP walk value)
Извлечение значения по указанному OID / имени MIB и применение параметров форматирования:
Без изменений (Unchanged) — вернуть шестнадцатеричную строку как неэкранированную шестнадцатеричную строку (обратите внимание, что подсказки отображения всё ещё применяются);
UTF-8 из Hex-STRING (UTF-8 from hex-STRING) — преобразовать шестнадцатеричную строку в строку UTF-8;
MAC из Hex-STRING (MAC from hex-STRING) — преобразовать шестнадцатеричную строку в строку MAC-адреса (где « » заменяются на «:»);
Целое число из BITS (Integer from BITS) — преобразовать первые 8 байтов битовой строки, выраженной как последовательность шестнадцатеричных символов (например, «1A 2B 3C 4D»), в 64-битное беззнаковое целое число. В битовых строках длиннее 8 байтов последующие байты будут игнорироваться.
Если выбрана опция Другое при ошибке (Custom on fail), появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
SNMP walk в JSON
(SNMP walk to JSON)
Преобразовать значения SNMP в JSON. Укажите имя поля в JSON и соответствующий путь SNMP OID. Значения полей будут заполнены значениями в указанном пути SNMP OID.
Можно использовать этот шаг предварительной обработки для обнаружения SNMP OID.
Доступны параметры форматирования значений, аналогичные шагу Значение SNMP walk (SNMP walk value).
Если выбрана опция Другое при ошибке (Custom on fail), появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
SNMP get значение
(SNMP get value)
Применить параметры форматирования к SNMP get значение:
UTF-8 из Hex-STRING (UTF-8 from Hex-STRING) — преобразовать hex-строку в строку UTF-8;
MAC из Hex-STRING (MAC from Hex-STRING) — преобразовать шестнадцатеричную строку в строку MAC-адреса (где « » заменяются на «:»);
Целое число из BITS (Integer from BITS) — преобразовать первые 8 байтов битовой строки, выраженной как последовательность шестнадцатеричных символов (например, «1A 2B 3C 4D»), в 64-битное беззнаковое целое число. В битовых строках длиннее 8 байтов последующие байты будут игнорироваться.
Если выбрана опция Другое при ошибке (Custom on fail), появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
Пользовательские скрипты (Custom scripts)
JavaScript Введите код JavaScript в блоке, который появится при нажатии в поле параметра или на иконку карандаша.
Обратите внимание, что доступная длина JavaScript зависит от используемой базы данных.
Для получения дополнительной информации смотрите: Предобработка Javascript
Валидация (Validation)
Не совпадает с регулярным выражением
(Does not match regular expression)
Укажите регулярное выражение, которому значение не должно соответствовать.
Например: Error:(.*?)\.
Если выбрана опция Другое при ошибке (Custom on fail), появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
Проверка на ошибку в JSON
(Check for error in JSON)
Проверка, нет ли сообщения об ошибке на уровне приложения в JSONPath. Обработка будет остановлена в случае положительного результата (сообщение присутствует и непустое); в противном случае обработка будет продолжена со значением, подготовленным до этого шага предварительной обработки. Обратите внимание, что эти внешние сервисные ошибки сообщаются пользователю напрямую, без добавления информации о шаге предварительной обработки.
Например: $.errors. Если получен JSON наподобие {"errors":"e1"}, следующий шаг предобработки выполняться не будет.
Если выбрана опция Другое при ошибке (Custom on fail), появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
Проверьте на наличие ошибок в XML
(Check for error in XML)
Проверка, нет ли сообщения об ошибке на уровне приложения в XPath. Обработка будет остановлена в случае положительного результата (сообщение присутствует и непустое); в противном случае обработка будет продолжена со значением, подготовленным до этого шага предварительной обработки. Обратите внимание, что эти внешние сервисные ошибки сообщаются пользователю напрямую, без добавления информации о шаге предварительной обработки.
Об ошибке не будет сообщено в случае сбоя при разборе некорректного XML.
Если выбрана опция Другое при ошибке (Custom on fail), появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
Совпадение регулярному выражению
(Matches regular expression)
Укажите регулярное выражение, которому значение обязано соответствовать.
Если выбрана опция Другое при ошибке (Custom on fail), появится возможность указать пользовательские параметры обработки ошибок: либо отбросить значение, либо задать указанное значение, либо задать нужное сообщение об ошибке.
Троттлинг (Throttling)
Отбрасывать не изменившееся с периодическим контролем
(Discard unchanged with heartbeat)
Отбросить значение, если оно не изменилось в течение заданного периода (в секундах).
Поддерживаются положительные целые значения для секунд (минимально — 1 секунда). В этом поле можно использовать суффиксы времени (такие как 30s, 1m, 2h, 1d). В этом поле можно использовать пользовательские макросы и макросы низкоуровневого обнаружения.
Для элемента данных правила обнаружения можно указать только один параметр троттлинга.
Например: 1m. Если идентичный текст передаётся этому правилу дважды в течение 60 секунд, он будет отброшен.
Обратите внимание: Изменение прототипов элементов данных не сбрасывает троттлинг. Троттлинг сбрасывается только при изменении шагов предобработки.
Prometheus
Prometheus в JSON
(Prometheus to JSON)
Преобразование необходимых Prometheus метрик в JSON.
Обратитесь к проверкам Prometheus для получения более подробных сведений.

Обратите внимание, что если правило обнаружения применено к узлу сети через шаблон, то содержимое этой вкладки будет доступно только для чтения.

Настраиваемые макросы

Вкладка LLD макросы (LLD macros) позволяет указать настраиваемые макросы низкоуровневого обнаружения.

Настраиваемые макросы полезны в случаях, когда возвращаемый JSON не имеет нужных макросов, уже определённых должным образом. Так, например:

  • Встроенный ключ vfs.fs.discovery для обнаружения файловых систем возвращает JSON с некоторыми уже определёнными LLD макросами, такими как {#FSNAME} и {#FSTYPE}. Эти макросы могут быть непосредственно использованы в прототипах элементов данных и триггеров (смотрите последующие разделы на этой странице); определение настраиваемых макросов не требуется;
  • Элемент данных агента vfs.fs.get также возвращает JSON с данными о файловой системе, однако, без готовых LLD макросов. В этом случае вы можете определить эти макросы самостоятельно, и выставить соответствие между ними и значениями в JSON-е, используя JSONPath:

Извлечённые значения могут использоваться в обнаруженных элементах данных, триггерах и т.п. Обратите внимание, что значения будут извлекаться из результата обнаружения после выполнения шагов предобработки.

Параметр Описание
LLD макрос
(LLD macro)
Имя макроса низкоуровневого обнаружения, с использованием следующего синтаксиса: {#MACRO}.
JSONPath Путь, используемый для извлечения значения LLD макроса из строки LLD, используя синтаксис JSONPath.
Значения, извлекаемые из возвращаемого JSON-а, используются для замены LLD макросов в полях прототипов элемента данных, триггера и т.п.
JSONPath может быть указан, используя нотацию с точкой или с квадратными скобками. Нотация с квадратными скобками должна использоваться в случаях использования любых специальных символов и символов Unicode, наподобие следующего: $['unicode + special chars #1']['unicode + special chars #2'].

Например, $.foo извлечёт «bar» и «baz» из такого JSON-а: [{"foo":"bar"}, {"foo":"baz"}]
Обратите внимание, что $.foo также извлечёт «bar» и «baz» из такого JSON-а: {"data":[{"foo":"bar"}, {"foo":"baz"}]} из-за того, что одиночный объект "data" обрабатывается автоматически (для обратной совместимости с реализацией низкоуровневого обнаружения в версиях Zabbix до 4.2).

Фильтр

Фильтры могут использоваться для того, чтобы генерировать реальные элементы данных, триггеры и графики только для объектов, соответствующих неким критериям. Вкладка Фильтры (Filters) содержит определения правил фильтрации обнаружения, позволяющих фильтровать обнаруженные значения:

Параметр Описание
Тип вычисления
(Type of calculation)
Доступны следующие опции расчёта фильтров:
И (And) — должны выполниться все фильтры;
Или (Or) — достаточно выполнения одного фильтра;
И/Или (And/Or) — используется И для разных имён макросов и Или для одинаковых имён макросов;
Пользовательское выражение (Custom expression) — появляется возможность указать пользовательское вычисление фильтров. Формула должна включать в себя все фильтры из списка. Ограничено 255 символами.
Фильтры
(Filters)
Доступны следующие операторы условий фильтра: совпадает, не соответствует, существует, не существует (matches, does not match, exists, does not exist).
Операторы совпадает и не соответствует ожидают Perl Compatible Regular Expression (PCRE). Например, если вы заинтересованы только в файловых системах C:, D: и E:, вы можете поместить {#FSNAME} в текстовое поле «Макрос», а регулярное выражение «\C|\D|\E» — в поле «Регулярное выражение». Фильтрация также возможна по типам файловых систем, при использовании макроса {#FSTYPE} (например, «\ext|\reiserfs») и по типу диска (поддерживается только Windows агентами), используя макрос {#FSDRIVETYPE} (например, «fixed»).
В поле «Регулярное выражение» вы можете ввести регулярное выражение или ссылку на глобальное регулярное выражение.
Для проверки регулярного выражения вы можете использовать «grep -E», например: ````for f in ext2 nfs reiserfs smbfs; do echo $f | grep -E '
ext|^reiserfs' || echo "SKIP: $f"; done````

Операторы существует и не существует позволяют фильтровать объекты на основе присутствия или отсутствия указанных LLD макросов в ответе.

Обратите внимание, что если какой-то макрос из фильтра пропущен в ответе, найденный объект будет игнорироваться, если только для этого макроса не задано условие «не существует».

Если отсутствие макроса влияет на результат выражения, то будет отображено предупреждение. Например, если {#B} отсутствует в:
{#A} совпадает 1 и {#B} совпадает 2 — выдаст предупреждение
{#A} совпадает 1 или {#B} совпадает 2 — предупреждения не будет.

Ошибка или опечатка в регулярном выражении, которое используется в LLD правиле (например, некорректное регулярное выражение «File systems for discovery»), может привести к удалению тысяч элементов конфигурации, данных истории и событий на большом количестве узлов сети.

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

Переопределение

Вкладка Overrides позволяет задавать правила для изменения списка прототипов элементов данных, триггеров, графиков, узлов сети и обнаружения или их атрибутов для обнаруженных объектов, которые соответствуют заданным критериям.

Переопределения (если есть) отображаются в виде списка с возможностью перетаскивания для изменения порядка и выполняются в том порядке, в котором они определены. To configure details of a new override, click in the Overrides block. To edit an existing override, click the override name. A popup window will open allowing to edit the override rule details.

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

Parameter Description
Name Уникальное имя переопределения (в пределах правила LLD).
If filter matches Определяет, следует ли обрабатывать следующие переопределения, если условия фильтра выполнены:
Continue overrides - последующие переопределения будут обработаны.
Stop processing - будут выполнены операции из предыдущих (если есть) и этого переопределения, последующие переопределения будут проигнорированы для совпавших строк LLD.
Filters Определяет, к каким обнаруженным сущностям следует применять переопределение. Фильтры переопределения обрабатываются после фильтров правила обнаружения и имеют ту же функциональность.
Operations Операции переопределения отображаются со следующими сведениями:
Condition - тип объекта и условие, которому должно соответствовать имя объекта; например: прототип триггера не равен Disk space is low (used > 50%).
Actions - отображаются ссылки для редактирования и удаления операции.

Настройка операции

Чтобы настроить параметры новой операции, нажмите в блоке Operations. Чтобы отредактировать существующую операцию, нажмите рядом с операцией. Откроется всплывающее окно, в котором можно изменить параметры операции.

Parameter Description
Object Доступны пять типов объектов:
Прототип элемента данных
Прототип триггера
Прототип графика
Прототип узла сети
Прототип обнаружения
Condition Позволяет фильтровать сущности, к которым должна применяться операция.
Operator Поддерживаемые операторы:
equals - применить к этому прототипу
does not equal - применить ко всем прототипам, кроме этого
contains - применить, если имя прототипа содержит эту строку
does not contain - применить, если имя прототипа не содержит эту строку
matches - применить, если имя прототипа соответствует регулярному выражению
does not match - применить, если имя прототипа не соответствует регулярному выражению
Pattern Регулярное выражение regular expression или строка для поиска.
Object: Item prototype
Create enabled Если флажок установлен, появятся кнопки, позволяющие переопределить исходные настройки прототипа элемента данных:
Yes - элемент данных будет добавлен в включенном состоянии.
No - элемент данных будет добавлен к обнаруженной сущности, но в отключенном состоянии.
Discover Если флажок установлен, появятся кнопки, позволяющие переопределить исходные настройки прототипа элемента данных:
Yes - элемент данных будет добавлен.
No - элемент данных не будет добавлен.
Update interval Если флажок установлен, появятся два параметра, позволяющие задать другой интервал для элемента данных:
Delay - интервал обновления элемента данных. Поддерживаются пользовательские макросы, макросы LLD и суффиксы времени (например, 30s, 1m, 2h, 1d). Если используется Custom interval, следует установить значение 0.
Custom interval - нажмите , чтобы указать гибкие интервалы или интервалы по расписанию. Подробности см. в разделе Custom intervals.
History Если флажок установлен, появятся кнопки, позволяющие задать другой период хранения истории для элемента данных:
Do not store - если выбрано, история не будет храниться.
Store up to - если выбрано, справа появится поле для ввода периода хранения. Поддерживаются пользовательские макросы и макросы LLD.
Trends Если флажок установлен, появятся кнопки, позволяющие задать другой период хранения трендов для элемента данных:
Do not store - если выбрано, тренды не будут храниться.
Store up to - если выбрано, справа появится поле для ввода периода хранения. Поддерживаются пользовательские макросы и макросы LLD.
Tags Если флажок установлен, появится новый блок, позволяющий указать пары тег-значение. Поддерживаются пользовательские макросы и макросы LLD.
Эти теги будут добавлены к тегам, указанным в прототипе элемента данных, даже если имена тегов совпадают.
Object: Trigger prototype
Create enabled Если флажок установлен, появятся кнопки, позволяющие переопределить исходные настройки прототипа триггера:
Yes - триггер будет добавлен в включенном состоянии.
No - триггер будет добавлен к обнаруженной сущности, но в отключенном состоянии.
Discover Если флажок установлен, появятся кнопки, позволяющие переопределить исходные настройки прототипа триггера:
Yes - триггер будет добавлен.
No - триггер не будет добавлен.
Severity Если флажок установлен, появятся кнопки уровня серьезности триггера, позволяющие изменить серьезность триггера.
Tags Если флажок установлен, появится новый блок, позволяющий указать пары тег-значение. Поддерживаются пользовательские макросы и макросы LLD.
Эти теги будут добавлены к тегам, указанным в прототипе триггера, даже если имена тегов совпадают.
Object: Graph prototype
Discover Если флажок установлен, появятся кнопки, позволяющие переопределить исходные настройки прототипа графика:
Yes - график будет добавлен.
No - график не будет добавлен.
Object: Host prototype
Create enabled Если флажок установлен, появятся кнопки, позволяющие переопределить исходные настройки прототипа узла сети:
Yes - узел сети будет создан в включенном состоянии.
No - узел сети будет создан в отключенном состоянии.
Discover Если флажок установлен, появятся кнопки, позволяющие переопределить исходные настройки прототипа узла сети:
Yes - узел сети будет обнаружен.
No - узел сети не будет обнаружен.
Link templates Если флажок установлен, появится поле для ввода шаблонов. Начните вводить имя шаблона или нажмите Select рядом с полем и выберите шаблоны из списка во всплывающем окне.
Шаблоны из этого переопределения добавляются ко всем шаблонам, уже связанным с прототипом узла сети.
Tags Если флажок установлен, появится новый блок, позволяющий указать пары тег-значение. Поддерживаются пользовательские макросы и макросы LLD.
Эти теги будут добавлены к тегам, указанным в прототипе узла сети, даже если имена тегов совпадают.
Host inventory Если флажок установлен, появятся кнопки, позволяющие выбрать другой режим инвентаризации для прототипа узла сети:
Disabled - не заполнять инвентарные данные узла сети
Manual - указывать сведения вручную
Automated - автоматически заполнять данные инвентаризации узла сети на основе собранных метрик.

Кнопки диалога

Кнопки в нижней части диалога позволяют выполнить несколько видов операций.

(Добавить) Добавление правила обнаружения. Эта кнопка доступна только для новых правил обнаружения.
(Обновить) Обновление свойств правила обнаружения. Эта кнопка доступна только для уже существующих правил обнаружения.
(Клонировать) Создание другого правила обнаружения на основе свойств текущего правила обнанужения.
(Выполнить сейчас) Выполнение немедленного обнаружения на основе правила обнаружения. Правило обнаружения должно существовать. Смотрите более подробную информацию.
Обратите внимание, что когда обнаружение выполняется немедленно, кэш конфигурации не обновляется, поэтому на результат не повлияют совсем недавние изменения настроек правила обнаружения.
(Тест) Протестировать настройки правила обнаружения. Используйте эту кнопку для проверки настроек конфигурации (таких как подключение и корректность параметров) без постоянного применения каких-либо изменений.
(Удалить) Удаление правила обнаружения
(Отмена) Отмена изменения свойств правила обнаружения.

Обнаруженные объекты

Представленные ниже снимки экрана иллюстрируют, как выглядят уже обнаруженные элементы данных, триггеры и графики в настройках узла сети. Обнаруженные объекты имеют префикс — ссылку золотистого цвета, которая ведёт к правилу обнаружения, создавшему эти объекты.

Обратите внимание, что обнаруженные объекты не будут созданы в случае, если объекты с такими же условиями уникальности уже существуют — например, элемент данных с таким же ключом или график с таким же именем. В таком случае в веб-интерфейсе отобразится сообщение об ошибке, что правило низкоуровневого обнаружения не смогло создать определённые объекты. Само правило обнаружения, тем не менее, не станет неподдерживаемым из-за того, что некоторые объекты не смогли быть созданы и были пропущены. Правило обнаружения перейдёт к созданию/обновлению других объектов.

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

Потерянные ресурсы могут быть автоматически деактивированы на основе значения параметра Удаление потерянных ресурсов (Delete lost resources). Это влияет на потерянные узлы сети, группы узлов сети, элементы данных, триггеры и графики.

Потерянные ресурсы могут быть автоматически удалены на основе значения параметра Деактивация потерянных ресурсов (Disable lost resources). Это влияет на потерянные узлы сети, элементы данных и триггеры.

Когда обнаруженный объект становится «Более не обнаруживается», в списке элементов данных будет отображаться оранжевый индикатор времени жизни. Переместите курсор мыши на этот индикатор, и вы увидите сообщение с количеством дней до момента удаления элемента данных.

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

Объекты, которые содержат другие объекты, которые помечены на удаление, не будут обновлены, если будут изменены на уровне правила обнаружения. Например, триггеры на основе LLD не будут обновлены, если они содержат элементы данных, которые помечены на удаление.

Другие типы обнаружения

Для получения более подробных сведений и инструкций по остальным типам доступных «из коробки» обнаружений смотрите следующие разделы:

Для получения более подробных сведений касательно JSON формата по обнаружению элементов данных и примера, каким образом реализовать своё собственное обнаружение файловых систем при помощи Perl скрипта, смотрите создание пользовательских правил LLD.