Ad Widget

Collapse

Получение значения ключа из JSON

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • maxxus
    Junior Member
    • Nov 2020
    • 17

    #1

    Получение значения ключа из JSON

    Всем привет!
    Столкнулся с проблемой обработки JSON в Zabbix.
    Скрипт отдает данные в JSON формате:

    Code:
    {
      "interface_name": {
        "peers": {
          "peer1_name": {
            "transferRx": 783234534,
            "transferTx": 239435675670,
            "allowedIps": [
              "10.0.0.101/32"
            ]
          },
          "peer2_name": {
            "transferRx": 78345345892,
            "transferTx": 23945676755,
            "allowedIps": [
              "10.0.0.102/32"
            ]
          },
          "peerN_name": {
            "transferRx": 34508892,
            "transferTx": 239456778,
            "allowedIps": [
              "10.0.0.200/32"
            ]
          }
        }
      }
    }​
    По каждому peer_name мне нужно автоматически создавать item и отрисовывать графики.
    Для этого мне надо вытаскивать значения peer1_name - peerN_name, количество которых каждый раз может меняться.
    Т.е. peer_name мне заранее неизвестны (ни их количество, ни имена)
    Как мне в Discovery rules вытащить эти значения?
    В целом, эта проблема решается через отдельный скрипт, который в цикле достанет эти значения,
    но крайне желательно сделать именно средствами самого Zabbix.


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

    #2
    Originally posted by maxxus
    Всем привет!
    Столкнулся с проблемой обработки JSON в Zabbix.
    Скрипт отдает данные в JSON формате:

    [...]

    По каждому peer_name мне нужно автоматически создавать item и отрисовывать графики.
    Для этого мне надо вытаскивать значения peer1_name - peerN_name, количество которых каждый раз может меняться.
    Т.е. peer_name мне заранее неизвестны (ни их количество, ни имена)
    Как мне в Discovery rules вытащить эти значения?
    В целом, эта проблема решается через отдельный скрипт, который в цикле достанет эти значения,
    но крайне желательно сделать именно средствами самого Zabbix.
    Я бы это и делал скриптом, но на стороне Zabbix-а - через предобработку с типом "Script", сам скрипт на JavaScript-е должен получиться достаточно компактным.
    Либо, раз уж исходные данные всё равно генерируются каким-то скриптом, то подкорректировал бы тот скрипт, чтобы он выдавал peer-ы в виде массива.

    Comment

    Working...