Előző 14.1 Mérő szerver típusok specifikumai Következő

14.1.28 REST mérő szerverek

A 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):

  • Alap URL (REST EQ 1 BASE_URL): kötelező paraméter. Az adatgyűjtő ezt használja mint alapot a mérés típusokban és az egyéb eszköz paraméterekben használt URL-eknél, mindegyik esetben ezen logika mentén:
    • ha az http-vel vagy https-sel kezdődik, akkor ezen paraméter értékét ott nem használja
    • ha a / karakterrel kezdődik, akkor csak az itt megadott protokollt és szerver:port-ot használja
    • egyéb esetben a lekérdezett URL az itt megadott érték és a mérés típus definícióban illetve login-logout paraméterben megadott értéke összefűzésével áll elő

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

  • Authentikáció típusa (REST EQ 2 AUTH_TYPE): milyen fajta authentikációt kell használni és van-e szükség logout hívásra is. A különböző opciók:
    • Nincsen szükség authentikációra
    • Ún. "Basic authentikáció" a "Felhasználó név"/"Jelszó" paraméterekkel beállított értékekkel. Az adatgyűjtő használhatja a Basic authentikációt mindig hívásnál, vagy csak a kommunikáció elején egy GET vagy POST login URL-nél
    • GET vagy POST hívás a kommunikáció előtt. Az adatgyűjtő helyettesíti az URL-ben a PVSR_USER szöveget a "Felhasználó név" paraméter értékével, míg a PVSR_PASSWORD szöveget a "Jelszó" paraméter értékével. Ha a POST metódust használja, akkor az URL-ben opcionálisan a ? karakter után álló részt mint a kérés tartalmát fogja elküldeni

Az utolsó két opció kombinálható POST, DELETE vagy GET logout opcióval.

  • Plusz http header-ek (REST EQ 6 HTTP_HEADERS): a kérések elküldése esetén milyen HTTP header értékeket használjon a rendszer. Az egyes elemeket külön-külön sorba kell írni, minden sor formátuma „név: érték”, például:

Accept: application/json;charset="utf-8"

  • A login / logout hívásoknál használt paraméterek:
    • Authentikációs URL (REST EQ 3 AUTH_URL)
    • Logout URL (REST EQ 3 AUTH_URL_LOGOUT)
    • Felhasználó név (REST EQ 4 USER)
    • Jelszó (REST EQ 5 PASSWORD)

 

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.

JSON feldolgozó (egy sorba írva)

Feldolgozás eredménye

PVSR_NAME=Level1/Array1/*/ArrayKey1

Value

Other value

PVSR_RETURN=Level1/Array1/1/ArrayKey2

124

PVSR_RETURN=Level1/Level2/Level2Key1

33

PVSR_NAME1=Level1/Array1/*/ArrayKey1,

PVSR_NAME2=Level1/Array1/*/ArrayKey3,

PVSR_PORT=Level1/Array1/*/ArrayKey2

123: Value Name1

124: Other value Name2

PVSR_RETURN1=Level1/Array1/[ArrayKey3=Name2]/ArrayKey2

124

PVSR_PORT=Level1/Level3/*/A/*/A1,

PVSR_NAME=Level1/Level3/*/A/*/A2

123: 114

1123: 1124

PVSR_NAME=*/pvsr_hash_key

Level1

PVSR_COUNT_ITEMS=Level1/Array1

2

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

 

14.1.28.1 Tetszőleges lekérdezés

A tetszőleges lekérdezés oldal abban nyújt segítséget, hogy mérés képletekhez változókat tudjunk előállítani. Az oldalon egy szövegbeviteli mezőben meg lehet adni egy változót vagy csak egy REST URL-t és az oldal lekérdezi azt az eszköztől, megjeleníti a kapott JSON választ és alatta egy táblázatot, amelyet a változóban található PVSR_PORT és PVSR_NAME paraméterek alapján tölt fel. Ha a mérés végzéséhez használható változót akarunk előállítani, akkor azt tehetjük úgy, hogy az oldalon a PVSR_NAME-et használjuk és azt a mérés képlet konfigurációja során helyettesítjük a PVSR_RETURN értékkel. A könnyebb mérés változó előállítás érdekében a JSON válaszban linkeket helyez el az alkalmazás, amelyekkel módosítható a lekérdezéshez használt változó. Például az alábbi első képernyőképen az Address mező melletti add_as_name linkre klikkelve a második képernyőkép szerint alakul az oldal, majd az OK gombra klikkelve a harmadik képernyőképet kapjuk: