Ad Widget

Collapse

Фильтр интерфейсов. Как подставить свой макрос в {$NET.IF.IFNAME.NOT_MATCHES} ?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • registr76
    Junior Member
    • Jun 2021
    • 12

    #1

    Фильтр интерфейсов. Как подставить свой макрос в {$NET.IF.IFNAME.NOT_MATCHES} ?

    День добрый коллеги.

    Нужно отфильтровать ненужные интерфейсы.

    Раньше стоял zabbix 4.0. Там эта проблема решалась правкой шаблона Network interfaces discovery. В фильтры добавлялось
    Code:
    {#IFNAME} совпадает @Network interfaces for discovery
    Поставил zabbix 6.2. Решил не что не буду менять стандартный шаблон. Попробую переопределить макрос в настройках хоста. В макросы добавил запись

    Code:
    Макрос - {$NET.IF.IFNAME.NOT_MATCHES}
    Значение - @Network interfaces for discovery
    Значение макроса переопределилось, но не работает.
    Насколько я понимаю. Zabbix считает что
    Code:
    @Network interfaces for discovery
    обычный текст, а не пользовательский макрос.

    Подскажите что я делаю не так?
    Или может так вообще не будет работать?​
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Originally posted by registr76
    Значение макроса переопределилось, но не работает.
    Насколько я понимаю. Zabbix считает что
    Code:
    @Network interfaces for discovery
    обычный текст, а не пользовательский макрос.
    Или может так вообще не будет работать?​
    Совершенно верно, так работать не будет. В этих макросах ожидается именно регулярное выражение, а не ссылка на глобальное регулярное выражение.

    В более новых шаблонах в фильтрах используется целый набор заданных макросами регулярных выражений - как тех, которым значение LLD-макросов должно соответствовать (matches), так и тех, которым соответствовать не должно (does not match). Поэтому нужды в глобальных регулярных выражениях больше нет; тем более, что глобальные регулярные выражения мешают строить переносимые шаблоны (которые можно просто просто заимпортировать без внешних зависимостей).

    Скажем, имя интерфейса должно соответствовать регулярному выражению, заданному макросом {$NET.IF.IFNAME.MATCHES} (обычно там ".*", т.е. любое имя), и не соответствовать регулярному выражению, заданному макросом {$NET.IF.IFNAME.NOT_MATCHES} (обычно там какая-нибудь фигня типа фразы CHANGE_ME_IF_NEEDED, которая заведомо не встретится в качестве имени интерфейса).

    Comment


    • registr76
      registr76 commented
      Editing a comment
      День добрый.

      Спасибо за быстрый ответ.

      Если возможно ответьте пожалуйста еще на пару вопросов.)

      Можно ли макросы {$NET.IF.IFNAME.MATCHES} и {$NET.IF.IFNAME.NOT_MATCHES} переопределить глобально, в разделе "Администрирование>Общие>Макросы"?

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

      Пытаюсь найти решение для минимизации ошибок при ручном заполнении списка хостов. )
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #3
    registr76, пожалуйста, старайтесь отвечать отдельными репликами, а не комментариями к чужим репликам. Комментарии не обновляют ветку обсуждения, и при просмотре тем не видно, что там что-то добавилось и что туда надо зайти и ответить.

    По сути. Вроде бы, в документации - даже в её русском переводе, который я частенько критикую (ссылка), приоритет расписан достаточно понятно.

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

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

    Comment

    • registr76
      Junior Member
      • Jun 2021
      • 12

      #4
      Спасибо за информацию. )

      Ссылку прочитал. Искал не в том разделе документации.

      Буду изучать мат-часть. )

      Comment

      Working...