Telemetria, to dziedzina telekomunikacji, która zajmuje się zbieraniem i przesyłaniem danych pomiarowych na odległość. Znajduje szerokie zastosowanie w wielu dziedzinach gospodarki, jako że jest to skuteczny i wygodny sposób na monitoring, diagnostykę, sterowanie i optymalizację procesów technologicznych w różnych dziedzinach gospodarki: telekomunikacji/IT, przemyśle, energetyce, gazownictwie, transporcie, klimatologii i wielu innych.
W zakresie urządzeń sieciowych (rutery/switche/firewalle) szeroko pojęta infrastruktura telemetryczna jest znana jako zbiór różnych technik pozyskiwania danych, należą do nich dobrze znane protokoły takie jak SNMP, syslog, netflow. Dodatkowo producenci sprzętu sieciowego, m.in. Juniper, definiują telemetrię sieciową jako stosunkowo nowy osobny element układanki wchodzący w skład infrastruktury telemetrycznej 1. Telemetria, w tym znaczeniu, może być odbierana jako technika, która może zastąpić i zastępuje SNMP. Główne zadania stawiane przed telemetrią to:
- Monitorowanie stanu urządzeń,
- Monitorowanie przepustowości,
- Optymalizacja ruchu (traffic engineering),
- Wykrywanie problemów we wczesnej fazie, m.in. błędów na matrycach przełączających, burstów, itp.
Wraz ze wzrostem liczby obiektów w sieci i generowanych przez nie metryk tradycyjne modele, takie jak SNMP, wykorzystywane do gromadzenia statystyk operacyjnych w celu monitorowania stanu sieci, napotykają ograniczenia skalowalności i wydajności urządzeń sieciowych jak i kolektorów. Tak zwany pull model używany przez SNMP lub command-line interface (CLI), który wymaga dodatkowego przetwarzania w celu okresowego odpytywania elementu sieci, co bezpośrednio ma wpływ na skalowalność.
Junos Telemetry Interface
Junos Telemetry Interface (JTI) znosi te ograniczenia, opierając się na tak zwanym modelu push na potrzeby asynchronicznego dostarczania danych, co eliminuje cykliczne odpytywanie (im bardziej dokładne i zbliżone do czasu rzeczywistego dane chcemy kolekcjonować, tym częściej musi następować odpytywanie, co obciąża zarówno system odpytywany jak i odpytujący). Żądanie wysłania danych jest wysyłane jednorazowo przez stację zarządzającą w celu żądania okresowego strumieniowania danych pomiarowych. Dzięki temu JTI jest wysoce skalowalny i może wspierać monitorowanie tysięcy obiektów w sieci.
Krótkie porównanie SNMP vs Telemetria:
Junos Telemetry Interface ma za zadanie odpowiednio ustawić (skonfigurować) sensory do kolekcji I eksportu danych związanych z różnymi zasobami systemu, np.: statystykami z interfejsów fizycznych. Do osiągnięcia tych celów można zastosować dwa modele:
- Natywne sensory (native sensors for Junos Telemetry Interface)
- OpenConfig i gRPC
Native sensors
Wykorzystują własnościowy model firmy Juniper Networks do generowania danych telemetrycznych (streaming) z użyciem protokołu GBP (Google protocol buffers). Po skonfigurowaniu na urządzeniu odpowiednich parametrów wysyła ono dane telemetryczne poprzez UDP.
Dane wysyłane są bezpośrednio z płaszczyzny przełączającej (forwarding plane) - PFE (Packet Forwarding Engine ), czyli bezpośrednio z karty liniowej (kolektor musi być osiągalny poprzez ruting przez kartę liniową - in-band).
Przykład konfiguracji native sensor na ruterze MX, który wysyła dane telemetryczne co 10s o obciążeniu interfejsów logicznych z portów et:
OpenConfig
Użycie tego modelu telemetrycznego wymaga skonfigurowania urządzenia jako serwer gRPC, podczas gdy kolektor pracuje jako klient. Klient określa jakie sensory chce „subskrybować” jednorazowo wysyłając żądanie gRPC (remote procedure calls) do urządzenia. Dane telemetryczne mogą być wysyłane cyklicznie lub w reakcji na zmianę stanu.
OpenConfig wspiera modelowanie danych w YANG,a dane generowane są jako GBP w uniwersalnym formacie key/value. gRPC wspiera szyfrowanie SSL. Dane telemetryczne mogą być wysyłane jako gbp poprzez UDP lub TCP.
Konfiguracja rouetra MX w modelu OpenConfig wymaga zastosowania certyfikatu używanego do zabezpieczenie połączenia klient-serwer i zdefiniowania portu tcp:
Jeśli klient po połączeniu subskrybuje sensor (provitioning) i jest to widoczne na ruterze – w poniższym przykładzie sensor wysyła dane ruchowe z interfejsów:
Wizualizacja i analityka
W zakresie wizualizacji danych telemetrycznych Juniper Networks proponuje produkt Paragon Insights (formerly HealthBot)2, który jest jednym z modułów w portfolio Paragon Automation.
Paragon Insights zapewnia kolekcję danych telemetrycznych z różnych źródeł: JTI, OpenConfig, Netconf, CLI, Syslog, Netflow. Jego zadanie to nie tylko wizualizowanie danych, ale analiza m.in. dzięki uczeniu maszynowemu (machine learning), aby proaktywnie wykrywać problemy i umożliwić znalezienie ich źródła. Użytkownik ma możliwość zaprogramować akcje w reakcji na zdarzenia w sieci.
Oczywiście kolekcję danych możemy także realizować na narzędziach opensourse, gdzie dosyć możemy się zetknąć z następującym zestawem:
- Telegraf dla kolekcji danych pomiarowych (Data Streaming Collector)
- InfluxDB jako Datastore
- Grafana do wizualizacji danych telemetrycznych
Źródła:
1. https://www.juniper.net/documentation/us/en/software/junos/interfaces-telemetry/index.html