Ad Widget

Collapse

Правило обнаружения. Как корректно составить.

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Ignatiy
    Junior Member
    • Feb 2022
    • 7

    #1

    Правило обнаружения. Как корректно составить.

    Добрый день, коллеги!
    Пилю шаблон для системы питания и столкнулся с проблемой. В системе питания установлены выпрямители с индексами от 0 до 19.
    В правиле обнаружения указано следующее:
    discovery[{#INDEX},.1.3.6.1.4.1.12148.9.5.5.2.1.1]
    Вывод SNMPWALK:
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.0 = INTEGER: 1
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.1 = INTEGER: 2
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.2 = INTEGER: 3
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.3 = INTEGER: 4
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.4 = INTEGER: 5
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.5 = INTEGER: 6
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.6 = INTEGER: 7
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.7 = INTEGER: 8
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.8 = INTEGER: 9
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.9 = INTEGER: 10
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.10 = INTEGER: 11
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.11 = INTEGER: 12
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.12 = INTEGER: 13
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.13 = INTEGER: 14
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.14 = INTEGER: 15
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.15 = INTEGER: 16
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.16 = INTEGER: 17
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.17 = INTEGER: 18
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.18 = INTEGER: 19
    SNMPv2-SMI::enterprises.12148.9.5.5.2.1.1.19 = INTEGER: 20

    В итоге с этим правилом создаются элементы данных для выпрямителя 1....выпрямителя 20.
    Выпрямитель 0 не попадает, выпрямитель 20 лишний.
    Что я делаю не так? Пробовал использовать #SNMPINDEX, чтобы в индекс попадало последнее значение OID, но заббикс ругается.
    Посоветуйте, как сделать правильно.
    Last edited by Ignatiy; 24-03-2022, 14:51.
  • Answer selected by Kos at 29-03-2022, 08:46.
    Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    Originally posted by Ignatiy
    есть выпрямителя со статусом Не установлен (0). Как их через фильтр отбросить, чтобы на статус 0 элемент данных не создавался?
    Наверное, где-то рядом есть соседняя таблица, содержащая значения этих статусов (со своим OID-ом и, скорее всего, тем же набором индексов этих OID-ов, т.е. их последних компонентов).
    Вот, судя по этой ссылке, это будет таблица .1.3.6.1.4.1.12148.9.5.5.2.1.2 (последняя цифра - не единица, а двойка).
    Тогда нужно в правило обнаружения добавить обе таблицы, назначив ей свой LLD-макрос; например:
    Code:
    discovery[{#INDEX},.1.3.6.1.4.1.12148.9.5.5.2.1.1,{#STATUS},.1.3.6.1.4.1.12148.9.5.5.2.1.2]
    Тогда дальше в том же правиле обнаружения просто добавляете фильтр:
    {#STATUS} does not match ^0$

    Comment

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

      #2
      LLD-макрос {#SNMPINDEX} будет содержать значения от нуля до 19 (последняя часть найденных SNMP OID-ов).
      LLD-макрос {#INDEX} (указанный вами в правиле обнаружения) будет содержать значения от единицы до 20 (значения, взятые из этих OID-ов).

      Осталось правильно использовать эти макросы в прототипах элементов данных.
      Будет легче что-то посоветовать, если покажете настройки вашего прототипа элемента данных (например, скриншот) и процитируете ругань Zabbix-а.

      Comment

      • Ignatiy
        Junior Member
        • Feb 2022
        • 7

        #3
        Originally posted by Kos
        LLD-макрос {#SNMPINDEX} будет содержать значения от нуля до 19 (последняя часть найденных SNMP OID-ов).
        LLD-макрос {#INDEX} (указанный вами в правиле обнаружения) будет содержать значения от единицы до 20 (значения, взятые из этих OID-ов).

        Осталось правильно использовать эти макросы в прототипах элементов данных.
        Будет легче что-то посоветовать, если покажете настройки вашего прототипа элемента данных (например, скриншот) и процитируете ругань Zabbix-а.
        Получилось! В правиле обнаружения нужно использовать {#INDEX}, а вот в прототипе элементов можно уже применять {#SNMPINDEX} и тогда все отображается как надо.

        Может быть еще подскажите по следующему вопросу - есть выпрямителя со статусом Не установлен (0). Как их через фильтр отбросить, чтобы на статус 0 элемент данных не создавался?

        Comment

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

          #4
          Originally posted by Ignatiy
          есть выпрямителя со статусом Не установлен (0). Как их через фильтр отбросить, чтобы на статус 0 элемент данных не создавался?
          Наверное, где-то рядом есть соседняя таблица, содержащая значения этих статусов (со своим OID-ом и, скорее всего, тем же набором индексов этих OID-ов, т.е. их последних компонентов).
          Вот, судя по этой ссылке, это будет таблица .1.3.6.1.4.1.12148.9.5.5.2.1.2 (последняя цифра - не единица, а двойка).
          Тогда нужно в правило обнаружения добавить обе таблицы, назначив ей свой LLD-макрос; например:
          Code:
          discovery[{#INDEX},.1.3.6.1.4.1.12148.9.5.5.2.1.1,{#STATUS},.1.3.6.1.4.1.12148.9.5.5.2.1.2]
          Тогда дальше в том же правиле обнаружения просто добавляете фильтр:
          {#STATUS} does not match ^0$

          Comment

          • Ignatiy
            Junior Member
            • Feb 2022
            • 7

            #5
            Originally posted by Kos
            Наверное, где-то рядом есть соседняя таблица, содержащая значения этих статусов (со своим OID-ом и, скорее всего, тем же набором индексов этих OID-ов, т.е. их последних компонентов).
            Вот, судя по этой ссылке, это будет таблица .1.3.6.1.4.1.12148.9.5.5.2.1.2 (последняя цифра - не единица, а двойка).
            Тогда нужно в правило обнаружения добавить обе таблицы, назначив ей свой LLD-макрос; например:
            Code:
            discovery[{#INDEX},.1.3.6.1.4.1.12148.9.5.5.2.1.1,{#STATUS},.1.3.6.1.4.1.12148.9.5.5.2.1.2]
            Тогда дальше в том же правиле обнаружения просто добавляете фильтр:
            {#STATUS} does not match ^0$
            Огромное спасибо. Все заработало по Вашим рекомендациям.

            Comment

            Working...