Ad Widget

Collapse

Замена в имени автообнаруженного элемента.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dendy_do
    Junior Member
    • Feb 2019
    • 6

    #1

    Замена в имени автообнаруженного элемента.

    Добрый день!

    Пользуюсь Zabbix 4.0.5 под CentOS, MariaDB. Для мониторинга используется только SNMP.

    У меня на разных серверах есть диски, смонтированные в директории вида: /var/instance/45/, /var/instance/45/data/room и т.д. Задача: сделать стандартное автообнаружение дисков (уже сделал), но в именах точек монтирования вида "/var/instance/45/что-то" заменять номер, например, на <N>: "/var/instance/45/что-то" -> "/var/instance/<N>/что-то". Это нужно, чтобы строить обзоры данных по дискам с похожими именами. Серверов много, у каждого много точек монтирования и указанный вид имеют только часть из них. Остальные обычные - /usr, /var, и т..д. Как быть?

    Пробовал так:

    discovery[{{#SNMPVALUE}.iregsub("^([a-zA-Z\/]+)[0-9]*(.+)", "\1<N>\2")},1.3.6.1.2.1.25.2.3.1.3,{#ALLOC_UNITS}, 1.3.6.1.2.1.25.2.3.1.4,{#STORAGE_TYPE},1.3.6.1.2.1 .25.2.3.1.2]



    Но, увы, все время возникали какие-то ошибки.
    Last edited by dendy_do; 06-03-2019, 04:53.
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Macro functions применяются не в самом LLD rule, а в имени (но не в ключе) прототипа айтема.

    Comment

    • dendy_do
      Junior Member
      • Feb 2019
      • 6

      #3
      Спасибо, это помогло! Теперь возникла другая сложность. Хочу использовать замененное имя в триггере - в контексте макроса. Так:

      Выражение:

      {Server-UNIX:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].avg(5m)}>{$STORAGE_UTIL_WARN:'{{#SNMPVALUE}.iregs ub("^([\/a-zA-Z]+)$", "\1")}{{#SNMPVALUE}.iregsub("^([\/a-zA-Z]+)/[0-9]{1,2}(.*)", "\1/<N>\2")}'}

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

      Comment

      • dendy_do
        Junior Member
        • Feb 2019
        • 6

        #4
        Чтобы было понятнее. Я хочу назначить всем дискам трешхолд 80%. Но для дисков с точкой монтирования /var/log трешхолд в 90%. Но при этом, оставить возможность переопределять это значения для обнаруженного хоста индивидуально. Т.е. для диска с именем "/var/45/log/" нужно получить: {$STORAGE_UTIL_WARN: "/var/<N>/log" }.

        Как это можно сделать?

        Comment

        • Semiadmin
          Senior Member
          • Oct 2014
          • 1625

          #5
          Originally posted by dendy_do
          Тем не менее просьба подсказать, как сделать так, чтобы имя диска в контексте также нормально отобразилось, как получилось сделать в имени обнаруженного элемента данных.
          Думаю, никак. Macro functions в макросах с контекстом не работают. Макросы LLD там используются as is.

          Comment

          Working...