Ad Widget

Collapse

Смена элемента данных в lld: сохранить хисто&#

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • wins
    Senior Member
    • Sep 2014
    • 307

    #1

    Смена элемента данных в lld: сохранить хисто&#

    Всем привет.
    Использую LLD для съема различной статистики с сетевого оборудования.

    Понадобилось сменить key в item prototype (раньше я привязывался к ifDescr, теперь - к ifName).

    Вопрос: как сохранить хистори по айтему? На ум приходит только сделать костыль в discovery rule
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Привет, wins.
    Я тоже немного интересовался вопросом сохранения истории при изменении одного из макросов в ключе, даже написал по этому поводу ZBXNEXT-3911, правда, оно никого не заинтересовало. Не уверен, но возможно, вам может помочь такой трюк.
    Предполагается, конечно, что LLD самописное, а не из коробки. Если из коробки - можно попробовать сначала заменить его самописным, возвращающим тот же json. Правда, не уверен, что при этом не изменится itemid, а именно его изменение прерывает историю.
    Если изменится - все нижеописанное бесполезно.
    1. Переделайте LLD так, чтобы оно возвращало сразу 2 макроса: {#IFDESCR} и {#IFALIAS} (предполагаю, что сейчас возвращается {#IFDESCR}). Ключи прототипов айтемов тоже надо переделать так, чтобы в них было сразу 2 макроса, напр. ifOperStatus[{#IFDESCR},{#IFALIAS}].
    Экспериментально я выяснил, что при добавлении (но не изменении значения!) второго макроса itemid не меняется. Правда, я не менял само LLD, в нем уже были 2 макроса, менял только прототип айтема, но есть шанс, что прокатит.
    Макрос в имени прототипа айтема можно менять безболезненно. Выполняете LLD.
    2. Вот здесь я не уверен, но можно попробовать. Еще раз меняете прототип айтема, убирая из него старый макрос: ifOperStatus[{#IFALIAS}] и выполняете LLD.
    P.S. Хотя в случае SNMP LLD и коробочное решение можно модифицировать, чтобы оно возвращало 2 макроса https://www.zabbix.com/documentation...evel_discovery
    Last edited by Semiadmin; 21-06-2017, 08:17.

    Comment

    • wins
      Senior Member
      • Sep 2014
      • 307

      #3
      Тимплейт самописный, да.
      Вот старый discovery rule:

      discovery[{#IFDESCR},IF-MIB::ifDescr,{#IFALIAS},IF-MIB::ifAlias]
      И старый прототип: ifInOctets[{#IFDESCR}]

      Вот новый:
      discovery[{#IFDESCR},IF-MIB::ifDescr,{#IFALIAS},IF-MIB::ifAlias,{#IFNAME},IF-MIB::ifName]
      И ключ: ifInOctets[{#IFNAME}]

      В моем случае lld меняется, по #IFNAME хистори никакой нет.
      Попробую на тесте пройти процедуру миграции)

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        В вашем случае получается цепочка вроде
        ifOperStatus[{#IFDESCR}] - ifOperStatus[{#IFDESCR},{#IFNAME}] - ifOperStatus[{#IFNAME}]

        Comment

        • wins
          Senior Member
          • Sep 2014
          • 307

          #5
          Semiadmin, коллега!
          Большое спасибо. На тестовом инстансе все успешно

          Comment

          • wins
            Senior Member
            • Sep 2014
            • 307

            #6
            апдейт для последователей:
            При удалении прототипов айтемов, учавствующих в прототипе графиков - сначала удалите этот прототип с графиков. В противном случае графики придется пересоздавать руками, и как следствие - все скрины и т.д.

            Наступил на грабли при миграции продакшена. Часа за 2 восстановил все скрины)

            Comment

            Working...