Ad Widget

Collapse

Исключить из проблем сетевые порты коммутатора

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • alex_orl
    Junior Member
    • Oct 2022
    • 3

    #1

    Исключить из проблем сетевые порты коммутатора

    Добрый день. С zabbix начал разбираться относительно недавно. Подскажите в каком направлении смотреть. Есть сетевой коммутатор, я создал хост, прицепил шаблоны итд. Но возникают оповещения о проблемах с портов пользователей. К примеру пользователь вечером ушел, выключил компьютер и порт перешел в состоянии down. Соответственно zabbix пишет что проблема. Как исключить порты с 1-24 из проблемы. А мониторить только uplink ? Хотелось бы это сделать в шаблоне. Можно посмотреть пример ? Версия zabbix 6.3
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Originally posted by alex_orl
    Версия zabbix 6.3
    Вы из будущего?
    Вроде, последняя на данный момент версия - 6.2 (ссылка).

    Originally posted by alex_orl
    Как исключить порты с 1-24 из проблемы. А мониторить только uplink ?
    Правильно настроить LLD-фильтры.
    Как правило, они ссылаются на макросы, которые можно переопределить - на уровне шаблона или на уровне хоста.
    Вероятнее всего, это будут макросы {$NET.IF.IFALIAS.MATCHES} или {$NET.IF.IFALIAS.NOT_MATCHES}.
    Как вариант, если собирать данные хочется, а реагировать на них не надо, то можно поэкспериментировать с макросами {$IFCONTROL:"{#IFNAME}"}​ (см. также тут).

    Comment

    • alex_orl
      Junior Member
      • Oct 2022
      • 3

      #3
      Originally posted by Kos
      Вы из будущего?
      Вроде, последняя на данный момент версия - 6.2 (ссылка).


      Правильно настроить LLD-фильтры.
      Как правило, они ссылаются на макросы, которые можно переопределить - на уровне шаблона или на уровне хоста.
      Вероятнее всего, это будут макросы {$NET.IF.IFALIAS.MATCHES} или {$NET.IF.IFALIAS.NOT_MATCHES}.
      Как вариант, если собирать данные хочется, а реагировать на них не надо, то можно поэкспериментировать с макросами {$IFCONTROL:"{#IFNAME}"}​ (см. также тут).
      Если я исключу интерфейсы через макрос {$NET.IF.IFALIAS.NOT_MATCHES} то я правильно понимаю не будут данные по SNMP собираться с этих интерфейсов ?
      Пример можете указать как сделать ? У меня нумерация интерфейсов Ethernet 1/0/1-1/0/28. Так же в шаблоне я попробовал добавить ^Vlan[0-9.]* но в графиках все равно отображаеться vlan интерфейс ..

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        Originally posted by alex_orl
        Если я исключу интерфейсы через макрос {$NET.IF.IFALIAS.NOT_MATCHES} то я правильно понимаю не будут данные по SNMP собираться с этих интерфейсов ?
        Да, именно так - данные вообще не будут собираться (после некоторого времени, заданного параметром "Keep lost resources period" в правиле LLD; можно временно выставить там ноль - тогда во время следующего цикла LLD все отфильтрованные элементы данных будут удалены немедленно).
        Originally posted by alex_orl
        Пример можете указать как сделать ?
        Ну, если вам бОльшую часть интерфейсов надо исключить, а оставить всего лишь несколько, то проще будет использовать макрос {$NET.IF.IFALIAS.MATCHES}​, в котором указать регулярное выражение, под которое подпадает лишь нужное. Напишите, как у вас называется нужный интерфейс (один лишь аплинк? или нужных интерфейсов несколько?), и мы поможем составить регулярное выражение.
        Originally posted by alex_orl
        Так же в шаблоне я попробовал добавить ^Vlan[0-9.]* но в графиках все равно отображаеться vlan интерфейс ..

        "Vlan" и "vlan" - это разные строки (отличается регистр букв). К тому же "отображается" то, что было обнаружено ранее; см. выше замечание про "Keep lost resources period".

        Comment

        • alex_orl
          Junior Member
          • Oct 2022
          • 3

          #5
          Originally posted by Kos
          Да, именно так - данные вообще не будут собираться (после некоторого времени, заданного параметром "Keep lost resources period" в правиле LLD; можно временно выставить там ноль - тогда во время следующего цикла LLD все отфильтрованные элементы данных будут удалены немедленно).

          Ну, если вам бОльшую часть интерфейсов надо исключить, а оставить всего лишь несколько, то проще будет использовать макрос {$NET.IF.IFALIAS.MATCHES}​, в котором указать регулярное выражение, под которое подпадает лишь нужное. Напишите, как у вас называется нужный интерфейс (один лишь аплинк? или нужных интерфейсов несколько?), и мы поможем составить регулярное выражение.

          "Vlan" и "vlan" - это разные строки (отличается регистр букв). К тому же "отображается" то, что было обнаружено ранее; см. выше замечание про "Keep lost resources period".
          Спасибо за оперативный ответ. Интерфейсы которые нужно мониторить , но не отправлять по ним события Ethrnet 1/0/1 - 1/0/24 включительно , по которым нужно слать алерты Ethrnet 1/0/25-Ethrnet 1/0/28

          Comment

          • Kos
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • Aug 2015
            • 3404

            #6
            Originally posted by alex_orl
            Интерфейсы которые нужно мониторить , но не отправлять по ним события Ethrnet 1/0/1 - 1/0/24 включительно , по которым нужно слать алерты Ethrnet 1/0/25-Ethrnet 1/0/28
            Извините, я не верю, что у вас интерфейс так и называется - "Ethrnet 1/0/1"; я такого не видел ни разу. Видел имена интерфейсов вроде "ge-1/0/1" или "xe-1/0/1", но не так, как написано у вас.

            Ещё раз, вкратце:
            • в последних версиях Zabbix на правиле обнаружения с типом "SNMP" есть кнопка "Test" - можно на неё нажать и посмотреть, какой JSON возвращается и какие в нём есть LLD-макросы с какими значениями;
            • в том же правиле на вкладке "Filters" смотрим, какие заданы фильтры - вероятнее всего, там будет набор фильтров вида:
            {#IFALIAS} matches {$NET.IF.IFALIAS.MATCHES}
            {#IFALIAS} does not matches {$NET.IF.IFALIAS.NOT_MATCHES}
            {#IFNAME} matches {$NET.IF.IFNAME.MATCHES}
            {#IFNAME} does not matches {$NET.IF.IFNAME.NOT_MATCHES}
            • для того, чтобы вообще мониторить какие-то интерфейсы, они должны обнаруживаться правилом LLD в соответствии с этими фильтрами. Т.е. надо правильно (пере)определить соответствующие User-макросы (указанные в третьем столбце данной таблицы). Например, если вам не нужно мониторить интерфейсы, для которых LLD-макрос {#IFALIAS} возвращает значения, начинающиеся на "vlan", то, чтобы их отфильтровать, вы можете определить макрос {$NET.IF.IFALIAS.NOT_MATCHES}="^vlan".
            • если я прав в своём предположении об используемом у вас шаблоне, то для того, чтобы мониторить какие-то интерфейсы, но не отсылать по ним алерты, нужно определить набор макросов вида {$IFCONTROL:"{#IFNAME}"}​ (только вместо {#IFNAME}​ подставить конкретное значение для соответствующего интерфейса, см. п.1).

            Comment


            • alex_orl
              alex_orl commented
              Editing a comment
              Добрый вечер. Прошу прощения, названия сетевых интерфейсов Ethernet 1/0/1-1/0/28. Может мне просто в шаблоне отключить
              Список обнаружений-->Network interfaces discovery-->Прототипы элементов данных -->Прототипы триггеров сделать неактивным , и затем включать по необходимости только те порты по которым уведомлять о смене статуса? Такой вариант будет верным ?

              По поводу Vlan90 по какой то причине не срабатывает.
              Шаблон -->Макросы
              Макрос {$NET.IF.IFNAME.NOT_MATCHES}

              Задаю следующие данные
              ( ^vlan|^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9a-z]+$|docker[0-9]+|br-[a-z0-9]{12}) и Vlan90 все равно падает в данные..

            • Kos
              Kos commented
              Editing a comment
              Кажется, по поводу интерфейса Vlan я уже отвечал:

              > "Vlan" и "vlan" - это разные строки (отличается регистр букв).
          • Astar
            Member
            • Jul 2022
            • 36

            #7
            Я не думаю, что реально стоит собирать информацию по всем портам. Сделал сначала также, как увидел со старенького catalyst 4006 140 графиков - информативности НОЛЬ. Поэтому пошел следующим путем - те интерфейсы, которые необходимо добавлять через LLD в interface description начинаются с каких то одинаковых символов. Для себя принял решение - будут начинаться с **
            И это могут быть не только аплинки - какой-нибудь важный сервер, или routed port на L3 коммутаторах
            на уровне шаблона макросу присвоил значение:
            Code:
            [B]{$NET.IF.IFALIAS.MATCHES}  == ^\*\*.*[/B]
            только интерфейсы с таким дескрипшеном добавляются по LLD и для них срабатывают все тригеры. на железке тоже по show interface description очень наглядно видно что считаю важным, что нет

            Comment

            • wins
              Senior Member
              • Sep 2014
              • 307

              #8
              Таки если исключить возможную опечатку, то "Ethernet1/0/1" - вполне себе есть (DCN и её мутации в РФ) Хотя так-то есть устройства, позволяющие написать в ifname любую ересь в т.ч. "Ethrnet" (микротик, например)

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

              Comment

              • mgnhost
                Junior Member
                • Jul 2012
                • 9

                #9
                Originally posted by Kos
                Как вариант, если собирать данные хочется, а реагировать на них не надо, то можно поэкспериментировать с макросами {$IFCONTROL:"{#IFNAME}"}​ (см. также тут).
                А можете написать пример, например для интерфейсов vnet, для шаблона Linux by Zabbix agent ?

                Comment

                Working...