14.1.30 Telemetry mérő szerverekA Telemetry mérő szerver aktív de és discovery-re képes PVSR modul, amely irreguláris (nem periódikus ciklusú) méréseket végez: telemetry csomagokat fogad eszközökből az alábbi módok egyikével: · Cisco MDT üzenetek UDP vagy TCP protokollon · Cisco MDT üzenetek GRPC üzenetekben HTTP2 protokollon · gNMI telemetria üzenetek HTTP2 protokollon PVSR HTTP2 protokoll esetében tud SSL nélkül és SSL-lel is működni (mind Cisco MDT mind gNMI esetében). Ha SSL-t használ a rendszer, akkor be kell állítani a CISCO_MDT_GRPC_CERT_FILE, CISCO_MDT_GRPC_KEY_FILE és CISCO_MDT_GRPC_CERT_PASSWORD paramétereket. Cisco eszközök esetében az SSL certificate file-t fel kell másolni az eszközre a /misc/config/grpc/dialout könyvtárba. A PVSR installáció tartalmaz egy SSL certificate-et pontosan ilyen célokra (pvsr_grpc_cert.pem). Az adatgyűjtés jelentősen különbözik attól függően, hogy Cisco MDT vagy gNMI protokollt használunk. Cisco MDT esetében az alkalmazás többféle kódolással is képes fogadni a csomagokat: GPB, JSON és Self-describing-GPB (más néven GPBKV). Az adatgyűjtő a CISCO_MDT_UDP_PORT, CISCO_MDT_TCP_PORT, CISCO_MDT_GRPC_WITH_SSL és CISCO_MDT_GRPC_WITHOUT_SSL paraméterekben megadott portokon kezd el figyelni és automatikusan felismeri a használt kódolást. A telemetria adatok küldését kézzel be kell állítani a Cisco eszközökben, ez nem képezi részét a PVSR funkcionalitásának. Az adatgyűjtő karban tart egy belső cache-t is, amiben eltárolja a valaha látott Cisco MDT telemetria szenzor útvonalakat és kulcsokat és mindezt két okból is teszi. Egyrészt az eszköz módosítása során ezt a cache-t használja fel a felderíthető mérések kigyűjtésére, ami azt is jelenti, hogy ajánlatos a Cisco eszközben előszőr beállítani a telemetria küldését és csak utána felvenni az eszközt a PVSR-be. Másodsorban ezt a cache használja fel arra is, hogy egyszerűbbé tegye a PVSR adminisztrátorok életét: az alkalmazásnak van egy Telemetry adatgyűjtő specifikus oldala, „Cisco MDT elérhető adatok” néven, amely megmutatja, hogy az eszköztől milyen változó útvonalak és kulcsok érkeztek eddig. Ha a „Csak az ehhez az eszközhöz tartozó elérhető adatok lekérdezése/törlése” nincsen kijelölve, akkor pedig az összes eszköztől kapott adatot megmutatja. Ez az opció akkor hasznos, ha nem vagyunk biztosak abban, hogy milyen MDT azonosítóval küldi az eszköz az adatokat. Az oldal segítségével törölni is lehet ebből a cache-ből. Mivel a PVSR csupán figyel a bejövő üzenetekre, ezért a Cisco eszközöknek kell képesnek lenniük arra, hogy felépítsenek egy kapcsolatot az adatgyűjtő szerver felé. A gNMI telemetria esetében az adatgyűjtő a megadott paramétereket arra használja fel, hogy feliratkozzon az eszköznél telemetria update üzenetekre. Ez azt is jelenti, hogy az eszközben csupán a gNMI protokollt kell engedélyezni és opcionálisan SSL beállításokat elvégezni, mielőtt az eszközt fel lehet vennie a PVSR-ben. Az adatgyűjtő felderítés során úgy teszteli le, hogy milyen mérések támogatottak, hogy teszt képpen feliratkozik minden mérés típusban található változóra. A gNMI eszközökhöz szintén létezik egy adatgyűjtő specifikus oldal, a „gNMI képességek”, amely megmutatja az eszköz válaszát a gNMI Capabilities hívásra. Mivel a kommunikációt mindig a PVSR kezdeményezi, ezért neki kell képesnek lennie kapcsolatot felépíteni a mért eszközzel. A mérés képletben használható változók formátuma egy kicsit különbözik attól függően, hogy az eszköz Cisco MDT GPB kódolással vagy sem (egyéb Cisco MDT vagy gNMI). Ennek az az oka, hogy Cisco MDT GPB esetében az adatgyűjtőnek plusz információra van szüksége ahhoz, hogy értelmezni tudja a kapott telemetria csomagot. Cisco MDT JSON vagy GPBKV kódolással vagy gNMI: A változóknak <XXX>:<YYY>:<ZZZ> formátumban kell lenniük, ahol is a <XXX>:<YYY> részt a Cisco MDT terminológia sensor-path-nak illetve encoding_path-nak nevezi, míg a gNMI esetében a <XXX> részt path origin-nek és a <YYY> path element-nek nevezzük. Azonban mindkét esetben alapvetően a <XXX>:<YYY> rész értelmezése ugyanaz: egy pontot jelöl ki a változó fában, amely alatt a kívánt paraméterek megtalálhatóak. A <ZZZ> rész mutat a konkrét paraméterre. Mind az <YYY> mind a <ZZZ> résznek lehet további struktúrája, „/” jellel elválasztott elemekből állhatnak. Ezen elemek jelentése protokoll függő: · Cisco MDT esetében a <XXX>:<YYY> rész egy konkrét MDT üzenet formátumot jelöl, ahogyan azt a https://github.com/cisco/bigmuddy-network-telemetry-proto oldalon található megfelelő .proto file specifikálja és a <ZZZ> elemei ebben az üzenet definícióban mutatnak egy konkrét paraméterre · gNMI esetében az adatgyűjtő az <XXX>:<YYY> telemetria update-ekre iratkozik fel és a <ZZZ> részben található elemek jelölik ki a kapott üzenetben található paramétert Habár az értelmezés nem teljesen ugyanaz, mégis ugyanazzal a <XXX>:<YYY>:<ZZZ> értékkel lehet ugyanarra a paramétere hivatkozni mind Cisco MDT mind gNMI esetében. Néha egy paraméter több instanciával is rendelkezhet egy eszköz esetében, hasonlóan a PVSR mérés típus Tábla=Igen opciójához. Ezekben az esetekben a mérés képletben a „.PORT” rész az egyes instanciákat jelenti. Példák: Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters:bytes-received Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization:total-cpu-fifteen-minute és teljes mérés képlet példa: my $nowV=#Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization:total-cpu-fifteen-minute.PORT#; if ($nowV>=0) { NO_LINEAR_OUT=$nowV; } Cisco MDT GPB kódolással A GPB kódolás esetében nem lehet dekódolni a kapott telemetria üzenetet a megfelelő .proto file tartalmának legalább részben történő ismerete nélkül. A <ZZZ> rész tartalma ezért más: nem paraméter neveket tartalmaz, hanem paraméter szám azonosítókat, opcionálisan kiegészítve paraméter típussal, de továbbra is több „/” karakterrel elválasztott részből állhat. Általánosságban a <ZZZ> rész formátuma az alábbi: <zzz1>/<zzz2>/…/<zzzN> vagy <zzz1>/<zzz2>/…/<zzzN>[type=<típusN>] Az utolsó elemig a részek jelentése, hogy „navigálj a fában az adott csomóponthoz”, míg az utolsó elem (a „fa levele”) egy paramétert jelöl, amelynek a típusa uint64, ha nincsen megadva a <típusN> értékben. Például az előző példában szereplő bytes-received paraméter GPB ábrázolása: Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters:51 vagy ha explicit meg akarjuk adni a paraméter típusát, akkor Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters:51[type=uint64] mivel az üzenet .proto file-ja (https://github.com/cisco/bigmuddy-network-telemetry-proto/blob/master/proto_archive/cisco_ios_xr_infra_statsd_oper/infra_statistics/interfaces/interface/latest/generic_counters/ifstatsbag_generic.proto) ezt a specifikációt tartalmazza: Az eszköz konfigurációs paraméterek szintén különböznek, attól függően, hogy az adatgyűjtő Cisco MDT-t vagy gNMI-t használ és az Időtúllépés paramétert csak a gNMI esetében veszi figyelembe. · Típus (TELEMETRY EQ 1 TYPE): az adatgyűjtés típusa, Cisco Model Driven Telemetry, gNMI SSL titkosítással vagy SSL titkosítás nélkül · Cisco MDT esetében: o Cisco MDT azonosító (TELEMETRY EQ 2 NODE_ID_STR): a Cisco eszközben beállított MDT azonosító (hostname), kötelező paraméter · gNMI esetében: o gNMI host (TELEMETRY EQ 3 HOST AND PORT): a host és port, ahova a PVSR-nek csatlakoznia kell, kötelező paraméter. A formátum vagy <ip_vagy_host>:<port> vagy csak <ip_vagy_host> amely esetben a PVSR a 57400-es portot fogja használni o gNMI mintavétel (mp) (TELEMETRY EQ 4 SAMPLE): opcionális paraméter, ha meg van adva, akkor a PVSR ún. SAMPLE típusú feliratkozást végez, amikor is azt kéri az eszköztől, hogy a megadott másodpercenként küldje el a változók értékét, még akkor is, ha azok nem változtak. Ha üresen hagyjuk a paramétert, akkor a PVSR ún. ON_CHANGE módon iratkozik fel, ilyenkor csak akkor vár új üzenetet az eszköztől, hogyha a kért érték megváltozott o gNMI plusz csatlakozási paraméterek (TELEMETRY EQ 5 ADDITIONAL HEADERS): opcionális paraméter, ha meg van adva, akkor a formátuma „<kulcs1>=<érték1>, <kulcs2>=<érték2>, …” és minden párt elhelyez az adatgyűjtő a HTTP2 kérés fejlécében. Például Cisco eszközök esetében: “username=a_gnmi_felhasznalom, password=a_gnmi_jelszavam” Az alábbi oldalakat érdemes felkeresni további információkért a telemetria rendszerekről: · gNMI specifikáció: https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md · Yang modell file-ok gNMI-hez: https://github.com/YangModels/yang · Cisco MDT: https://github.com/cisco/bigmuddy-network-telemetry-proto/ |