Ad Widget

Collapse

Сохранять переменную между запусками Script item

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • elem2k3
    Junior Member
    • Sep 2024
    • 4

    #1

    Сохранять переменную между запусками Script item

    Коллеги, добрый день!

    Подскажите есть ли возможность сохранять какую нибудь переменную между запусками Script item?

    Задача банальная: хочу сделать скрипт, который запрашивал токен и сохранял его, чтобы последующие запуски его использовали. В случае если будет ошибка авторизации, скрипт бы запрашивал токен снова, делал повторный запрос и сохранял новый токен...
  • Alex_UUU
    Senior Member
    • Dec 2018
    • 541

    #2
    Храни токен в файле на узле.
    Храни токет как данныев элементе данных и вытаскивай оттуда.
    В дискаверинге - как макрос.
    Подумалось - а если в инвентаризации? :-)

    Comment

    • elem2k3
      Junior Member
      • Sep 2024
      • 4

      #3
      Не совсем понятно как я скриптом буду обновлять файл на узле, если Script item не имеет доступа к файлу?

      По идеи скрипт должен выглядеть как то так:

      1. Прочитали переменную токен откуда то из памяти
      2. Попробовали с токеном запросить данные, если получилось - вернули их
      3. Если не получилось, запросили новый токен, сохранили его в памяти, повторно запросили данные.

      Вот этот вот шаг с сохранением куда то в память/получение из памяти непонятно как сделать, чтобы между запусками скрипта сохранялось.

      Пока находил только варианты где с помощью ZABBIX_API обновляют MACROS внося туда значение токена, думал может есть вариант проще/правильнее?

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        В инвентори - зависит от версии.То есть положить туда можно, а вот взять в параметр скрипта макросом {INVENTORY.*} - начиная с 6.2

        Comment

        • elem2k3
          Junior Member
          • Sep 2024
          • 4

          #5
          Подскажите а как положить в INVENTORY из Script Item? С 6.2

          Comment

          • Semiadmin
            Senior Member
            • Oct 2014
            • 1625

            #6
            Я это вижу так:
            Есть script, в который как значение параметра передается {INVENTORY.<field>} с токеном.
            Скрипт пытается подключиться к ресурсу с этим токеном, если не получилось - выполняется запрос нового токена, а потом подключение с ним.
            К данным, выводимым скриптом, добавляется токен (например, как значение дополнительного ключа в JSONe).
            Потом эти данные разбираются на зависимые айтемы. Один (или несколько) получают полезную информацию от ресурса, а еще один - токен и пишет его в инвентори (Populates host inventory field)

            Comment

            Working...