14.1.28 REST mérő szerverekA REST mérő szerver aktív és discovery-re képes PVSR modul, amely HTTP REST hívások segítségével képes begyűjteni JSON-ban kapott értékeket. Az eszközöknek az alap attribútumaikon kívül az alábbi paramétereik vannak (zárójelben megadva az adott paraméter név kódját, lásd 7.5.6 Nem SNMP adatgyűjtők paraméterei):
Példa: ha ezen paraméter értéke http://X/Y és a "Authentikációs URL": paraméter értéke Z/W akkor az adatgyűjtő a http://X/Y/Z/W URL-t használja, ha az értéke /W/V akkor pedig a http://X/W/V URL-t
Az utolsó két opció kombinálható POST, DELETE vagy GET logout opcióval.
Accept: application/json;charset="utf-8"
Az URL paraméter az alábbi két lehetőség közül tartalmazhatja valamelyiket opcionálisan: · #PVSR_CHECK_RESPONSE=<reguláris_kifejezés> ebben az esetben a login kérésre küldött válasznak illeszkednie kell a megadott reguláris kifejezésre. Például ha a login válaszra érkezett JSON válasz ez {“Success”: 1} akkor az URL paraméter értékének így kell végződnie #PVSR_CHECK_RESPONSE=Success.+1 · #PVSR_<header_kulcs>_REGEXP=<reguláris_kifejezés> ebben az esetben a login kérésre küldött válasznak illeszkednie kell a megadott reguláris kifejezésre és az első reguláris kifejezés illeszkedési csoport értékét fogja a rendszer felhasználni mint a megadott HTTP header kulcs értékét. Például ha a login válaszra érkezett JSON válasz ez {"Token": "dsadk0-3430ads"} és a kapott értéket mint az AuthToken HTTP header értékét kell felhasználni akkor az URL paraméter értékének így kell végződnie #PVSR_AuthToken_REGEXP=Token.+"(.+)" A rendszer több minta mérés típust és egy eszköz template-et is tartalmaz PVSR-rel kapcsolatos adatok gyűjtéséhez a PVSR REST API-ján keresztül. A mérés képletekben használható változókkal többféle REST lekérdezést és JSON feldolgozást is be lehet állítani. Minden ilyen változó egy vagy több REST hívást és a válaszul kapott JSON objektumban történő „navigációkat” tartalmaz és a változón belüli második, harmadik, … REST hívás felhasználhatja paraméternek az előző REST hívásokra kapott JSON válaszokból kinyert értékeket. Az egyes REST hívás / JSON feldolgozás párokat a ; karakterrel kell elválasztani, míg a REST hívást az egy vagy több JSON feldolgozástól a , karakterrel kell elválasztani, mint ahogy az JSON feldolgozásokat is a , karakterrel. Kivétel, ha a REST hívás / jelre végződik, ilyenkor nem kötelező utána használni a , karaktert a JSON feldolgozás elválasztásához. Összegezve a formátum: REST,JSON,JSON,JSON;REST,JSON,JSON;REST/JSON A JSON értékek feldolgozása során a rendszer a kapott szöveges információból JSON objektum fát épít, ahol a fában történő navigáció során az egyes szintekre az alábbiképpen lehet hivatkozni: · Elem kulcsával · Ha a szint tömböt tartalmaz, akkor a tömb indexével (0-tól számozódva) · A szint alatti objektum elem valamelyik kulcsára történő szűréssel. Ehhez a szint specifikálását [kulcs=érték] formában kell megadni · Tömb és hash szinteknél használható a * karakter is a szint összes elemének a feldolgozására. Ez a mérés név felderítéséhez használható változóknál lehet hasznos. A rendszer gondoskodik arról, hogy ha több feldolgozás eredményben is használjuk a * karaktert, akkor mindegyik elemhez ugyanaz az objektum tartozik. Amennyiben hash szintnél alkalmazzuk a * karaktert, úgy a hash kulcsát megjeleníti a rendszer a hash struktúra elemei között is a pvsr_hash_key paraméterben (lásd a mintapéldákat) A JSON feldolgozás eredményét háromféle értékként lehet kezelni a változóban. Mindegyiknél több értéket is lehet képezni, ilyenkor az eredményeket egytől kezdve számozni kell (például PVSR_PORT1, PVSR_PORT2, …) · PVSR_PORT: mérés felderítés során a mérés indexébe kerül az érték · PVSR_NAME: a mérés felderítés során a mérés nevébe kerül az érték · PVSR_RETURN: a mérés elvégzése során lehet ezt használni · PVSR_COUNT_ITEMS: alternatív mérés végzéshez használható kimeneti paraméter, amelyet tömb szintnél lehet felhasználni. Ebben az esetben a tömb elemszámát fogja tartalmazni a mérés Ha több számozott elemként is szerepel, akkor a PVSR_PORT esetében ponttal kerülnek az értékek elválasztásra, a PVSR_NAME és PVSR_RETURN esetében pedig szóközzel. Az alábbi minta JSON esetében a JSON feldolgozások eredményét lentebb lehet látni.
Mint a példa is mutatja, ha egy darab van egy feldolgozási típusból, akkor is megengedett az elem számozása (PVSR_RETURN1 a PVSR_RETURN helyett). A REST hívásokban és a JSON feldolgozásokban az egyes PVSR_PORT elemekre lehet hivatkozni a ${PVSR_PORT} illetve ${PVSR_PORT1}, … formában. Az alábbiakban erre minta hívásokat a VMware REST API-ja segítségével fogunk bemutatni. A /rest/vcenter/vm hívással az egyes virtuális gépeket lehet lekérdezni (a képernyőkép a Tetszőleges lekérdezés adatgyűjtő specifikus oldallal készült): Az egyes virtuális gépek részletes adatait a /rest/vcenter/vm/ide_a_vm_kulcs_értéke_kerül lekérdezéssel lehet megkapni, amely tartalmazza többek között a virtuális gépek diszkjeit is. Ezek alapján az alábbi, a valóságban egy sorba írandó kifejezés az alatta található JSON-ök alapján az alatta lévő eredményt produkálja. /rest/vcenter/vm,PVSR_PORT1=value/*/vm,PVSR_NAME1=value/*/name; /rest/vcenter/vm/${PVSR_PORT1}/PVSR_PORT2=value/disks/*/key, PVSR_NAME2=value/disks/*/value/label Az így felderített diszkeknél ezek alapján például a capacity értéket a következő mérés változóval lehet megkapni (egy sorba): /rest/vcenter/vm/${PVSR_PORT1}/ PVSR_RETURN=value/disks/[key=${PVSR_PORT2}]/value/capacity |